##############################################################################
# FormMail                        Version 1.92                               #
# Copyright 1996-2002 Matt Wright mattw@worldwidemart.com                    #
# Created 06/09/95                Last Modified 04/21/02                     #
# Matt's Script Archive, Inc.:    http://www.worldwidemart.com/scripts/      #
##############################################################################
#                                                                            #
#                                                                            #
# VERSION FRANCAISE PAR Sebastien Joncheray http://www.perl-gratuit.com      #
# Script renommé formmail-vf.pl                                              #
#                                                                            #
#     Traduction Mise à jour avec la dernière version le 4 Mai 2002          #
#                                                                            #
##############################################################################
# Si vous rencontrez des problèmes de configuration de ce script, de l'aide  #
# est disponible. Avec dans l'ordre:                                         #
#       1) Lire ce fichier entièrement                                       #
#       2) Consulter the Matt's Script Archive FAQ:                          #
#               http://www.worldwidemart.com/scripts/faq/                    #
#       3) Si vous avez toujours des difficultés, envoyez un email EN ANGLAIS#
#        à scripts-help@tahoenet.com                                         #
#          Incluez les messages d'erreurs éventuels et autant de détails     #
#          que possible.  Incluez aussi les variables de configuration       #
#          situées au début du script.                                       #
#                                                                            #
##############################################################################
# COPYRIGHT NOTICE                                                           #
# Copyright 1995 - 2002 Matthew M. Wright  All Rights Reserved.              #
#                                                                            #
# FormMail may be used and modified free of charge by anyone so long as this #
# copyright notice and the comments above remain intact.  By using this      #
# code you agree to indemnify Matthew M. Wright from any liability that      #
# might arise from its use.                                                  #
#                                                                            #
# Selling the code for this program without prior written consent is         #
# expressly forbidden.  In other words, please ask first before you try and  #
# make money off of my program.                                              #
#                                                                            #
# Obtain permission before redistributing this software over the Internet or #
# in any other medium.	In all cases copyright and header must remain intact #
##############################################################################

formmail-vf est une passerelle universelle de formulaires WWW vers l'E-Mail.
Il n'y a qu'un champ obligatoire à mettre dans vos formulaires pour que ce script marche
avec vos formulaires existants.  D'autres champs cachés de configuration peuvent aussi 
être utilisés pour ajouter des fonctionnalités à formmail-vf sur votre site.
La fin de ce fichier contient un historique des modifications apportées à
Formmail au cours de sa longue existence. La version 1.91 a été une mise à jour destinée à
se débarrasser des pires problèmes qui ont été rendus public ici:
        http://www.monkeys.com/anti-spam/formmail-advisory.pdf
La version 1.92 règle 2-3 autres bugs, dont vous trouverez le détail dans l'historique
en bas de ce fichier.

Le script, formmail-vf.pl, doit être placé dans le cgi-bin de votre serveur et l'utilisateur
anonyme du web doit pouvoir le lire et l'éxécuter.  Si vous n'avez pas accès à un cgi-bin,
mais que vous pouvez éxécuter des scripts cgi, vous pouvez essayer d'ajouter l'extension .cgi 
à formmail-vf pour le transformer en formmail-vf.cgi

Configuration du script formmail-vf :
==================================

Le script formmail-vf.pl n'a pas de besoin de configuration très importants pour fonctionner. 
Il n'y a que deux variables dans le fichier perl que vous devez définir, ainsi qu'éventuellement
la première ligne pour qu'elle corresponde à l'emplacement de l'interpréteur Perl.

