La communauté ALL HTML c'est 58449 membres à ce jour dont 0 inscrits aujourd'hui et 26 depuis une semaine.

  • imprimer
  • aide

Forum de discussions « Autres langages (JAVA, JSP, etc.) »

Retrouvez les publications relatives à ces discussions dans nos rubriques Coldfusion, java, perl.

probleme avec formail

liste des forums liste des discussions Participer à la discussion

Photo de nicosne Message publié le mardi 26 février 2008 à 18 h 04 par nicosne. Nicosne
Bonjour,
j'ai déjà utilisé se script sur un autre site(chez le même hébergeur) et il avait fonctionné parfaitement.
je veux l'utiliser sur cette page : http://at2e-medical.fr/contact.htm
il a l'aire de fonctionner mais je ne reçois aucun mail.
Mon hebergeur est Amen.
j'ai bien mis le script dans le repertoire "cgi-bin" avec les bon droits (755)...
il y a peut etre une erreur pour trouver le dossier sur le server qui contient sendmail...

Merci de votre aide,
Nico

PS : voici le script :

#!/usr/bin/perl
##############################################################################
# FormMail Version 1.92 #
# Copyright 1995-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 #
# Renommé formmail-vf.pl #
# #
# Traduction Mise à jour avec la dernière version le 4 Mai 2002 #
# #
##############################################################################
# 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. #
##############################################################################
# ACCESS CONTROL FIX: Peter D. Thompson Yezek #
# http://www.securityfocus.com/archive/1/62033 #
##############################################################################
# Definition des Variables #
# Informations Détaillées dans lisezmoi.txt #

# $mailprog definit l'emplacement du programme unix sendmail #
# Les arguments -i et -t doivent etre passés à sendmail afin qu'il ignore les#
# lignes contenant un point seul (fin de mail en principe) et recherche le #
# destinataire dans l'en-tête du mail. #
# (LAISSEZ ABSOLUMENT: -i -t derrière l'emplacement de sendmail !! ) #

$mailprog = '/usr/lib/sendmail -i -t';

# (LAISSEZ ABSOLUMENT: -i -t derrière l'emplacement de sendmail !! ) #

# @referers liste les noms de domaines autorisés à avoir un formulaire #
# utilisant ce script #
# Cette sécurité empêche n'importe qui d'utiliser votre script depuis son #
# serveur web #

@referers = ('at2e-medical.fr','at2e-medical.com','snsi.eu.com');

# @recipients liste les adresses E-Mail ou les noms de domaines vers où les #
# E-Mails peuvent être envoyés (limitation des destinataires possibles). #
# Cela doit être correctement rempli afin d'éviter tout SPAM, et de permettre#
# aux destinataires valides de recevoir l'E-Mail de chaque formulaire rempli.#
# Lisez la documentation jointe pour bien comprendre comment cette variable #
# fonctionne!!! C'est EXTREMEMENT IMPORTANT.
@recipients = &fill_recipients(@referers);

# ACCESS CONTROL FIX: Peter D. Thompson Yezek #
# @valid_ENV permet à l'administrateur système de définir quelles variables #
# d'environnement peuvent être reportées via la directive env_report. Ceci a #
# été implémenté pour régler le problème rapporté #
# à l'URL http://www.securityfocus.com/bid/1187 #

@valid_ENV = ('REMOTE_HOST','REMOTE_ADDR','REMOTE_USER','HTTP_USER_AGENT');

# Terminé #
##############################################################################

# Vérifie l'URL référante
&check_url;

# Obtient la date
&get_date;

# Récupère les données du formulaire
&parse_form;

# Vérifie les champs obligatoires
&check_required;

# Envoie l'E-Mail
&send_mail;

# Renvoie la page html ou redirige le visiteur
&return_html;

