Explications sur la création d'un formulaire


Pour créer un formulaire, il y a deux étapes importantes: d'abord connaître le CGI qui est employé par votre serveur (provider). 

Un CGI est nécessaire pour traiter un formulaire, c'est un programme écrit dans un langage comme le C, le Pascal, Basic ou PERL, et qui se trouve dans le répertoire /cgi-bin/ de votre site FTP.

Si vous avez accès à ce répertoire, vous pouvez télécharger gratuitement des CGI déjà tout fait sur l'Internet (dont celui que vous cherchez). Vous pouvez essayer de demander des adresses à votre fournisseur, puisque c'est une question commune qui lui revient.

Si vous n'avez pas accès à ce répertoire (ce qui est le cas le plus courant), demandez à votre fournisseur d'accès Internet s'il peut vous donner un accès à un répertoire /cgi-bin pour que vous puissiez y mettre vos propres CGI (Notez que parfois, il faut payer un supplément monétaire par mois à votre fournisseur pour qu'il vous donne cet accès).


Mais plus simplement, je vous conseille d'employer le programme de votre provider s'il en conseille un en particulier, ce qui est le cas des providers importants.

La seconde étape est bien sûr de créer votre page formulaire en respectant bien l'ordre des lignes de codes.

Voici un exemple qui emploie le programme proposé par le provider SKYNET :

 Début des codes réservés au programme CGI..................>

<FORM METHOD=POST ACTION="http://users.skynet.be/cgi-bin/formd.cgi" onsubmit="return formemail_Validator(this)" name="formemail">

<INPUT TYPE=
hidden NAME="to" value ="rouyer@page-web.com">
<INPUT TYPE=hidden NAME="subject" VALUE="
***VOTRE DESCRIPTION***">
<INPUT TYPE=
hidden NAME="next" value="http://adresse de retour">

Fin des codes réservés au programme CGI..................>

<TABLE BORDER=1 CELLSPACING=0>
<tr>
<TD ALIGN=center WIDTH=200 VALIGN=top BGCOLOR="#C1E8E6">
Nom :<BR>
E-Mail :<BR>
Pays :<BR>
URL :
</TD>
<TD WIDTH=350 BGCOLOR="#C0C0C0">
<INPUT TYPE="text" name="
Nom"Nom" SIZE="52" MAXLENGHT="52"><BR>
<INPUT TYPE="text" name="
Email"
Email"Email"Email" SIZE="52" MAXLENGHT="52"><BR>
Votre E-Mail correcte est absolument nécessaire : vérifiez !
<INPUT TYPE="text" name="Pays" SIZE="52" MAXLENGHT="52">
<INPUT TYPE="text" name="Site" SIZE="52" MAXLENGHT="52" VALUE="
http://">http://">http://">http://">
</TD>
</tr>
<TR>
<TD ALIGN=center WIDTH=200 BGCOLOR="#C1E8E6">
</TD>
<TD WIDTH=400 BGCOLOR="#C0C0C0">
</TD>
</TR>
<TR>
<TD ALIGN=center WIDTH=200 BGCOLOR="#C1E8E6">
Mailing-list WebExpert
</TD>
<TD WIDTH=400 BGCOLOR="#C0C0C0">
<INPUT TYPE="radio" NAME="
Envoi"Envoi"Envoi"Envoi" VALUE="Prévenez-moi des nouvelles versions de WebExpert">Prévenez-moi des nouvelles versions de WebExpert<BR>
<INPUT TYPE="radio" NAME="
Envoi"Envoi"Envoi"Envoi" VALUE="Non merci, je ne désire pas être prévenu !">Non, je ne désire pas être prévenu des nouvelles versions de WebExpert
</TD>
</TR>
<TR>
<TD ALIGN=center WIDTH=200 BGCOLOR="#C1E8E6">
Connaissance de WebExpert
</TD>
<TD WIDTH=350 BGCOLOR="#C0C0C0">
<INPUT TYPE="radio" NAME="Connaissance" VALUE ="
Je ne connais pas WebExpert">Je ne connais pas WebExpert !<BR>
<INPUT TYPE="radio" NAME="Connaissance" VALUE ="
Je vais employer WebExpert">Je vais employer WebExpert<BR>
<INPUT TYPE="radio" NAME="Connaissance" VALUE ="
J'emploie parfois WebExpert">J'emploie parfois WebExpert<BR>
<INPUT TYPE="radio" NAME="Connaissance" VALUE ="
J'emploie souvent WebExpert">J'emploie souvent WebExpert">J'emploie souvent WebExpert">J'emploie souvent WebExpert"> J'emploie souvent WebExpert<BR>
<INPUT TYPE="radio" NAME="Connaissance" VALUE ="
WebExpert est mon éditeur HTML">WebExpert est mon éditeur HTML
</TD>
</TR>
<TR>
<TD ALIGN=center WIDTH=200 VALIGN=top BGCOLOR="#C1E8E6">
TYPE D'E-MAIL :
</TD>
<TD WIDTH=350 BGCOLOR="#C0C0C0">
<INPUT TYPE="radio" NAME="ENVOI" VALUE ="NORMAL" CHECKED>
texte brut (envoi normal)<BR>
<INPUT TYPE="radio" NAME="ENVOI" VALUE ="HTML">
RTF(envoi HTML)
</TD>
</TR>
<TR>
<TD ALIGN=center WIDTH=200 BGCOLOR="#C1E8E6">
Vos questions, vos commentaires.
</TD>
<TD BGCOLOR="#C0C0C0">
<TEXTAREA name="Message" ROWS=10 COLS=45></TEXTAREA>
</TD>
</TR>
</TABLE>
<BR>
<INPUT TYPE="submit" VALUE="
ENVOYER VOTRE RÉPONSE "><BR>
<INPUT TYPE="reset" VALUE="
EFFACER LE QUESTIONNAIRE">EFFACER LE QUESTIONNAIRE">EFFACER LE QUESTIONNAIRE">EFFACER LE QUESTIONNAIRE">
</CENTER>
</FORM>