Variables Nécessaire :
----------------------

  $mailprog = '/usr/lib/sendmail';
    Cette variable définit l'emplacement du programme sendmail de votre serveur. 
    Si la valeur est incorrecte, les données des formulaires ne pourront pas
    vous être envoyées par E-Mail.
    L'ajout des paramètres -i et -t date de la version 1.91. Nous avons mis le
    paramètre -i afin que les lignes ne contenant qu'un point ne soient pas
    considérées comme marque de fin de message comme c'est en principe le cas.
    -t indique à sendmail de lire la liste des destinataire dans le message. Tout à fait indispensable!
   

  @referers = ('perl-gratuit.com','autredomaine.com');
    Ce tableau vous permet de définir les domaines sur lesquels vous autorisez des formulaires 
    à utiliser le script formmail-vf.  Si un utilisateur tente d'appeler votre script avec un formulaire
    situé sur un autre site, un message d'erreur sera affiché.
    En plaçant perl-gratuit.com dans le tableau @referers, vous autorisez
    www.perl-gratuit.com, ftp.perl-gratuit.com, et toute autre adresse http
    contenant perl-gratuit.com à utiliser ce script.

    NOTE: Ce n'est pas vraiment une sécurité. L'URL référante peut facilement être truquée.
          Disons que cela évite que quelqu'un de xyznotyou.com n'utilise formmail-vf
          sur votre serveur de façon régulière.
          Ce paramètre reste dans le script comme un fantôme des versions antérieures,
          du temps où il était utilisé pour la sécurité. Mais la variable @recipients est maintenant
          utilisée pour spécifier exactement qui peut recevoir des emails de votre installation de formmail-vf.

    Depuis la version 1.7, les domaines listés ici sont aussi utilisés/autorisés par défaut
    lors de la vérification de la validité des destinataires (champ "recipient"). Vous devriez donc
    inclure dans @referers tous les noms de domaines auxquels vous souhaitez que formmail-vf puisse
    envoyer des emails, ou alors modifiez manuellement la variable @recipients.

  @valid_ENV = ('REMOTE_HOST','REMOTE_ADDR','REMOTE_USER','HTTP_USER_AGENT');
    Ce tableau permet à l'administrateur système de lister les variables
    d'environnement que les utilisateur peuvent demander dans l'E-Mail envoyé.
    C'est un ajout de sécurité qui a été conseillé à  http://www.securityfocus.com/bid/1187
    et a été mis en place par Peter D. Thompson Yezek à http://www.securityfocus.com/archive/1/62033.

    Seules les variables d'environnement listées dans ce tableau peuvent être inclues
    dans le champ env_report.  Donc si vous voulez aussi savoir depuis quelle URL le visiteur
    a rempli le formulaire, vous devriez changer @valid_ENV en:
       @valid_ENV = ('REMOTE_HOST','REMOTE_ADDR','REMOTE_USER',
                     'HTTP_USER_AGENT','HTTP_REFERER');
    et ensuite ajouter HTTP_REFERER dans le champ env_report de votre formulaire.

  @recipients = &fill_recipients(@referers);
    Si vous voulez autoriser uniquement les adresses E-Mail des noms de domaines listés dans
    @referers, en tant que destinataires possibles des messages, vous n'avez pas à changer cette 
    variable.  Cependant, si vous obtenez un quelconque message 'Erreur: Destinataire manquant/invalide'
    en éxécutant formmail-vf, vous aurez à regarder de plus près la variable @recipients, en vous assurant
    que vous avez correctement listé tous les domaines.

    @recipients est la variable la plus importante que vous ayez à configurer. C'est un tableau
    de regexps (expressions régulières) définissant tous les destinataires valides.
    Pour qu'un E-Mail soit envoyé à un destinataire indiqué dans un formulaire (champ "recipient")
    l'adresse E-Mail de ce destinataire doit correspondre à l'un des éléments du tableau @recipients

    PARAMETRAGE DE BASE:

    Le plus simple est de mettre dans @referers tous les noms de domaines sur lesquels il y a
    des adresses E-Mail qui auront à recevoir des résultats de formulaire par mail.
    Attention: Cela permettra aussi à tout formulaire présent sur le site de ce nom de domaine
    d'utiliser votre formmail-vf, mais cela correspond probablement à ce que vous voulez faire
    de toute façon.  Donc, vous pouvez laisser:

    @recipients = &fill_recipients(@referers);


    SI CE N'EST PAS CE DONT VOUS AVEZ BESOIN :

    Il y a une autre alternative qui est de mettre @recipients égal à la valeur de retour de la
    fonction "fill_recipients", en transmettant des noms de domaines auxquels des E-Mails vont être
    envoyés:

    @recipients = &fill_recipients('domaine.com','sous.domaine.com','autredomaine.com');

    Vous autorisez alors l'envoi d'E-mails à tout utilisateur sur ces 3 domaines (à supposer que
    le nom utilisateur -avant le @domaine.com- ne  contienne que des caractères A-Z, a-z, 0-9, _, - ou .)

    Et même, étant donné que @recipients est juste un tableau, vous pourriez même faire:

    @recipients = (&fill_recipients('domaine.com','sous.domaine.com'),
                   '^autreutilisateur1@autredomaine\.com','^autreutilisateur2@autredomaine\.com');

    Cela autoriserait tout destinataire situé sur domaine.com et sous.domaine.com comme
    dans l'exemple précédent, mais autoriserait aussi votre ami autreutilisateur1@autredomaine.com et
    autreutilisateur2@autredomaine.com à utiliser formmail-vf ! Bien sûr, vous devriez aussi
    ajouter "autredomaine.com" à la liste du tableau @referers pour qu'un formulaire présent sur
    son site ne soit pas rejété !


    COMMENT CA MARCHE ?

    Quand la fonction fill_recipients est appelée avec un tableau de noms de domaines,
    elle les transforme en regexps (expressions régulières). Ces expressions régulières vont 
    permettre seulement l'envoi des messages dont l'adresse E-Mail du destinataire est de la forme:

        [A-Za-z0-9_-\.]+@domaine.com

    où domaine.com est spécifié dans @referers. Pour toute adresse IP dans
    @referers, l'adresse suivante est valide:

        [A-Za-z0-9_-\.]+@[192.168.1.1]

    où 192.168.1.1 est l'IP spécifiée dans @referers.


    QUE FAIRE SI J'AI BESOIN DE PLUS DE SOUPLESSE ??

    La manière utilisée par formmail-vf pour valider l'adresse E-Mail d'un destinataire
    (recipient) est de vérifier l'email fourni dans le formulaire (champ "recipient")
    auprès de chaque élément du tableau  @recipients (qui est une liste d'expressions régulières Perl).
    Il suffit qu'un élément corresponde pour que l'E-Mail soit OK.

    En prenant l'exemple : @referers = ('domaine.com','192.168.1.1');
    et en prenant le paramétrage par défaut: @recipients = &fill_recipients(@referers),
    le contenu de @recipients est maintenant devenu la même chose que si vous aviez directement
    mis:

    @recipients = ('^[\w\-\.]+\@domaine\.com', '^[\w\-\.]+\@\[192\.168\.1\.1\]');

    Ce que les expresssions régulières disent à formmail-vf, c'est que toute adresse E-Mail
    envoyée comme destinataire dans le champs "recipient" du formulaire, doit correspondre
    à au moins une des 2 expressions régulières ci-dessus.
    Voici des exemples d'adresses E-Mail de destinataire qui sont valides
    et d'autres qui sont invalides, toujours pour le paramétrage ci-dessus:

       VALIDE:
         utilisateur@domaine.com, Prenom.Nom@domaine.com, Nom-Prenom@domaine.com
         nom_utilisateur@domaine.com, utilisateur023@domaine.com, etc.
         utilisateur@[192.168.1.1], Prenom.Nom@[192.168.1.1], Nom-Prenom@[192.168.1.1]
         nom_utilisateur@[192.168.1.1], utilisateur023@[192.168.1.1], etc.

       INVALIDE: (si vous mettez ceci dans le champs "recipient" d'un formulaire, il y aura une erreur)
         utilisateur%nom@domaine.com, utilisateur(nom)@domaine.com, prenom:nom@domaine.com
         <utilisateur@domaine.com>, <utilisateur@autre.com>domaine.com, utilisateur@192.168.1.1
         utilisateur@nouveaudomaine.com, utilisateur@sous.domaine.com, utilisateur@nomdedomaine.com



    MAIS J'AI BESOIN D'AUTORISER D'AUTRES CARACTERES DANS LES NOMS UTILISATEURS !

    Disons que vous ayez besoin de délivrer des E-Mails à une adresse du genre:
        nom:prenom@domaine.com

    Cela nécessite que le caractère ':' soit maintenant autorisé sur une portion de l'adresse E-mail
    du destinataire (devant le @domaine.com). Vous pouvez alors modifier 
    @recipients pour avoir:

    @recipients = ('^[\w\-\.\:]+\@domaine\.com');

    MAIS FAITES BIEN ATTENTION!!!!

    Permettre ainsi certains caractères peut être très dangereux, particulièrement s'il s'agit
    de: %, <, >, (, ) ou des retours-chariot.  Vous devriez lire ceci:
        http://web.nps.navy.mil/~miller/percent-hack.html
    pour plus d'infos sur la raison pour laquelle les caractères % peuvent être dangereux. Et il y a
    aussi ce document qui amène des explications pour les autres caractères cités:
        http://www.monkeys.com/anti-spam/formmail-advisory.pdf


    JE VEUX JUSTE QUE CERTAINES ADRESSES EMAIL MARCHENT !

    Disons que vous vouliez uniquement que vous@votredomaine.com puisse recevoir
    les formulaires envoyés par E-Mail.  Vous devriez alors mettre pour @recipients :

    @recipients = ('^vous\@votredomaine\.com');

    Avec cela, un seul destinatire est possible.

    Si vous en voulez plusieurs, mettez juste :

    @recipients = ('^utilisateur1\@votredomaine\.com','^utilisateur2\@autre\.domaine\.com');


    PUIS-JE UTILISER QUELQUE CHOSE DE PLUS SIMPLE ?

    Les versions précédentes de FormMail recommendaient de mettre des choses comme:

        @recipients = ('domaine.com','192.168.1.1');  OU
        @recipients = ('^joe@quelquepart.com');

    Le premier est mauvais car il autoriserait des adresses 
    comme victimedespam%quelquepart.com@domaine.com.  Le second est BIEN mieux,
    mais puisqu'il est pris par le script comme une expression régulière, et que '.' veut dire
    'tout caractère', un hacker pourrait utiliser joe@quelquepartXcom pour avoir le destinataire valide.
    Mais bon, ce n'est pas un cas trop grave dans la plupart des cas.


    QU'EST-CE QUE CE CARACTERE ^ ET POURQUOI TOUS CES \  ??

    Dans les expressions régulières, le ^ signifie "début de chaine de caractères". Par défaut,
    formmail-vf place un $ à la fin, ce qui signifie "fin de la chaine de caractères".
    En utilisant à la fois ^ et $ dans les vérifications avec expressions régulières, formmail-vf
    est certain que la chaine de caractère correspond exactement et ne "dépasse" pas d'un côté ni de l'autre.

    Le caractère \ est utilisé devant tout caratère "spécial" qui aurait sinon une signification
    particulière dans l'expression régulière. Par exemple, tous les '.' sont maintenant
    précédés d'un '\', car '.' veut dire 'tout caractère', alors que '\.'
    requiert la présence d'un point et rien d'autre.

    Si vous avez besoin de solutions encore plus particulières concernant les expressions
    régulières, je vous recommande d'ouvrir un bon livre sur Perl.


Votre programme formmail-vf est maintenant configuré.

-----------------------------------------------------------------------------

Configuration de Formulaire:
============================

La balise action de votre formulaire doit pointer sur ce script, et la méthode doit être 
POST ou GET en lettres capitales.  La version 1.5 de formmail-vf 
offre de nombreuses nouvelles manières de personnaliser la page HTML de résultat 
et le fonctionnement du script.  Vous trouverez ci-dessous la liste des champs de formulaire 
de configuration afin que vous puissiez les utiliser.

Champ de formulaire nécessaires:
================================

Il n'y a qu'un champ de formulaire nécessaire pour que formmail-vf fonctionne 
correctement.  C'est le champ nommé recipient ("destinataire").

Champ:       recipient

Description: Ce champ de formulaire vous permet de spécifier où les données du
             formulaire doivent être envoyées par E-Mail.
             Il y a fort à parier que vous voudrez mettre cette option dans un champ
             caché et fixer sa valeur à votre adresse E-Mail.
             Depuis la version 1.8, vous pouvez mettre plusieurs adresses E-Mail
             séparés par des virgules

Syntaxe:
             <input type=hidden name="recipient" value="email@votre.site.com">
             OU  <input type=hidden name="recipient" 
                                value="vous@votresite.com,autrepersonne@votresite.com">


-----------------------------------------------------------------------------

Champs de formulaire optionnels:
================================

Champs:       subject

Description: Le champ subject vous permet de spécifier le sujet (titre) que vous
             voulez voir apparaitre dans l'E-Mail qui vous est envoyé quand le formulaire
             est validé.
             Si vous n'utilisez pas cette option, alors une valeur par défaut sera mise.

Syntaxe:
             Si vous voulez mettre vous même cette valeur:
              <input type=hidden name="subject" value="Votre sujet">

             Pour permettre à l'utilisateur de fixer le sujet:
              <input type=text name="subject">

-----------------------------------------------------------------------------

Champ:       email

Description: Ce champ de formulaire permet au visiteur d'indiquer son adresse E-Mail de retour.
             Si vous souhaitez pouvoir répondre au visiteur, je vous suggère fortement
             d'inclure ce champ dans votre formulaire et de le faire remplir par les visiteurs.
             Sa valeur sera mise dans le champ From:
             de l'E-Mail que vous recevrez.  Si vous souhaitez que ce champ soit obligatoirement
             rempli par le visiteur, ajouter le nom de ce champ, au champ 'required'.

Syntaxe:
             <input type=text name="email">

-----------------------------------------------------------------------------

Champ:       realname

Description: Le champ realname permet à l'utilisateur d'indiquer son nom.
             Ce champ est très utile à des fins d'identification et sera également mis dans le champ
             From: de l'E-Mail envoyé.

Syntaxe: 
             <input type=text name="realname">

-----------------------------------------------------------------------------

Champ:       redirect

Description: Si vous souhaitez rediriger votre visiteur vers une URL différente, plutôt que
             de leur afficher la page de réponse par défaut, vous pouvez utiliser cette variable cachée
             pour les renvoyer vers une page HTML que vous aurez préparée à l'avance.

Syntaxe:
             Pour choisir vous-même l'URL à laquelle ils vont aboutir:
               <input type=hidden name="redirect" 
                                  value="http://votre.site.com/votre/page.html">

             Pour leur permettre de choisr l'URL à laquelle ils doivent atterrir une fois
             le formulaire envoyé:
               <input type=text name="redirect">

-----------------------------------------------------------------------------

Champ:       required

Version:     1.3  et +

Description: Vous pouvez désormais choisir certains champs comme obligatoires
             pour que le formulaire soit accepté.  Placez simplement tous les noms
             des champs obligatoires dans ce champ. Si ces champs ne sont pas tous remplis
             le visiteur sera averti des champs non-remplis, et un lien de retour au formulaire
             sera présent.

             Pour utiliser une page d'erreur personnalisée, voir 'missing_fields_redirect'

Syntaxe:
             Si vous souhaitez qu'ils remplissent les champs d'email et telephone
             obligatoirement, afin que vous puissiez les contacter par la suite,
             une fois l'E-Mail reçu, mettez quelque chose comme:

               <input type=hidden name="required" value="email,telephone">

-----------------------------------------------------------------------------

Champ:       env_report

Version:     1.3 et +

Description: Vous permet d'avoir les variables d'environnement inclues dans 
             l'e-mail que vous recevrez.  Utile pour savoir quel navigateur ils utilisent,
             le domaine d'où ils viennent, et d'autres choses associées aux variables d'environnement.
             Ce qui suit est une courte liste des variables d'environnement classiques qui peuvent
             vous être utile:

             REMOTE_HOST     - Envoie le nom d'hôte de celui faisant la requête.
             REMOTE_ADDR     - Envoie l'adresse IP de celui faisant la requête.
             REMOTE_USER     - Si votre serveur supporte l'autentification et que
                               le script est protégé, ceci est le login avec lequel
                                ils se sont identifiés. *Ce n'est généralement pas utilisé/indiqué.*
             HTTP_USER_AGENT - Le navigateur utilisé.  

             Il y en a d'autres, mais elles sont un peu moins utiles.  Pour
             davantage d'infos sur les variables d'environnement, voir:

            http://www.cgi-resources.com/Documentation/Environment_Variables/

Syntaxe:
             Si vous voulez voir le nom d'hôte distant et le navigateur de celui envoyant la requête,
             mettez ceci dans le formulaire:

              <input type=hidden name="env_report" value="REMOTE_HOST,HTTP_USER_AGENT">

-----------------------------------------------------------------------------

Champ:       sort

Version:     1.4 et +

Description: Ce champ vous permet de choisir l'ordre dans lequel vous souhaitez
             que les champs apparaissent dans l'E-Mail que formmail-vf génère.
             Vous pouvez choisir d'avoir les champs classés alphabétiquement
             ou dans un ordre que vous définissez.  Si vous n'utilisez pas ce champ
             l'ordre sera par défaut celui dans lequel le navigateur du visiteur 
             envoie les champs au script (c'est habituellement l'ordre des champs
             dans le formulaire).  Pour définir vous-même l'ordre vous devez inclure
             "order:" en première partie de la valuer de ce champ sort, et
             faire suivre cela de la liste des champs à lister dans l'E-Mail,
             séparés par une virgule.  La version 1.6 permet un peu plus de flexibilité
              dans le listing de l'ordre des champs, car vous pouvez y mettre des espaces
             ou retour-chariots sans problème.  Utile si vous avez une longue liste de champs
             et avez besoin de faire des retours à la ligne.

Syntaxe:
             Pour trier alphabétiquement:
               <input type=hidden name="sort" value="alphabetic">

             Pour trier avec un certain ordre:
               <input type=hidden name="sort" value="order:nom1,nom2,
                                                   nom3,etc...">

-----------------------------------------------------------------------------

Champ:       print_config

Version:     1.5 et +

Description: print_config vous permet de spécifier quelles variables de configuration
             vous voulez voir dans l'E-Mail.
             Par défaut, aucune n'est affichée dans l'E-Mail.  C'est parce que
             les champs de formulaire importants comme email, subject, etc.
             sont inclus dans l'en-tête du message.  Malgré tout, quelques utilisateurs
             ont demandés cette option, pour avoir ces champs affichés dans le corps du
             du message.  Les champs de configuration que vous souhaitez voir affichés
             doivent être listés dans la valeur de ce champ, séparés par des virgules.

Syntaxe:
             Si vous souhaitez voir affichés les champs email et subject dans le corps
             du message de l'E-Mail,placez le tag suivant:

              <input type=hidden name="print_config" value="email,subject">

-----------------------------------------------------------------------------

Champ:       print_blank_fields

Version:     1.6

Description: print_blank_fields vous permet de demander que tous les champs
             de formulaires soient indiqués dans la page HTML de réponse et
             dans l'E-Mail, qu'ils aient été remplis ou non.
             Par défaut, ceci n'est pas le cas, et donc les champs non remplis
             n'apparaissent pas dans l'E-Mail.

Syntaxe:

             Pour afficher quand même tous les champs non remplis:
              <input type=hidden name="print_blank_fields" value="1">

----------------------------------------------------------------------------

Champ:       title

Version:     1.3 et +

Description: Ce champ de formulaire vous permet d'indiquer le titre et le haut de page
             qui apparaitra sur la page de résultat si vous ne spécifiez pas une URL
             de redirection.

Syntaxe:
             Pour que le titre soit 'Résultat du Feedback':
              <input type=hidden name="title" value="Résultat du Feedback">

-----------------------------------------------------------------------------

Champ:       return_link_url

Version:     1.3 et +

Description: Ce champ vous permet de spécifier une URL de retour 
             return_link_title, sur la page de résultats.  Ceci ne sera pas utilisé
             si vous précisez le champ redirect, mais c'est utile pour que le visiteur puisse
             revenir à votre page principale.

Syntaxe:
             <input type=hidden name="return_link_url" 
				             value="http://votre.site.com/index.html">

-----------------------------------------------------------------------------

Champ:       return_link_title

Version:     1.3 et +

Description: C'est le titre qui sera utilisé comme texte de lien de retour à la page
             spécifiée avec return_link_url.  Ces deux champs seront montrés sur
             la page de résultat ainsi:

             <ul>
              <li><a href="return_link_url">return_link_title</a>
             </ul>

Syntaxe:
             <input type=hidden name="return_link_title"
                                                  value="Retour page principale">

-----------------------------------------------------------------------------

Champ:       missing_fields_redirect

Version:     1.6

Description: Ce champ vous permet de spécifier une URL où rediriger le visiteur
             si certains champs obligatoires ne sont pas remplis.  Cela est fait
             pour que vous puissiez personnaliser la page d'erreur, plutôt que
             de voir affichée celle par défaut.

Syntaxe:
             <input type=hidden name="missing_fields_redirect"
                                    value="http://votre.site.com/erreur.html">

-----------------------------------------------------------------------------

Champ:       background

Version:     1.3 et +

Description: Ce champ de formulaire vous permet de spécifier une image de fond
             qui apparaitra sur la page de résultats, si vous n'utilisez pas le
             champ redirect.

Syntaxe:
             <input type=hidden name="background"
                                     value="http://votre.site.com/image.gif">

-----------------------------------------------------------------------------

Champ:       bgcolor

Version:     1.3 et +

Description: Ce champ de formulaire vous permet de spécifier la couleur de fond
             de la page de résultats.
             Inutile de mettre ce champ si vous utiliser redirect.

Syntaxe:
             Pour une couleur de fond en blanc:
              <input type=hidden name="bgcolor" value="#FFFFFF">

-----------------------------------------------------------------------------

Champ:       text_color

Version:     1.3 et +

Description: Ce champ fonctionne de la même façon que bgcolor, sauf que cela
             concerne la couleur du texte.

Syntaxe:
             Pour un texte en noir:
              <input type=hidden name="text_color" value="#000000">

-----------------------------------------------------------------------------

Champ:       link_color

Version:     1.3 et +

Description: Change la couleur des liens de la page de résultats.  Même 
             fonctionnement que text_color.  Inutile si vous utilisez redirect.

Syntaxe:
             Pour une couleur des liens en rouge:
              <input type=hidden name="link_color" value="#FF0000">

-----------------------------------------------------------------------------

Champ:       vlink_color

Version:     1.3 et +

Description: Change la couleur des liens visités sur la page de résultats. Même
             fonctionnement que link_color.  Inutile si vous utilisez redirect.

Syntaxe:
             Pour une couleur de liens visités en bleu:
              <input type=hidden name="vlink_color" value="#0000FF">

-----------------------------------------------------------------------------

Champ:       alink_color

Version:     1.4 et +

Description: Change la couleur des liens actifs sur la page de résultats. Même
             fonctionnement que link_color.  Inutile si vous utilisez redirect.

Syntaxe:
             Pour avoir la couleur des liens actifs en bleu:
              <input type=hidden name="alink_color" value="#0000FF">

-----------------------------------------------------------------------------

Tout autre champ de formulaire vous sera envoyé par E-Mail et affiché dans la page de
résultats si vous n'utilisez pas redirect.  Il n'y a pas de limite sur le nombre de champs 
que vous pouvez utiliser dans les formulaires, sauf ceux des navigateurs ou du serveur.

-----------------------------------------------------------------------------

Quelques utilisations possibles de ce scripts:

1) Vous voulez que les données tapées dans un formulaire vous parviennent par E-Mail, mais vous ne
   savez pas trop comment écrire un script CGI pour faire cela.
2) Vous êtes le webmaster de votre site et voulez pemettre aux utilisateurs l'utilisation des formulaires, 
   sans qu'ils aient leurs propres cgi-bin, source de problèmes de sécurité pour votre système.  
   Vous pouvez installer ce script puis autoriser tous les utilisateurs à s'en servir.
