##############################################################################
# FormMail                        Version 1.6                                #
# Copyright 1996-1997 Matt Wright mattw@worldwidemart.com                    #
# Created 06/09/95                Last Modified 05/02/97                     #
# 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                                              #
#                                                                            #
#                                                                            #
##############################################################################
# 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 - 1997 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 form vers les envois d'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 version 1.6 de formmail-vf contient quelques corrections de bugs mineurs, un code optimisé
et davantage de commentaires.
Le changement principal dans cette version est que par défaut, les champs de formulaire
sont maintenant triés tels qu'ils apparaissent dans le formulaire.  Les pages d'erreur sont également 
un peu plus esthétiques, et deux nouvelles variables de configuration ont été ajoutées.
Lisez l'historique pour une liste plus complète des modifications.
Le script, formmail-vf.pl, doit être placé dans le cgi-bin de votre serveur et l'utilisateur
anonyme de 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.pl 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 vakeur est incorrecte, les données des formulaires ne pourront vous être envoyés par E-Mail.
  @referers = ('storkein.blue.fr','perl-gratuit.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'utiliser le script avec un formulaire
    situé sur un autre serveur, 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.
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.
Syntaxe:
             <input type=hidden name="recipient" value="email@votre.site.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 envoyé.
             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 ceratins 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 incluses dans 
             l'e-mail que vous recevez.  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ées 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 également 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 sot 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.
-----------------------------------------------------------------------------
History:
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.
-----------------------------------------------------------------------------
Matt Wright - mattw@worldwidemart.com - http://www.worldwidemart.com/scripts/
-----------------------------------------------------------------------------
VERSION FRANCAISE PAR Sebastien Joncheray http://www.perl-gratuit.com
Renommé formmail-vf.pl
-----------------------------------------------------------------------------