Source Shell du script formulaire



#!/usr/local/bin/bash
#
# formulaire.sh.cgi
#
# Philippe Dax - Dec 1995
#

#
# Lecture de tous parametres dans la variable params
# Les parametres se presentent sous la forme native (methode POST)
# sur l'entree standard (stdin) de la maniere suivante:
#
# prenom=valeur&nom=valeur&couleur=valeur&choix=valeur&message=valeur
#

readparams()
{
	#
	# Lecture des parametres du formulaire
	#
	read params
	#nparams=`echo ${params} | awk 'BEGIN {FS="&"} {print NF}'`
        OLDIFS="$IFS"
        IFS="&"
        nparams=0
        for param in ${params}; do
                nparams=$[ ${nparams} + 1 ]
                eval "internal${nparams}=${param}"
        done
        IFS="${OLDIFS}"
}

getparam()
{
	eval 'echo ${internal}'$1 |\
		cut -f2 -d'=' |\
		sed \
			-e "s/\+/ /g" \
			-e "s/%0A//g" \
			-e "s/%21/!/g" \
			-e "s/%22/\"/g" \
			-e "s/%23/#/g" \
			-e "s/%24/\$/g" \
			-e "s/%25/%/g" \
			-e "s/%26/\&/g" \
			-e "s/%27/\'/g" \
			-e "s/%28/(/g" \
			-e "s/%29/)/g" \
			-e "s/%2A/\*/g" \
			-e "s/%2B/\+/g" \
			-e "s/%2C/,/g" \
			-e "s/%2D/-/g" \
			-e "s/%2E/\./g" \
			-e "s,%2F,/,g" \
			-e "s/%3A/:/g" \
			-e "s/%3B/;/g" \
			-e "s/%3C/\</g" \
			-e "s/%3D/=/g" \
			-e "s/%3E/\>/g" \
			-e "s/%3F/?/g" \
			-e "s/%40/@/g" \
			-e "s/%5B/[/g" \
			-e "s/%5C/\\\/g" \
			-e "s/%5D/]/g" \
			-e "s/%5E/\^/g" \
			-e "s/%5F/_/g" \
			-e "s/%60/\`/g" \
			-e "s/%7B/{/g" \
			-e "s/%7C/\|/g" \
			-e "s/%7D/}/g" \
			-e "s/%7E/\~/g" \
                        -e "s/%E0//g" \
                        -e "s/%E2//g" \
                        -e "s/%E7//g" \
                        -e "s/%E8//g" \
                        -e "s/%E9//g" \
                        -e "s/%EA//g" \
                        -e "s/%EB//g" \
                        -e "s/%EE//g" \
                        -e "s/%F4//g" \
                        -e "s/%F9//g" \
                        -e "s/%FB//g"
}

abort()
{
	echo "<p>"
	echo "Requte avorte !!!"
	echo "</body></html>"
	exit 1
}

#
# Lecture des parametres
#
readparams

#
# Envoi du type MIME au browser (obligatoire)
#
echo "Content-Type: text/html"
echo ""

#
# En-tete HTML
#
echo "<html>"
echo "<head>"
echo "<title>Ceci est le résultat du questionnaire</title>"
echo "</head>"
echo "<body bgcolor=\"#dddddd\">"

#
# Extraction des parametres
#
prenom=`getparam 1`
nom=`getparam 2`
couleur=`getparam 3`
support=`getparam 4`
choix=`getparam 5`
message=`echo ${params}	| awk 'BEGIN {FS="&"} {print $1}' | cut -f2 -d'='`

#
# Traitement proprement dit qui utilise les parametres
#
echo "<h1>Ceci est le résultat du questionnaire</h1>"
echo "<hr>"
echo "Vous, <b>${prenom}</b> <b>${nom}</b>, dont la couleur favorite est"
echo "<b>${couleur}</b>, vous avez repondu <b>${choix}</b> à la"
echo "question car vous pensez que :"
echo "<p>"
echo "<b>${message}</b>"
echo "<hr>"

#
# Terminaison HTML
#
echo "</body></html>"


Philippe Dax
$Date: 07/12/1995 $