3) Vous voulez avoir un seul script pour récupérer tous vos formulaires et vous envoyer les données collectées.


-----------------------------------------------------------------------------

Historique dans la version d'origine:
Version 1.0     06/11/95  -  This script was created.
Version 1.1     08/03/95  -  A major hole in the script which allowed users 
                             to run commands under your server's uid was 
                             disabled, thanks to Paul Phillips, who noticed
                             the error.
                          -  The ability to redirect the user to a specified
                             HTML file after they filled out a form was 
                             added.
Version 1.2     09/23/95  -  If the form field is one of the required or 
                             optional 'special' fields, such as redirect, 
                             recipient, subject, email, realname, etc... the
                             script will not print these fields to either
                             your mail message or to the user's screen when
                             they are returned to a generic form response.
                             It helps you so that things do not get 
                             duplicated.
Version 1.3     01/21/96  -  Much needed update finally completed
                          -  Added form fields: env_report, bgcolor, 
                             background, link_color, vlink_color, title,
                             text_color, return_link_title, return_link_url 
                             and required.
                          -  Security hole, which allowed any user on any 
                             system to bum off of your formmail-vf script, has
                             been plugged up with the @referers variable.
                          -  Report style in return html and e-mail touched 
                             up a bit.
Version 1.4	    01/23/96  -  Added options: sort, alink_color 
                          -  Fixed a few bugs from Version 1.3, namely the 
                             fact that the link_colors weren't working well.
                          -  formmail-vf now supports both the GET and POST 
                             methods.
