Pour créer un formulaire fonctionnel, utilisez le marqueur <FORM>
d'HTTP de la manière suivante. Un fichier /opt/apache/htdocs/form.html:
<HTML>
<FORM name=''myform'' action=''test.cgi'' method=''get''> <TABLE> <TR> <TD colspan=''2'' align=''center''> Please enter your personnal details: </TD> </TR> <TR> <TD>Name:</TD><TD><INPUT type=''text'' name=''name''></TD> </TR> <TR> <TD>Email:</TD><TD><INPUT type=''text'' name=''email''></TD> </TR> <TR> <TD>Tel:</TD><TD><INPUT type=''text'' name=''tel''></TD>
</TR>
</TABLE>
|
Notez la manière dont ce formulaire appelle notre script existant
test.cgi. Voici un script qui ajoute les
données entrées, dans notre la table postgres
SQL:
#!/bin/sh
echo 'Content-type: text/html' echo opts=`echo ``$QUERY_STRING''` | \ sed -e 's/[^A-Za-a0-9 %&+,.\/:=@_~-]//g' -e 's/&/ /g' -e q` for opt in $opts; do case $opt in name=*) name=${opt/name=/} ;; email=*) email=${opt/email=/} ;; tel=*) tel=${opt/tel=/} ;; esac done if psql -d template1 -H -c ``\ INSERT INTO people (name, email, tel) \ VALUES ('$name', '$email', '$tel')'' 2>&1 | grep -q '^INSERT ' ; then echo `` echo ``have been successfully recorded.</HTML> else echo `` fi exit 0 |
Pour utiliser la méthode ``POST'' alternative, modifiez le marqueur
FORM en:
<FORM name=''myform'' action=''test.cgi''
method=''post''>
|
opts=`cat | \
sed -e 's/[^A-Za-z0-9 %&+,.\/:=@_~-]//g' -e 's/&/ /g' -e q` |