Всем привет.
Есть форма типа
!/bin/sh
echo "Content-Type: text/html"
echo ""
echo "<HTML>"
echo "<BODY>"
echo "<FORM action="/cgi-bin/conv.cgi" METHOD=POST>"
echo "<H4>CGI FORM</H4>"
echo "You Name: <INPUT NAME=contact SIZE=30><BR><BR>"
echo "<SELECT NAME=film>"
echo "<OPTION>-- Pick a Film --"
echo "<OPTION>A Few Good Men"
echo "<OPTION>Die Hard"
echo "<OPTION>Red October"
echo "<OPTION>The Sound Of Music"
echo "<OPTION>Boys In Company C"
echo "<OPTION>Star Wars"
echo "<OPTION>Star Trek"
echo "</SELECT>"
echo "<SELECT NAME=actor>"
echo "<OPTION>-- Pick Your Favourite Actor --"
echo "<OPTION>Bruce Willis"
echo "<OPTION>Demi Moore"
echo "<OPTION>Lauren Bacall"
echo "<OPTION>Sean Connery"
echo "</SELECT>"
echo "<BR><BR>"
echo "Tell what is your best film or just enter some comments<BR>"
echo "<TEXTAREA COLS="30" ROWS="4" NAME="textarea"></TEXTAREA>"
echo "<BR><INPUT TYPE=Submit VALUE="Send it">"
echo "<INPUT TYPE="reset" VALUE="Clear Form">"
echo "</FORM>"
echo "</BODY>"
echo "</HTML>"
Как видно из формы, результаты отсылаются на обработку скрипту /cgi-bin/conv.cgi. И я вот не знаю как их потом обработать. Вот в книге Тенсли предлагают использовать «cat -»:
#!/bin/bash
#сценарий conv.cgi
echo "Content-type: text\html"
echo ""
echo "<HTML><PRE>"
if [ "REQUEST_METHOD" = "POST" ]; then
QUERY_STRING=`cat -`
fi
echo "Method : $REQUEST_METHOD"
echo "Query string : $QUERY_STRING"
echo "<HR>"
LINE=`echo $QUERY_STRING | sed 's/&/ /g'`
for LOOP in $LINE
do
NAME=`echo $LOOP | sed 's/=/ /g' | awk '{print $1}'`
#получение TYPE, замена всех символов = пробелами, а %hex_num - \xhex_num
#замена всех символов + пробелами
TYPE=`echo $LOOP | sed 's/=/ /g' | awk '{print $2}' | sed -e 's/%/\\\x/g' | sed 's/+/ /g'`
printf "${NAME}=${TYPE}\n"
VARS=`printf "${NAME}=\\$TYPE\n"`
eval `printf $VARS`
done
echo "<HR>"
printf "Your name is : $contact\n"
printf "Your choice of film is : $film\n"
printf "Your choice of actor is : $actor\n"
printf "You watch films at the cinema : $view_cine\n"
printf "You watch films on video : $view_vid\n"
echo "And here are your comment : $textarea"
printf "And here are your comment : $textarea\n"
echo "</PRE>"
echo "</HTML>"
Ну и последний скрипт ничего толом не отдает, все переменные чисты. Т.е. QUERY_STRING=`cat -` не работает.
Как сделать правильно? Спасибо!