Version 1.5     02/05/96  -  Sorting of Fields in E-Mail Response Fixed.
                          -  print_config option added.
Version 1.6     05/02/97  -  Sorting of fields by default was fixed to now
                             sort in the order the fields are passed to
                             formmail-vf from the web browser, which is usually
                             the same order as they appear in the HTML form.
                          -  The sort order: directive, env_report and 
                             print_config parsing routines were made to 
                             better compensate for line breaks and extra
                             spaces in input for ease of use.
                          -  Redirect error causing the redirect option to
                             incorrectly work with https (secure servers)
                             was fixed.
                          -  Input of a '0' in a regular form field now
                             recognized as input and sent back to user.
                          -  Output of non-filled in form fields suppressed.
                          -  E-mail addresses checked for correct syntax if
                             designated a required field.
                          -  Fields only printed if they contain a value or
                             if the print_blank_fields option is set to 1.
                          -  missing_fields_redirect added so you can route
                             users who don't completely fill out the form to
                             a pre-made HTML page.
                          -  Parts of code optimized, especially in respect
                             to the way config variables are handled.
Version 1.7     07/27/01  -  Added in @recipients to defeat spamming attempts
                          -  Added in @valid_ENV to allow administrators to
                             specify what environment variables can be sent.
Version 1.8     08/02/01  -  Fixed the recipients code to allow multiple
                             recipients using the 'recipients' form field and
                             commas. Under certain cases in v1.7, spam could
                             still get through by appending a legit recipient
                             to the list of intended spam victims.
                          -  Moved send_email subroutine in front of 
                             return_html as many people reported their web
                             server would kill the FormMail process after the
                             redirect command was issued and no e-mail would
                             be sent.