# NOTE rev1.91: Cette fonction n'a plus vraiment pour but d'empêcher le SPAM,#
# ceci est maintenant assuré par les vérification faites sur @recipients et #
# sur le champ de formulaire "recipient" #

sub check_url {

# Localise le flag check_referer qui détermine s'il faut valider l'appel #
local($check_referer) = 0;

# Si l'URL référante est spécifiée, pour chacun des @referers valides, #
# s'assurer que c'est une URL référente valide qui appelle formmail-vf. #

if ($ENV{'HTTP_REFERER'}) {
foreach $referer (@referers) {
if ($ENV{'HTTP_REFERER'} =~ m|https?://([^/]*)$referer|i) {
$check_referer = 1;
last;
}
}
}
else {
$check_referer = 1;
}

# Si le HTTP_REFERER est invalide, renvoyer une erreur. #
if ($check_referer != 1) { &error('bad_referer') }
}

sub get_date {

# Definie le tableau des jours de la semaine et mois de l'année. #
@days = ('Dimanche','Lundi','Mardi','Mercredi',
'Jeudi','Vendredi','Samedi');
@months = ('Janvier','Février','Mars','Avril','Mai','Juin','Juillet',
'Aout','Septembre','Octobre','Novembre','Décembre');

# Récupère la date courante et formate en heures, minutes et secondes. #
# Ajoute 1900 à l'année pour avoir les 4 chiffres de l'année. #
($sec,$min,$hour,$mday,$mon,$year,$wday) = (localtime(time))[0,1,2,3,4,5,6];
$time = sprintf("%02d:%02d:%02d",$hour,$min,$sec);
$year += 1900;

# Formate la date. #
$date = "$days[$wday] $mday $months[$mon] $year à $time";

}

sub parse_form {

# Définition du tableau associatif de configuration. #
%Config = ('recipient','', 'subject','',
'email','', 'realname','',
'redirect','', 'bgcolor','',
'background','', 'link_color','',
'vlink_color','', 'text_color','',
'alink_color','', 'title','',
'sort','', 'print_config','',
'required','', 'env_report','',
'return_link_title','', 'return_link_url','',
'print_blank_fields','', 'missing_fields_redirect','');

# Détermine la REQUEST_METHOD (GET ou POST) et sépare les champs de #
# formulaires en paires nom-valeur. Si la REQUEST_METHOD est ni #
# GET ni POST, renvoyer une erreur. #
if ($ENV{'REQUEST_METHOD'} eq 'GET') {
# Séparer les paires nom-valeur
@pairs = split(/&/, $ENV{'QUERY_STRING'});
}
elsif ($ENV{'REQUEST_METHOD'} eq 'POST') {
# Lire les paramètres en entrée
read(STDIN, $buffer, $ENV{'CONTENT_LENGTH'});

# Lire les paires nom-valeur
@pairs = split(/&/, $buffer);
}
else {
&error('request_method');
}

# Pour chaque paire nom-valeur: #
foreach $pair (@pairs) {

# Séparer la paire en 2 variables individuelles. #
local($name, $value) = split(/=/, $pair);

# Decoder l'encodage des données du nom et valeur. #
# v1.92: Supprime les octets zéro ('null') #
$name =~ tr/+/ /;
$name =~ s/%([a-fA-F0-9][a-fA-F0-9])/pack("C", hex($1))/eg;
$name =~ tr/\0//d;

$value =~ tr/+/ /;
$value =~ s/%([a-fA-F0-9][a-fA-F0-9])/pack("C", hex($1))/eg;
$value =~ tr/\0//d;

# Si le nom de champ est spécifié dans le tableau %Config, cela va #
# renvoyer 1 pour defined($Config{$name}}) et on doit associer #
# cette valeur à la variable de configuration appropriée. Si ce #
# n'est pas un champ de configuration, la mettre dans le tableau #
# associatif %Form, en la précédent de ', ' s'il y a déjà une valeur #
# présente. On conserve également l'ordre des champs de formulaire #
# dans @Field_Order pour utiliser cette ordre pour un tri générique. #
if (defined($Config{$name})) {
$Config{$name} = $value;
}
else {
if ($Form{$name} ne '') {
$Form{$name} = "$Form{$name}, $value";
}
else {
push(@Field_Order,$name);
$Form{$name} = $value;
}
}
}

# Les six lignes suivantes enlèvent les espaces ou retour-chariot éventuels
# en trop des variables de configuration,qui peuvent être là si l'éditeur html
# ajoute des retours à la ligne au-delà d'une certaine longeur ou si vous
# utilisez des espaces dans les noms de champs ou de variables d'environnement.
$Config{'required'} =~ s/(\s+|\n)?,(\s+|\n)?/,/g;
$Config{'required'} =~ s/(\s+)?\n+(\s+)?//g;
$Config{'env_report'} =~ s/(\s+|\n)?,(\s+|\n)?/,/g;
$Config{'env_report'} =~ s/(\s+)?\n+(\s+)?//g;
$Config{'print_config'} =~ s/(\s+|\n)?,(\s+|\n)?/,/g;
$Config{'print_config'} =~ s/(\s+)?\n+(\s+)?//g;

# Sépare les variables de configuration dans des champs individuels. #
@Required = split(/,/,$Config{'required'});
@Env_Report = split(/,/,$Config{'env_report'});
@Print_Config = split(/,/,$Config{'print_config'});

# ACCESS CONTROL FIX: Autoriser dans @Env_Report, uniquement les #
# variables d'environnement présentes dans @valid_ENV, par sécurité #
foreach $env_item (@Env_Report) {
foreach $valid_item (@valid_ENV) {
if ( $env_item eq $valid_item ) { push(@temp_array, $env_item) }
}
}
@Env_Report = @temp_array;
}