Dans l'exemple que je vous donne (que j'emploie dans Page-Web), tous les champs "hidden" sont valides pour le CGI du provider Skynet. Si vous le désirez, vous pouvez consulter ceux qui concernent le provider Win. Notez que ces champs peuvent varier dans leur forme et/ou leur contenu d'un CGI à l'autre!

Vous devez toujours insérer vos éléments entre les balises :

<FORM> et </FORM>


Les 2 boutons "Effacer le questionnaire" et "Envoyer votre réponse" doivent être placés à la fin du formulaire.
Les autres boîtes apparaîtront dans l'ordre où vous les mettrez.
Dans l'exemple de mon formulaire, le champ CGI s'appelle (chez Skynet) "form.cgi", il peut s'appeler autrement chez votre provider et les lignes de codes (champs "hidden"), comme je vous l'ai déjà dit, peuvent être un peu différentes: normalement, votre provider doit vous donner les lignes de codes et le nom du CGI qu'il emploie. Quand vous avez placé les lignes de codes correctes, le programme CGI de votre provider enverra les données sur votre mail avec les renseignements voulus, comme vous pouvez le voir ci-dessous:

Résultat d'un envoi effectué par l'intermédiaire de ce formulaire:
Si vous n'avez pas de CGI, parce que votre provider n'en fournit pas à ses abonnés ou parce que vous êtes membre d'un serveur d'hébergement gratuit, vous pouvez quand même créer des formulaires, de manière identique à celle décrite ci-dessus, mais vous remplacez les lignes de codes du CGI (situés entre les deux lignes noires que j'ai représentées ci-dessous pour vous aider) par celles-ci (méthode mailto)

 

Début des codes réservées au programme CGI..................>

<FORM NAME="email" ACTION="mailto:adresse@email" METHOD="post" enctype="text/plain">
<INPUT TYPE=hidden NAME="Origine" value="Le sujet de votre formulaire">

Fin des codes réservées au programme CGI..................>


La deuxième ligne, avec le champ <INPUT>, de nom "Origine" n'est là que pour vous permettre de connaître l'origine du formulaire envoyé : cela peut être pratique dans le cas où vous possédez plusieurs formulaires sur votre site...

Pour l'instant, c'est la formule (mailto)que j'emploie et que je recommande, car si le visiteur a omis de donner son adresse e-mail ou si celle-ci est erronée, il n'y a aucun moyen de connaître son adresse ! Par cette dernière procédure par contre (mailto), comme c'est le programme de mail du visiteur (local) qui envoie le message, on peut récupérer (REPLY) son adresse e-mail. L'inconvénient, par contre, est que le visiteur qui emploie un PC sans programme de mail installé ne peut employer cette dernière manière de procéder, mais cela devient rare.

Pour être tout à fait complet, j'emploie parfois aussi une troisième méthode, qui emploie le système d'un lien e-mail simple, mais dans lequel il y a des codes particuliers qui sont introduits dans le contenu du message, qui est proposé dès l'ouverture du programme de mail.

Variante

On me pose souvent des questions pour insérer des scripts qui permettent de vérifier si un champ a bien été rempli, avant l'envoi du formulaire ? Voire, un choix dans une liste à puce ?

Pour cela, vous devez identifier les champs avec un nom (identifiant), pour que le ou les scripts puissent les reconnaître parmi les autres. Par exemple, le champ Nom, Email, ensemble de puces Envoi.

Voici un exemple de script à insérer dans le body, avant la balise <FORM> :

<script Language="JavaScript">
<!--
function formemail_Validator(theForm)
{
if (theForm.Nom.value == "")
{
alert("Tapez une valeur pour le champ \"Nom\".");
theForm.Nom.focus();
return (false);
}
if (theForm.Nom.value.length < 3)
{
alert("Tapez au moins 3 caractères dans le champ \"Nom\".");
theForm.Nom.focus();
return (false);
}
if (theForm.Email.value == "")
{
alert("Tapez une valeur pour le champ \"Email\".");
theForm.Email.focus();
return (false);
}
if (theForm.Email.value.length < 2)
{
alert("Tapez au moins 2 caractères dans le champ \"Email\".");
theForm.Email.focus();
return (false);
}
var radioSelected = false;
for (i = 0; i < theForm.Envoi.length; i++)
{
if (theForm.Envoi[i].checked)
radioSelected = true;
}
if (!radioSelected)
{
alert("Sélectionnez une des options \"Envoi\".");
return (false);
}
return (true);
}

//-->
</script>

Si les champs Nom, EMAIL, ou l'ensemble de puces Envoi ne sont pas remplis ou choisis, un message d'alerte le rappelle, et ne valide pas l'envoi du formulaire.

A cette fin, les attributs onsubmit="return formemail_Validator(this)" name="formemail" ont été ajoutés à la balise <FORM> pour que le script puisse y faire référence... Si vous ne voulez pas employer ce script, ces attributs ne sont pas nécessaires...

Voilà, j'espère que j'ai été assez complet. Maintenant, vous êtes capable de créer vos formulaires et c'est à vous de jouer...;-)

[Page exemple]
[Initiation rapide à WebExpert]