Version 1.9     08/03/01  -  Added in a further anti-spam check which would
                             take advantage of newline characters in the 
                             subject to send invalid e-mail.
                          -  Removed a restriction when checking e-mail 
                             addresses for validity that required a 2 - 3
                             character domain extension.  With the new TLD's
                             becoming available, it can no longer apply.
Version 1.91    04/19/02  -  The same vulnerability that was patched in 1.9
                             with the subject field still existed in the email
                             and realname fields. Newline characters are no
                             longer allowed in any fields that are placed in
                             the header of the message.
                          -  Much stronger default regular expression checking
                             in the @recipients array is now implemented.  This
                             will combat the % hack and other known exploits.
                          -  The options for sendmail were moved into the
                             $mailprog variable and -i was added so that single
                             periods on a line will not cause the end of the
                             message.
Version 1.92    04/21/02  -  Removed cross-site scripting vulerabilities
                             by converting all <, >, & and " into their HTML
                             equivalents when displayed on a web page. These
                             characters are left intact in the e-mail message.
                          -  Now removes any null bytes from form input.
                          -  Fixed field recognition so that '0' is now a
                             valid input.  Supposedly fixed in v1.6.
                          -  Fixed print_blank_fields

-----------------------------------------------------------------------------
Matt Wright - mattw@worldwidemart.com - http://www.worldwidemart.com/scripts/
-----------------------------------------------------------------------------
VERSION FRANCAISE PAR Sebastien Joncheray http://www.perl-gratuit.com
Renommé formmail-vf.pl
-----------------------------------------------------------------------------