sub check_required {

# Localise les variables utilisées dans ce sous-programme. #
local($require, @error);

# Ce qui suit nous assure qu'il n'y a pas de retour à la ligne dans aucun#
# des champs qui vont être utilisés dans l'en-tête (du mail envoyé) #
if ($Config{'subject'} =~ /(\n|\r)/m || $Config{'email'} =~ /(\n|\r)/m ||
$Config{'realname'} =~ /(\n|\r)/m || $Config{'recipient'} =~ /(\n|\r)/m) {
&error('invalid_headers');
}


if (!$Config{'recipient'}) {
if (!defined(%Form)) { &error('bad_referer') }
else { &error('no_recipient') }
}
else {
# Ce bloc vérifie que l'adresse E-Mail du destinataire du message #
# (champ "recipient") fini par un domaine ou une adresse email valide#
# tel que défini dans @recipients. #
$valid_recipient = 0;
foreach $send_to (split(/,/,$Config{'recipient'})) {
foreach $recipient (@recipients) {
if ($send_to =~ /$recipient$/i) {
push(@send_to,$send_to); last;
}
}
}
if ($#send_to < 0) { &error('no_recipient') }
$Config{'recipient'} = join(',',@send_to);
}

# Pour chaque champ obligatoire défini dans le formulaire: #
foreach $require (@Required) {

# Si le champ obligatoire est le champ email, vérifier la syntaxe #
if ($require eq 'email' && !&check_email($Config{$require})) {
push(@error,$require);
}

# Sinon, si le champ obligatoire est un champ de configuration et #
# qu'il n'a pas de valeur ou n'est composé que d'espaces, erreur. #
elsif (defined($Config{$require})) {
if ($Config{$require} eq '') { push(@error,$require); }
}

# Si c'est un champ normal qui n'a pas été rempli, ou n'est composé #
# que d'espaces, le signaler comme champ avec erreur. #
elsif (!defined($Form{$require}) || $Form{$require} eq '') {
push(@error,$require);
}
}

# Si un champ avec erreur a été trouvé, renvoyer un message d'erreur. #
if (@error) { &error('missing_fields', @error) }
}

sub return_html {
# Variables locales utilisées dans ce sous-programme initialisées. #
local($key,$sort_order,$sorted_field);

local($field);
foreach $field (keys %Config) {
$safeConfig{$field} = &clean_html($Config{$field});
}

foreach $field (keys %Form) {
$Form{$field} = &clean_html($Form{$field});
}

# Si l'option redirect est utilisée, renvoyer l'en-tête de redirection. #
if ($Config{'redirect'}) {
print "Location: $safeConfig{'redirect'}\n\n";
}

# Sinon, commencer à afficher la page de réponse. #
else {

# Renvoyer l'en-tête HTTP et ouvrir les tags HTML. #
print "Content-type: text/html\n\n";
print "<html>\n <head>\n";

# Afficher le titre de la page #
if ($Config{'title'}) { print "<title>$safeConfig{'title'}</title>\n" }
else { print "<title>Merci</title>\n" }

print " </head>\n <body";

# Récupération des attributs du tag Body #
&body_attributes;

# Fermer le tag Body #
print ">\n <center>\n";

# Afficher le titre personnalisé ou celui générique. #
if ($Config{'title'}) { print "<h1>$safeConfig{'title'}</h1>\n" }
else { print "<h1>Merci d'avoir rempli ce formulaire</h1>\n" }

print "</center>\n";

print "Voici ce que vous avez soumis à $safeConfig{'recipient'} le ";
print "$date<p><hr size=1 width=75\%><p>\n";


# Si un ordre de tri est spécifié, classer les champs de formulaire en conséquence.
if ($Config{'sort'} =~ /^order:.*,.*/) {

# Définit la variable temporaire $sort_order avec l'ordre, #
# enlève les retour-chariots et espaces en trop, enlève la directive
# d'ordre et sépare les champs triés en un tableau. #
$sort_order = $Config{'sort'};
$sort_order =~ s/(\s+|\n)?,(\s+|\n)?/,/g;
$sort_order =~ s/(\s+)?\n+(\s+)?//g;
$sort_order =~ s/order://;
@sorted_fields = split(/,/, $sort_order);

# Pour chaque champ trié, s'il a une valeur ou si l'option print #
# blank fields est activée, afficher le nom du champ et sa valeur#
foreach $sorted_field (@sorted_fields) {
local $sfname = &clean_html($sorted_field);

if ($Config{'print_blank_fields'} || $Form{$sorted_field} ne '') {
print "<b>$sfname:</b> $Form{$sorted_field}<p>\n";
}
}
}

# Sinon, utiliser l'ordre dans lequel les champs ont été envoyés, ou #
# l'ordre alphabétique. #
else {

# Tri alphabétique si demandé. #
if ($Config{'sort'} eq 'alphabetic') {
@Field_Order = sort @Field_Order;
}

# Pour chaque champ, s'il a une valeur ou si l'option print #
# blank fields est activée, afficher le nom du champ et sa valeur#
foreach $field (@Field_Order) {
local $fname = &clean_html($field);

if ($Config{'print_blank_fields'} || $Form{$field} ne '') {
print "<b>$fname:</b> $Form{$field}<p>\n";
}
}
}

print "<p><hr size=1 width=75%><p>\n";

# Recherche si un lien de retour à été spécifié, et affichage si trouvé
if ($Config{'return_link_url'} && $Config{'return_link_title'}) {
print "<ul>\n";
print "<li><a href=\"$safeConfig{'return_link_url'}\">$safeConfig{'return_link_title'}</a>\n";
print "</ul>\n";
}

# Affiche le bas de page. #
print <<"(END HTML FOOTER)";
<hr size=1 width=75%><p>
<center><font size=-1><a href="http://www.worldwidemart.com/scripts/formmail.shtml">FormMail</a> V1.92 &copy; 1995 - 2002 Matt Wright.A Free Product of <a href="http://www.worldwidemart.com/scripts/">Matt's Script Archive, Inc.</a><br>
Version Française <a href="http://www.perl-gratuit.com">perl-gratuit.com</a></font></center>
</body>
</html>
(END HTML FOOTER)
}
}

sub send_mail {
# Localise les variables utilisées dans ce sous-programme. #
local($print_config,$key,$sort_order,$sorted_field,$env_report);

# Ouvrir le programme de Mail
open(MAIL,"|$mailprog");

print MAIL "To: $Config{'recipient'}\n";
print MAIL "From: $Config{'email'} ($Config{'realname'})\n";

# Vérifier la présence d'un titre de l'email
if ($Config{'subject'}) { print MAIL "Subject: $Config{'subject'}\n\n" }
else { print MAIL "Subject: Formulaire envoyé du web\n\n" }

print MAIL "Voici le résultat du formulaire envoyé par\n";
print MAIL "$Config{'realname'} ($Config{'email'}) le $date\n";
print MAIL "-" x 75 . "\n\n";

if (@Print_Config) {
foreach $print_config (@Print_Config) {
if ($Config{$print_config}) {
print MAIL "$print_config: $Config{$print_config}\n\n";
}
}
}

# Si un ordre de tri est spécifié, classer les champs de formulaire en conséquence.
if ($Config{'sort'} =~ /^order:.*,.*/) {

# enlève les retour-chariots et espaces en trop, enlève la directive #
# d'ordre et sépare les champs triés en un tableau. #
local $sort_order = $Config{'sort'};
$sort_order =~ s/(\s+|\n)?,(\s+|\n)?/,/g;
$sort_order =~ s/(\s+)?\n+(\s+)?//g;
$sort_order =~ s/order://;
@sorted_fields = split(/,/, $sort_order);

# Pour chaque champ trié, s'il a une valeur ou si l'option print #
# blank fields est activée, afficher le nom du champ et sa valeur #
foreach $sorted_field (@sorted_fields) {
if ($Config{'print_blank_fields'} || $Form{$sorted_field} ne '') {
print MAIL "$sorted_field: $Form{$sorted_field}\n\n";
}
}
}


# Sinon, l'ordre est celui dans lequel les champs ont été envoyés ou #
# l'ordre alphabétique #
else {

# Tri alphabétique si demandé: #
if ($Config{'sort'} eq 'alphabetic') {
@Field_Order = sort @Field_Order;
}

# Pour chaque champ trié, s'il a une valeur ou si l'option print #
# blank fields est activée, afficher le nom du champ et sa valeur #
foreach $field (@Field_Order) {
if ($Config{'print_blank_fields'} || $Form{$field} ne '') {
print MAIL "$field: $Form{$field}\n\n";
}
}
}

print MAIL "-" x 75 . "\n\n";

# Envoyer les variables d'environnement. #
foreach $env_report (@Env_Report) {
if ($ENV{$env_report}) {
print MAIL "$env_report: $ENV{$env_report}\n";
}
}

close (MAIL);
}

sub check_email {
# Initialise la variable locale email avec le paramètre du sous-programme#
$email = $_[0];

# Si l'adresse e-mail contient: #
if ($email =~ /(@.*@)|(\.\.)|(@\.)|(\.@)|(^\.)/ ||

# elle a une syntaxe invalide. Ou, si la syntaxe #
# ne correspond pas à l'expression régulière , il y a échec à la #
# vérification basique de syntaxe. #

$email !~ /^.+\@(\[?)[a-zA-Z0-9\-\.]+\.([a-zA-Z0-9]+)(\]?)$/) {

# La syntaxe basique requiert: un ou plusieurs caractères avant le @#
# suivis par un '[' optionnel, puis n'importe quel nombre de lettres,#
# chiffres, tirets ou points (caractères valides de domaine/IP) #
# finissant par un point et 2 ou 3 lettres (suffixe de domaine) ou #
# 1 à 3 chiffres (pour addresse IP). Un ']' est aussi autorisé car #
# syntaxe valide pour les emails du style: user@[255.255.255.0] #

# Retourne la valeur "false", puisque la vérification n'est pas ok #
return 0;
}

else {

# Retourne la valeur "true", vérification email ok #
return 1;
}
}

# Ceci fut ajouté dans la version v1.91 pour améliorer la sécurité du tableau#
# @recipients (destinataires autorisés). Maintenant, par défaut, ce script #
# considère comme adresses e-mail de destinataires valides, uniquement celles#
# qui commencent par les caractères A-Z, a-z, 0-9, _ et - et qui #
# correspondent exactement à votre nom de domaine. Si ce n'est pas ce que #
# vous voulez, vous devriez lire les explications détaillées concernant la #
# configuration de la variable @recipients dans la documentation jointe. #
sub fill_recipients {
local(@domains) = @_;
local($domain,@return_recips);

foreach $domain (@domains) {
if ($domain =~ /^\d+\.\d+\.\d+\.\d+$/) {
$domain =~ s/\./\\\./g;
push(@return_recips,'^[\w\-\.]+\@\[' . $domain . '\]');
}
else {
$domain =~ s/\./\\\./g;
$domain =~ s/\-/\\\-/g;
push(@return_recips,'^[\w\-\.]+\@' . $domain);
}
}

return @return_recips;
}

# Cette fonction convertit les <, >, & et " en leur équivalent HTML #
sub clean_html {
local $value = $_[0];
$value =~ s/\&/\&amp;/g;
$value =~ s/</\&lt;/g;
$value =~ s/>/\&gt;/g;
$value =~ s/"/\&quot;/g;
return $value;
}

sub body_attributes {
# Si attribut de couleur de fond
if ($Config{'bgcolor'}) { print " bgcolor=\"$safeConfig{'bgcolor'}\"" }

# Si attribut d'image de fond
if ($Config{'background'}) { print " background=\"$safeConfig{'background'}\"" }

# Si attribut de couleur de lien
if ($Config{'link_color'}) { print " link=\"$safeConfig{'link_color'}\"" }

# Si attribut de couleur de lien visité
if ($Config{'vlink_color'}) { print " vlink=\"$safeConfig{'vlink_color'}\"" }

# Si attribut de couleur de lien actif
if ($Config{'alink_color'}) { print " alink=\"$safeConfig{'alink_color'}\"" }

# Si attribut de couleur de texte
if ($Config{'text_color'}) { print " text=\"$safeConfig{'text_color'}\"" }
}

sub error {
# Localise les variables et paramètres du sous-programme. #
local($error,@error_fields) = @_;
local($host,$missing_field,$missing_field_list);

if ($error eq 'bad_referer') {
if ($ENV{'HTTP_REFERER'} =~ m|^https?://([\w\.]+)|i) {
$host = $1;
my $referer = &clean_html($ENV{'HTTP_REFERER'});
print <<"(END ERROR HTML)";
Content-type: text/html

<html>
<head>
<title>Mauvais Référant - Accès Interdit</title>
</head>
<body bgcolor=#FFFFFF text=#000000>
<center>
<table border=0 width=600 bgcolor=#9C9C9C>
<tr><th><font size=+2>Mauvais Référant - Accès Interdit</font></th></tr>
</table>
<table border=0 width=600 bgcolor=#CFCFCF>
<tr><td>Le formulaire tentant d'utiliser
<a href="http://www.worldwidemart.com/scripts/formmail.shtml">FormMail</a>
provient de <tt>$referer</tt>, qui n'est pas autorisé à accéder à ce script cgi.<p>

Si vous essayez de configurer formmail-vf pour qu'il fonctionne avec ce formulaire, vous devez
ajouter ce qui suit à \@referers, expliqué dans la fichier lisezmoi.txt.<p>

Ajoutez <tt>'$host'</tt> au tableau <tt><b>\@referers</b></tt>.<hr size=1>
<center><font size=-1>
<a href="http://www.worldwidemart.com/scripts/formmail.shtml">FormMail</a> V1.92 &copy; 1995 - 2002 Matt Wright.
A Free Product of <a href="http://www.worldwidemart.com/scripts/">Matt's Script Archive, Inc.</a>
<br>Version Française <a href="http://www.perl-gratuit.com">perl-gratuit.com</a> </font></center>
</font></center>
</td></tr>
</table>
</center>
</body>
</html>
(END ERROR HTML)
}
else {
print <<"(END ERROR HTML)";
Content-type: text/html

<html>
<head>
<title>formmail-vf v1.92</title>
</head>
<body bgcolor=#FFFFFF text=#000000>
<center>
<table border=0 width=600 bgcolor=#9C9C9C>
<tr><th><font size=+2>formmail-vf</font></th></tr>
</table>
<table border=0 width=600 bgcolor=#CFCFCF>
<tr><th><tt><font size=+1>Copyright 1995 - 2002 Matt Wright<br>
Version 1.92 - Released April 21, 2002<br>
A Free Product of <a href="http://www.worldwidemart.com/scripts/">Matt's Script Archive,
Inc.</a>
<br>Version Française <a href="http://www.perl-gratuit.com">perl-gratuit.com</a>
</font></tt></th></tr>
</table>
</center>
</body>
</html>
(END ERROR HTML)
}
}

elsif ($error eq 'request_method') {
print <<"(END ERROR HTML)";
Content-type: text/html

<html>
<head>
<title>Erreur: Méthode de Requête</title>
</head>
<body bgcolor=#FFFFFF text=#000000>
<center>
<table border=0 width=600 bgcolor=#9C9C9C>
<tr><th><font size=+2>Erreur: Méthode de Requête</font></th></tr>
</table>
<table border=0 width=600 bgcolor=#CFCFCF>
<tr><td>La Méthode de Requête de votre formulaire ne correspond ni à
<tt>GET</tt> ni à <tt>POST</tt>. Merci de vérifier votre formulaire et de vous assurer
que le tag <tt>method=</tt> est en majuscules et correspond à <tt>GET</tt> ou <tt>POST</tt>.<p>

<center><font size=-1>
<a href="http://www.worldwidemart.com/scripts/formmail.shtml">FormMail</a> V1.92 &copy; 1995 - 2002 Matt Wright.
A Free Product of <a href="http://www.worldwidemart.com/scripts/">Matt's Script Archive, Inc.</a>
<br>Version Française <a href="http://www.perl-gratuit.com">perl-gratuit.com</a>
</font></center>
</td></tr>
</table>
</center>
</body>
</html>
(END ERROR HTML)
}

elsif ($error eq 'no_recipient') {
print <<"(END ERROR HTML)";
Content-type: text/html

<html>
<head>
<title>Erreur: Destinataire manquant/invalide</title>
</head>
<body bgcolor=#FFFFFF text=#000000>
<center>
<table border=0 width=600 bgcolor=#9C9C9C>
<tr><th><font size=+2>Erreur: Destinataire manquant/invalide</font></th></tr>
</table>
<table border=0 width=600 bgcolor=#CFCFCF>
<tr><td>Aucun destinataire (ou alors un destinatire invalide) n'est spécifié dans les données envoyées à formmail-vf. Merci
vous assurer que vous avez bien mis dans votre formulaire un champ <tt>recipient</tt> avec une adresse e-mail dont le domaine (ou l'adresse complète)
est présent dans la variable <tt>\@recipients</tt>.
Davantage d'informations dans le fichier lisezmoi.txt.<hr size=1>

<center><font size=-1>
<a href="http://www.worldwidemart.com/scripts/formmail.shtml">FormMail</a> V1.92 &copy; 1995 - 2002 Matt Wright.
A Free Product of <a href="http://www.worldwidemart.com/scripts/">Matt's Script Archive, Inc.</a>
<br>Version Française <a href="http://www.perl-gratuit.com">perl-gratuit.com</a>
</font></center>
</td></tr>
</table>
</center>
</body>
</html>
(END ERROR HTML)
}

elsif ($error eq 'invalid_headers') {
print <<"(END ERROR HTML)";
Content-type: text/html

<html>
<head>
<title>Erreur: Champs d'en-tête invalides</title>
</head>
<body bgcolor=#FFFFFF text=#000000>
<center>
<table border=0 width=600 bgcolor=#9C9C9C>
<tr><th><font size=+2>Erreur: Champs d'en-tête invalides</font></th></tr>
</table>
<table border=0 width=600 bgcolor=#CFCFCF>
<tr><td>Au moins un des champs d'en-tête, ce qui inclue <tt>recipient</tt>, <tt>email</tt>, <tt>realname</tt> et <tt>subject</tt> a
été rempli avec des caractères invalides. Vous ne devez pas mettre de retour à la ligne dans ces champs.
Davantage d'informations sur la manière d'utiliser ces champs sont disponibles dans le fichier lisezmoi.txt<hr size=1>

<center><font size=-1>
<a href="http://www.worldwidemart.com/scripts/formmail.shtml">FormMail</a> V1.92 &copy; 1995 - 2002 Matt Wright.
A Free Product of <a href="http://www.worldwidemart.com/scripts/">Matt's Script Archive, Inc.</a>
<br>Version Française <a href="http://www.perl-gratuit.com">perl-gratuit.com</a>
</font></center>
</td></tr>
</table>
</center>
</body>
</html>
(END ERROR HTML)
}


elsif ($error eq 'missing_fields') {
if ($Config{'missing_fields_redirect'}) {
print "Location: " . &clean_html($Config{'missing_fields_redirect'}) . "\n\n";
}
else {
foreach $missing_field (@error_fields) {
$missing_field_list .= "<li>" . &clean_html($missing_field) . "\n";
}

print <<"(END ERROR HTML)";
Content-type: text/html

<html>
<head>
<title>Erreur: Champs Obligatoires</title>
</head>
<center>
<table border=0 width=600 bgcolor=#9C9C9C>
<tr><th><font size=+2>Erreur: Champs Obligatoires</font></th></tr>
</table>
<table border=0 width=600 bgcolor=#CFCFCF>
<tr><td>Les champs suivants n'ont pas été remplis dans le formulaire:<p>
<ul>
$missing_field_list
</ul><br>

Ces champs doivent être remplis pour que le formulaire soit envoyé.<p>
Merci d'utiliser le bouton de retour à la page précédente de votre navigateur pour revenir au formulaire et essayer à nouveau.<hr size=1>
<center><font size=-1>
<a href="http://www.worldwidemart.com/scripts/formmail.shtml">FormMail</a> V1.92 &copy; 1995 - 2002 Matt Wright.
A Free Product of <a href="http://www.worldwidemart.com/scripts/">Matt's Script Archive, Inc.</a>
<br>Version Française <a href="http://www.perl-gratuit.com">perl-gratuit.com</a>
</font></center>
</td></tr>
</table>
</center>
</body>
</html>
(END ERROR HTML)
}
}
exit;
}

liste des forums liste des discussions Participer à la discussion

Vous devez obligatoirement vous identifier en tant que membre pour participer à cette discussion.

ACCÉS COMMUNAUTÉ

Rejoignez ALL HTML

Publiez vos articles, actualités, communiqués ... Donnez votre avis, partagez votre réseau, rencontrez d'autres membres et participez à la vie de la communauté.

Les 5 dernières discussions