gilou Modérateur Modosaurus Rex | Bon, mettons déja cela en forme avec un numéro de ligne:
  
  Code :
 - #!/usr/bin/perl
 - $PFORM_DATAS_DIR = 'PFORM_datas'; # nom du sous-répertoires qui contiendra les données.
 - &recup_conf;
 - $MAX_UP = $CONF{'MAX_UPLOAD'} * 1024;
 - if ($CONF{'DOMAIN'}) { $DOMAIN = $CONF{'DOMAIN'}; } else { $DOMAIN = ($ENV{'SERVER_NAME'} || $ENV{'HTTP_HOST'}); }
 - $script = ($ENV{'REQUEST_URI'} || $ENV{'SCRIPT_NAME'});
 - $script =~ s/\?.*//gs;
 - $site_base = 'http://'.$DOMAIN;
 - $CGI = $site_base.$script;
 - use CGI;
 - $qw = new CGI;
 - %Form=();
 - foreach ($qw->param) { s/^\s//; s/\s$//; $Form{$_}=$qw->param($_); }
 - ## INSTALLATION ##
 - if ($Form{'ACT'} eq 'INSTALL' && $CONF{'INSTALL'} != 1) { &install; }
 - elsif ($CONF{'INSTALL'} != 1) { &form_install; }
 - ## ADMINISTRATION ##
 - elsif ($Form{'ACT'} eq 'ADMIN') { &admin_menu; }
 - elsif ($Form{'ACT'} eq 'admin_config') { &admin_config; }
 - elsif ($Form{'ACT'} eq 'modif_conf') { &admin_modif_conf; }
 - elsif ($Form{'ACT'} eq 'admin_new_form') { &admin_new_form; }
 - elsif ($Form{'ACT'} eq 'creer_new_form') { &creer_new_form; }
 - elsif ($Form{'ACT'} eq 'admin_sup_form') { &admin_sup_form; }
 - elsif ($Form{'ACT'} eq 'admin_sup_form_confirm') { &admin_sup_form_confirm; }
 - elsif ($Form{'ACT'} eq 'admin_modif_form') { &admin_modif_form; }
 - elsif ($Form{'ACT'} eq 'admin_aide_form') { &admin_aide_form; }
 - ## GESTION DU FORMULAIRE ##
 - elsif ($Form{'F'} && $Form{'F'} =~ /^\d{14}$/ && -e "$PFORM_DATAS_DIR/F_$Form{F}.dat" ) { &form_gestion; }
 - else { &admin_enter; }
 - ###############################
 - sub form_gestion
 - {
 - $F = $Form{'F'}; $F_fic = $PFORM_DATAS_DIR.'/F_'.$F.'.dat';
 - if ($ENV{'CONTENT_LENGTH'} > $MAX_UP) { $aff = "L'ensemblre des fichiers attachés que vous envoyez a une taille trop grande !!<BR>Taille d'upload limitée pour raison de sécurité !"; &affichage; }
 - open (CONF_FORM,"<$F_fic" );
 - while ($line=<CONF_FORM> )
 -       {
 -       chomp($line);
 -       if ( ($line !~ /^$/) && ($line !~ /^\s+$/) && ($line !~ /^#/) && ($line =~ /^(.*)=================(.*)$/) ) { $C_FORM{"$1"}="$2"; }
 -       }
 - close (CONF_FORM);
 - &verifie_referer;
 - if ($C_FORM{'REQUIS'} !~ /^$/) { &verifie_oblig; }
 - $from = $Form{'email'}; $subject = $Form{'sujet'}; $name = $Form{'nom'}; $t_to = 0;
 - if ($Form{'TO'}) { @TO = split(/,/, $Form{'TO'}); } else { $t_to = 0; }
 - &order_Form;
 - if ($Form{'TO'}) {
 - @DEST = split(/\|/,$C_FORM{'DESTINATAIRES'});
 - foreach(@DEST)
 -       {
 -       ($pseud,$mail) = split(/,/, $_);
 -       foreach(@TO) { if ($_ eq $pseud) { $t_to++; push(@EMAILS, "$mail" ); } }
 -       }
 - }
 - if ($t_to == 0)  { $aff = "<b>ERREUR DE CONFIGURATION</b><br>Il n'y a pas de champ 'TO' !"; &affichage; }
 - if ($C_FORM{'CONFIRM'} && !$Form{'valid'})
 -    {
 -    $aff .= $C_FORM{'CONFIRM_MESS'}.qq~\n<FORM METHOD="POST" ACTION="$CGI" ENCTYPE="multipart/form-data">
 -    <TABLE cellspacing="0" cellpadding="4" border="0">
 -    $aff_recap
 -    </TABLE>
 -    <INPUT TYPE="HIDDEN" NAME="valid" VALUE="1">
 -    <BR>
 -    <INPUT TYPE="button" VALUE=" RETOUR " STYLE="$C_FORM{'CONFIRM_STYLE'}" OnClick="javascript:history.back()">  <INPUT TYPE="SUBMIT" NAME="submit" VALUE=" VALIDER " STYLE="$C_FORM{'CONFIRM_STYLE'}">
 -    </FORM>
 -    ~;
 -    &affichage;
 -    }
 - else { # else 1
 - $i = 0;
 - if ($C_FORM{'EXTENSIONS'}) { @EXT_AUTORISE = split(/,/, $C_FORM{'EXTENSIONS'}); }
 - foreach (keys %Form)
 -         {
 -         if ($_ =~ /^fichier/ && $Form{$_})
 -            {
 -            if ($C_FORM{'EXTENSIONS'})
 -               {
 -               foreach $ext(@EXT_AUTORISE) { if ($Form{$_} =~ /$ext$/i) { $ext_ok = 1; last; } }
 -               if ($ext_ok != 1)
 -                  {
 -                  $aff = qq~<b>Extension de fichier non autorisée !</b><BR><br>
 -                  L'extension de la pièce jointe "$_" n'est pas autorisée !<br><br>
 -                  <A HREF="javascript:history.back()" CLASS="lien">RETOUR AU FORMULAIRE</A><BR>
 -                  ~;
 -                  &affichage;
 -                  } 
 -               }
 -            ©_du_fichier($Form{$_});
 -            $out_file[$i] = $out_file; 
 -            }
 -         }
 - &sendmail;
 - if (!$C_FORM{'REDIRECT'})
 -    {
 -    $aff .= $C_FORM{'REDIRECT_MESS'}.qq~\n<BR><TABLE cellspacing="0" cellpadding="4" border="0">
 -    $aff_recap
 -    </TABLE><BR>
 -    ~;
 -    &affichage;
 -    }
 - else { print $qw->header(-LOCATION => $C_FORM{'REDIRECT_URL'}); exit; }
 -               }  # fin else 1
 - }
 - ## CLASSEMENT DANS L'ORDRE ##
 - sub order_Form
 - {
 - if (!$C_FORM{'ORDRE_TYPE'})
 -    {
 -    foreach (keys %Form)
 -            {
 -            if ($_ !~ /submit/i && $_ ne 'valid' && $Form{$_} ne '' && $Form{$_} !~ /^\s+$/)
 -               {
 -               $form_temp = $Form{"$_"};
 -               $form_temp =~ s/\r\n/<BR>/g;
 -               $aff_recap .= qq~<TR><TD CLASS="texte" valign="top"><i>$_</i> :</TD><TD CLASS="texte" valign="top">$form_temp\n~ unless $_ =~ /^TO$|^PRIORITY$|^F$|^fichier/;
 -               if ($C_FORM{'CONFIRM'} && !$Form{'valid'})
 -                  {
 -                  $aff_recap .= qq~<INPUT TYPE="HIDDEN" NAME="$_" VALUE="$Form{"$_"}">\n~ unless $_ =~ /^fichier/;
 -                  if ($_ =~ /^fichier/) { $aff_recap .= qq~<TR><TD CLASS="texte" valign="top"><i>$_</i> (Veuillez entrer à nouveau le fichier):</TD><TD CLASS="texte" valign="top"><INPUT TYPE="file" NAME="$_" VALUE="$Form{"$_"}" STYLE="$C_FORM{'CONFIRM_STYLE'}">\n~; }
 -                  }
 -               if (($C_FORM{'CONFIRM'} && $Form{'valid'}) || !$C_FORM{'CONFIRM'})
 -                  {
 -                  $corps_mail .= qq~- $_ :\n$Form{"$_"}\n~ unless $_ =~ /^TO$|^PRIORITY$|^F$|^fichier/;
 -                  }
 -               $aff_recap .= q~</TD></TR>~ unless $_ =~ /^TO$|^PRIORITY$|^F$/;
 -               }
 -            }
 -    }
 - elsif ($C_FORM{'ORDRE_TYPE'} == 1)
 -       {
 -       foreach (sort keys %Form)
 -               {
 -               if ($_ !~ /submit/i && $_ ne 'valid' && $Form{$_} ne '' && $Form{$_} !~ /^\s+$/)
 -                  {
 -                  $form_temp = $Form{"$_"};
 -                  $form_temp =~ s/\r\n/<BR>/g;
 -                  $aff_recap .= qq~<TR><TD CLASS="texte" valign="top"><i>$_</i> :</TD><TD CLASS="texte" valign="top">$form_temp\n~ unless $_ =~ /^TO$|^PRIORITY$|^F$|^fichier/;
 -                  if ($C_FORM{'CONFIRM'} && !$Form{'valid'})
 -                     {
 -                     $aff_recap .= qq~<INPUT TYPE="HIDDEN" NAME="$_" VALUE="$Form{"$_"}">\n~ unless $_ =~ /^fichier/;
 -                     if ($_ =~ /^fichier/) { $aff_recap .= qq~<TR><TD CLASS="texte" valign="top"><i>$_</i> (Veuillez entrer à nouveau le fichier):</TD><TD CLASS="texte" valign="top"><INPUT TYPE="file" NAME="$_" VALUE="$Form{"$_"}" STYLE="$C_FORM{'CONFIRM_STYLE'}">\n~; }
 -                     }
 -                  if (($C_FORM{'CONFIRM'} && $Form{'valid'}) || !$C_FORM{'CONFIRM'}) { $corps_mail .= qq~- $_ :\n$Form{"$_"}\n~ unless $_ =~ /^TO$|^PRIORITY$|^F$|^fichier/; }
 -                  $aff_recap .= q~</TD></TR>~ unless $_ =~ /^TO$|^PRIORITY$|^F$/;
 -                  }
 -                }
 -       }  # ici
 - else {
 -      local(@order) = split(/\,/, $C_FORM{'ORDRE'});
 -      foreach (@order)
 -              {
 -              if ($Form{$_} ne '') {
 -              $form_temp = $Form{"$_"};
 -              $form_temp =~ s/\r\n/<BR>/g;
 -              $aff_recap .= qq~<TR><TD CLASS="texte" valign="top"><i>$_</i> :</TD><TD CLASS="texte" valign="top">\n$form_temp\n~;
 -              if ($C_FORM{'CONFIRM'} && !$Form{'valid'}) { $aff_recap .= qq~<INPUT TYPE="HIDDEN" NAME="$_" VALUE="$Form{"$_"}">\n~; }
 -              if (($C_FORM{'CONFIRM'} && $Form{'valid'}) || !$C_FORM{'CONFIRM'}) { $corps_mail .= qq~- $_ :\n$Form{"$_"}\n~; }
 -              $aff_recap .= q~</TD></TR>~;
 -              delete($Form{$_});
 -                                }
 -              }
 -      foreach (sort keys %Form)
 -              {
 -              if ($_ !~ /submit/i && $_ ne 'valid' && $Form{$_} ne '')
 -                 {
 -                 $form_temp = $Form{"$_"};
 -                 $form_temp =~ s/\r\n/<BR>/g;
 -                 $aff_recap .= qq~<TR><TD CLASS="texte" valign="top"><i>$_</i> :</TD><TD CLASS="texte" valign="top">$form_temp\n~ unless $_ =~ /^TO$|^PRIORITY$|^F$|^fichier/;
 -                 if ($C_FORM{'CONFIRM'} && !$Form{'valid'})
 -                     {
 -                     $aff_recap .= qq~<INPUT TYPE="HIDDEN" NAME="$_" VALUE="$Form{"$_"}">\n~ unless $_ =~ /^fichier/;
 -                     if ($_ =~ /^fichier/) { $aff_recap .= qq~<TR><TD CLASS="texte" valign="top"><i>$_</i> (Veuillez entrer à nouveau le fichier):</TD><TD CLASS="texte" valign="top"><INPUT TYPE="file" NAME="$_" VALUE="$Form{"$_"}">\n~; }
 -                     }
 -                 if (($C_FORM{'CONFIRM'} && $Form{'valid'}) || !$C_FORM{'CONFIRM'}) { $corps_mail .= qq~- $_ :\n$Form{"$_"}\n~ unless $_ =~ /^TO$|^PRIORITY$|^F$|^fichier/; }
 -                 }
 -               $aff_recap .= q~</TD></TR>~ unless $_ =~ /^TO$|^PRIORITY$|^F$/;
 -               }
 -      }
 - }
 - ## ENVOI EMAIL ##
 - sub sendmail
 - {
 - if (!$subject) { $subject = "Formulaire envoyé du web !"; }
 - $mail = 'From: '.$from;
 - if ($name !~ /^\s+$/ && $name ne '') { $mail .= ' ('.$name.')'; }
 - if ($Form{'PRIORITY'} !~ /^1$|^3$|^5$/) { $Form{'PRIORITY'} = 3; }
 - $to = join(',',@EMAILS);
 - $mail .= "\n".'Reply-To: '.$from."\n".'To: '.$to."\n".'X-Mailer: P-FORM V5.0 PRO/http://www.perl-fr.com'."\n".'X-Priority: '.$Form{'PRIORITY'}."\n".'Subject: '.$subject."\n";
 - $date = &date(0);
 - $mail .= 'Voici le résultat du formulaire envoyé du web du site '.$site_base.' le '.$date.' :'."\n\n".$corps_mail."\n";
 - if ($C_FORM{'INFOS'})
 -    {
 -    $mail .= '-' x 70;
 -    $mail .= "\n".q~Informations complémentaires sur l'utilisateur :~."\n".'Ip : '.$ENV{'REMOTE_ADDR'}."\n";
 -    if ($ENV{'REMOTE_HOST'}) { $mail .= 'Host : '.$ENV{'REMOTE_HOST'}."\n"; }
 -    $mail .= 'Langue : '.$ENV{'HTTP_ACCEPT_LANGUAGE'}."\n".'Systeme : '.$ENV{'HTTP_USER_AGENT'}."\n".'Page référente : '.$ENV{'HTTP_REFERER'}."\n";
 -    $mail .= '-' x 70;
 -    $mail .= "\n";
 -    }
 - open(MAIL, "|$CONF{SENDMAIL} -t" ) || die "ne peut ouvrir $sendmail!\n";
 - print MAIL $mail;
 - if ($i > 0)
 -    {
 -    foreach $i(1..$i) {
 -    if (-e $out_file[$i])
 -       {
 -       $n_file = $out_file[$i]; $n_file =~ s/^.*[\/|\\|\:]//g;
 -       open(FILE, "uuencode $out_file[$i] $n_file|" ) or die;
 -       while(<FILE> ) { print MAIL; }
 -       close(FILE);
 -       }
 -       unlink("$out_file[$i]" );
 -        }
 -    }
 - close(MAIL);
 - }
 - ## VERIFICATION DES CHAMPS OBLIGATOIRES ##
 - sub verifie_oblig
 - {
 - local(@oblig) = split (/\,/,$C_FORM{'REQUIS'});
 - local($err) = 0; local($aff_err);
 - foreach(@oblig)
 -        {
 -        $_ =~ s/^\s//; $_ =~ s/\s$//;  
 -        if ($_ eq 'email') { if (&verifie_email("$Form{email}" ) == 0) { $err++; $aff_err .= '- email<br>'."\n"; } }
 -        else { if (!$Form{"$_"} || $Form{"$_"} =~ /^\s+$/) { $err++; $aff_err .= '- '.$_.'<br>'."\n"; } }
 -        }
 - if ($err > 0)
 -    {
 -    $aff = qq~<b>Erreur : CHAMPS OBLIGATOIRES !!</b><BR>
 -    Veuillez vérifier votre formulaire !<br>
 -    Les $err champ(s) obligatoire(s) suivants n'ont pas été remplis correctement :<br><br>
 -    $aff_err
 -    <BR><a href="javascript:history.back()" class="lien"> Retour au formulaire !</a><BR>
 -    ~;
 -    &affichage;
 -    }
 - }
 - sub verifie_referer
 - {
 - local($trouv) = 0;
 - if (!$ENV{'HTTP_REFERER'}) { goto FIN_VR; }
 - @DOMAINES = split(/,/, "$C_FORM{'DOMAINES'}" );
 - foreach(@DOMAINES) { if ($ENV{'HTTP_REFERER'} =~ /$_/i) { $trouv = 1; last; } }
 - FIN_VR:
 - if ($trouv == 0) { $aff = '<b>ERREUR !!<BR><BR>Le script n\'a pas été appelé d\'un site autorisé !!</b>'; &affichage; }
 - }
 - sub affichage
 - {
 - print "Content-type: text/html\n\n";
 - open(HAUT_HTML,"<$PFORM_DATAS_DIR/F_temp_h_$F.dat" );
 - while (<HAUT_HTML> ){ print $_; }
 - close(HAUT_HTML);
 - print $aff;
 - open(BAS_HTML,"<$PFORM_DATAS_DIR/F_temp_b_$F.dat" );
 - while (<BAS_HTML> ){ print $_; }
 - close(BAS_HTML);
 - exit;
 - }
 - ###############################
 - sub admin_enter
 - {
 - &style;
 - &affiche_admin("<B>ADMINISTRATION</B>$badpass",qq|<TABLE BORDER="0" WIDTH="100%" ALIGN="CENTER" CELLPADDING="0" CELLSPACING="0">
 - <FORM METHOD="POST" ACTION="$CGI"><INPUT TYPE="HIDDEN" NAME="ACT" VALUE="ADMIN">
 - <TR><TD CLASS="texte_w" valign="top" align="center"><A HREF="http://www.perl-fr.com" target="_blank"><IMG SRC="http://vs6.hostfr.net/EXT/PForm/Pform.jpg" BORDER="0" ALIGN="absmiddle"></A></td><TD CLASS="texte_w">PASSWORD :<BR><INPUT TYPE="password" size="20" maxlength="20" name="pass" $STYLE>
 - <BR><INPUT TYPE="submit" $STYLE VALUE=" ENTRER "></TD></TR></FORM></TABLE>|);
 - }
 - sub admin_menu
 - {
 - &pass_verif;
 - &style;
 - opendir (DIR, "$PFORM_DATAS_DIR" );
 - $nb_f = @files = grep(/^F_\d{14}\.dat$/,readdir(DIR));
 - closedir(DIR);
 - $sel = '';
 - if ($nb_f > 0)
 -    {
 -    foreach (@files)
 -            {
 -            if ($_ =~ /^F_(\d{14})\.dat$/) { $id = $1; }
 -            open (CONF_FIC,"<$PFORM_DATAS_DIR/$_" );
 -            while ($line=<CONF_FIC> )
 -                  {
 -                  chomp($line);
 -                  if ( ($line !~ /^$/) && ($line !~ /^\s+$/) && ($line !~ /^#/) && ($line =~ /^(.*)=================(.*)$/) )
 -                     {
 -                     if ($1 eq 'NAME') { $name = $2; }
 -                     }
 -                  }
 -            close(CONF_FIC);     
 -            $opt_f .= qq|<OPTION VALUE="$id">$name</OPTION>\n|;
 -            }
 - $sel = qq|\n<TR><TD CLASS="texte_w"><INPUT TYPE="RADIO" NAME="ACT" VALUE="admin_modif_form"> <SELECT NAME="Fm" $STYLE>\n$opt_f</OPTION>\n</td><TD CLASS="texte_w">Configuration du formulaire</TD><TD CLASS="texte_w"><A HREF="javascript:alert('Modifiez la configuration du formulaire sélectionné  ')">$IMG_POINT</A></TD></TR>
 - <TR><TD CLASS="texte_w"><INPUT TYPE="RADIO" NAME="ACT" VALUE="admin_sup_form"> <SELECT NAME="Fs" $STYLE>\n$opt_f</OPTION>\n</td><TD CLASS="texte_w">Supprimer le formulaire</TD><TD CLASS="texte_w"><A HREF="javascript:alert('Supprimez le formulaire sélectionné  \\n')">$IMG_POINT</A></td></TR>
 - <TR><TD CLASS="texte_w"><INPUT TYPE="RADIO" NAME="ACT" VALUE="admin_aide_form"> <SELECT NAME="Fa" $STYLE>\n$opt_f</OPTION>\n</td><TD CLASS="texte_w">Créér un formulaire html</TD><TD CLASS="texte_w"><A HREF="javascript:alert('Outil d\\'aide à la création de votre formulaire html ! \\n')">$IMG_POINT</A></td></TR>\n|;
 -    }
 - &affiche_admin("<B>ADMINISTRATION</B>",qq|<TABLE BORDER="0" ALIGN="CENTER" CELLPADDING="2" CELLSPACING="0">
 - <FORM METHOD="POST" ACTION="$CGI"><INPUT TYPE="HIDDEN" NAME="pass" VALUE="$Form{pass}">
 - <TR><TD CLASS="texte_w"><INPUT TYPE="RADIO" NAME="ACT" VALUE="admin_config" checked></td><TD CLASS="texte_w">Configuration du script</TD><TD CLASS="texte_w"><A HREF="javascript:alert('Modifiez la configuration principale du script  \\n')">$IMG_POINT</A></TD></TR>
 - <TR><TD CLASS="texte_w"><INPUT TYPE="RADIO" NAME="ACT" VALUE="admin_new_form"></td><TD CLASS="texte_w">Nouveau formulaire</TD><TD CLASS="texte_w"><A HREF="javascript:alert('Créez un nouveau formulaire  \\n')">$IMG_POINT</A></TD></TR>$sel
 - <TR><TD CLASS="texte_w"> </td><TD CLASS="texte"><INPUT TYPE="submit" $STYLE VALUE=" VALIDER "></TD><TD CLASS="texte_w"> </td></TR>
 - </FORM></TABLE>|);
 - }
 - sub admin_aide_form
 - {
 - &pass_verif;
 - &style;
 - $Fa = $Form{'Fa'};
 - if ($Form{'i'}) { $i = $Form{'i'}; } else { $i = 0; }
 - open (CONF_FORM,"<$PFORM_DATAS_DIR/F_$Fa.dat" );
 - while ($line=<CONF_FORM> )
 -       {
 -       chomp($line);
 -       if ( ($line !~ /^$/) && ($line !~ /^\s+$/) && ($line !~ /^#/) && ($line =~ /^(.*)=================(.*)$/) ) { $C_FORM{"$1"}="$2"; }
 -       }
 - close (CONF_FORM);
 - if ($i >0)
 -    {
 -     foreach $i(1..$i)
 -             {
 -             if (!$Form{"nom_$i"}) {
 -               &affiche_admin('<B>ADMINISTRATION</B>',qq|<b>Erreur</b> :<br>Veuillez remplir tous les champs obligatoires.<br><br>
 -               <A HREF="javascript:history.back()">Retour au formulaire</a><BR>\n|);
 -               }
 -             $hid .= qq~<INPUT TYPE="hidden" NAME="etiquette_$i" VALUE="$Form{"etiquette_$i"}">
 -             <INPUT TYPE="hidden" NAME="nom_$i" VALUE="$Form{"nom_$i"}">
 -             <INPUT TYPE="hidden" NAME="type_$i" VALUE="$Form{"type_$i"}">
 -             <INPUT TYPE="hidden" NAME="value_$i" VALUE="$Form{"value_$i"}">~;
 -             if ($Form{"type_$i"} eq 'text' || $Form{"type_$i"} eq 'password')
 -                {
 -                if ($Form{"etiquette_$i"}) { $plus_form .= qq~$Form{"etiquette_$i"}<BR>\n~; }
 -                $plus_form .= qq~<INPUT TYPE="$Form{"type_$i"}" NAME="$Form{"nom_$i"}"~;
 -                if ($C_FORM{CONFIRM_STYLE}) { $plus_form .= qq~ STYLE="$C_FORM{CONFIRM_STYLE}"~; }
 -                if ($Form{"value_$i"}) { $plus_form .= qq~ VALUE="$Form{"value_$i"}"~; }
 -                $plus_form .= qq~><BR>\n~;
 -                }
 -             if ($Form{"type_$i"} eq 'select')
 -                {
 -                if (!$Form{"value_$i"}) { &affiche_admin('<B>ADMINISTRATION</B>',qq|<b>Erreur</b> :<br>Veuillez remplir tous les champs obligatoires.<br><br>
 -               <A HREF="javascript:history.back()">Retour au formulaire</a><BR>\n|); }
 -                if ($Form{"etiquette_$i"}) { $plus_form .= qq~$Form{"etiquette_$i"}<BR>\n~; } 
 -                $plus_form .= qq~<SELECT NAME="$Form{"nom_$i"}"~;
 -                if ($C_FORM{CONFIRM_STYLE}) { $plus_form .= qq~ STYLE="$C_FORM{CONFIRM_STYLE}"~; }
 -                $plus_form .= qq~>\n~;
 -                $n_tab = 'val'.$i; @$n_tab = split(/,/, $Form{"value_$i"});
 -                foreach(@$n_tab) { $plus_form .= q~<OPTION>$_</OPTION>\n~; }
 -                $plus_form = '<BR>\n';
 -                }
 -             if ($Form{"type_$i"} eq 'textarea')
 -                {
 -                if ($Form{"etiquette_$i"}) { $plus_form .= qq~$Form{"etiquette_$i"}<BR>\n~; }
 -                $plus_form .= qq~<TEXTAREA NAME="$Form{"nom_$i"}"~;
 -                if ($C_FORM{CONFIRM_STYLE}) { $plus_form .= qq~ STYLE="$C_FORM{CONFIRM_STYLE}"~; }
 -                $plus_form .= qq~>\n~;
 -                if ($Form{"value_$i"}) { $plus_form .= qq~$Form{"value_$i"}~; }
 -                $plus_form .= qq~\n</TEXTAREA><BR>\n~;
 -                }
 -             if ($Form{"type_$i"} =~ /^radio$|^checkbox$/)
 -                {
 -               if (!$Form{"value_$i"}) { &affiche_admin('<B>ADMINISTRATION</B>',qq|<b>Erreur</b> :<br>Veuillez remplir tous les champs obligatoires.<br><br>
 -               <A HREF="javascript:history.back()">Retour au formulaire</a><BR>\n|); }
 -                $plus_form .= qq~<INPUT TYPE="$Form{"type_$i"}" NAME="$Form{"nom_$i"}" VALUE="$Form{"value_$i"}">~;
 -                if ($Form{"etiquette_$i"}) { $plus_form .= qq~ $Form{"etiquette_$i"}~; }
 -                $plus_form .= "<BR>\n";
 -                }
 -              if ($Form{"type_$i"} eq 'hidden')
 -                {
 -                if (!$Form{"value_$i"}) { &affiche_admin('<B>ADMINISTRATION</B>',qq|<b>Erreur</b> :<br>Veuillez remplir tous les champs obligatoires.<br><br>
 -                <A HREF="javascript:history.back()">Retour au formulaire</a><BR>\n|); }
 -                $plus_form .= qq~<INPUT TYPE="hidden" NAME="$Form{"nom_$i"}" VALUE="$Form{"value_$i"}">\n~;
 -                } 
 -             if ($Form{"type_$i"} eq 'file')
 -                {
 -                if ($Form{"nom_$i"} !~ /fichier/) { &affiche_admin('<B>ADMINISTRATION</B>',qq|<b>Erreur</b> :<br>Un champs fichier doit avoir le mot 'fichier' dans son nom.<br><br>
 -                <A HREF="javascript:history.back()">Retour au formulaire</a><BR>\n|); }
 -                if ($Form{"etiquette_$i"}) { $plus_form .= qq~$Form{"etiquette_$i"}<BR>\n~; }
 -                $plus_form .= qq~<INPUT TYPE="file" NAME="$Form{"nom_$i"}"~;
 -                if ($C_FORM{CONFIRM_STYLE}) { $plus_form .= qq~ STYLE="$C_FORM{CONFIRM_STYLE}"~; }
 -                $plus_form .= "><BR>\n";
 -                }
 -              if ($Form{"type_$i"} eq 'submit')
 -                {
 -                if (!$Form{"value_$i"}) { &affiche_admin('<B>ADMINISTRATION</B>',qq|<b>Erreur</b> :<br>Veuillez remplir tous les champs obligatoires.<br><br>
 -                <A HREF="javascript:history.back()">Retour au formulaire</a><BR>\n|); }
 -                if ($Form{"nom_$i"} !~ /submit/i) { &affiche_admin('<B>ADMINISTRATION</B>',qq|<b>Erreur</b> :<br>Un champ image ou bouton de soummision doit avoir obligatoirement dans son nom le mot : submit !.<br><br>\n<A HREF="javascript:history.back()">Retour au formulaire</a><BR>\n|); }
 -                $plus_form .= qq~<INPUT TYPE="submit" NAME="submit" VALUE="$Form{"value_$i"}"~;
 -                if ($C_FORM{CONFIRM_STYLE}) { $plus_form .= qq~ STYLE="$C_FORM{CONFIRM_STYLE}"~; }
 -                $plus_form .= "><BR>\n";
 -                }
 -              if ($Form{"type_$i"} eq 'reset')
 -                {
 -                if (!$Form{"value_$i"}) { &affiche_admin('<B>ADMINISTRATION</B>',qq|<b>Erreur</b> :<br>Veuillez remplir tous les champs obligatoires.<br><br>
 -                <A HREF="javascript:history.back()">Retour au formulaire</a><BR>\n|); }
 -                $plus_form .= qq~<INPUT TYPE="reset" NAME="$Form{"nom_$i"}" VALUE="$Form{"value_$i"}"~;
 -                if ($C_FORM{CONFIRM_STYLE}) { $plus_form .= qq~ STYLE="$C_FORM{CONFIRM_STYLE}"~; }
 -                $plus_form .= "><BR>\n";
 -                }
 -              if ($Form{"type_$i"} eq 'image')
 -                {
 -                if (!$Form{"value_$i"}) { &affiche_admin('<B>ADMINISTRATION</B>',qq|<b>Erreur</b> :<br>Veuillez remplir tous les champs obligatoires.<br><br>\n<A HREF="javascript:history.back()">Retour au formulaire</a><BR>\n|); }
 -                if ($Form{"nom_$i"} !~ /submit/i) { &affiche_admin('<B>ADMINISTRATION</B>',qq|<b>Erreur</b> :<br>Un champ image ou bouton de soummision doit avoir obligatoirement dans son nom le mot : submit !.<br><br>\n<A HREF="javascript:history.back()">Retour au formulaire</a><BR>\n|); }
 -                $plus_form .= qq~<INPUT TYPE="image" NAME="submit" SRC="$Form{"value_$i"}" BORDER="0"><BR>\n~;
 -                }
 -             }
 -    }
 - $i++;
 - $aff = qq|<b>Aide à la création d'un formulaire html pour '$C_FORM{NAME}'.</b><BR>
 - <TABLE BORDER="0" ALIGN="CENTER" CELLPADDING="2" CELLSPACING="0">
 - <FORM METHOD="POST" ACTION="$CGI"><INPUT TYPE="HIDDEN" NAME="pass" VALUE="$Form{pass}">
 - <INPUT TYPE="HIDDEN" NAME="ACT" VALUE="admin_aide_form"><INPUT TYPE="HIDDEN" NAME="Fa" VALUE="$Fa">
 - <INPUT TYPE="HIDDEN" NAME="i" VALUE="$i">
 - $hid
 - <TR><TD CLASS="texte_w">Etiquette :</td><TD CLASS="texte_w"><INPUT TYPE="text" NAME="etiquette_$i" $STYLE size="20"></TD><TD CLASS="texte_w"><A HREF="javascript:alert('Etiquette :\\nTitre du champ.\\n\\nFACULTATIF\\n')">$IMG_POINT</A></TD></TR>
 - <TR><TD CLASS="texte_w">Nom du champ :</td><TD CLASS="texte_w"><INPUT TYPE="text" NAME="nom_$i" $STYLE size="20"></TD><TD CLASS="texte_w"><A HREF="javascript:alert('Le nom que portera le champ, utilisé par le script\\n\\nOBLIGATOIRE\\n')">$IMG_POINT</A></TD></TR>
 - <TR><TD CLASS="texte_w">Type du champ :</td><TD CLASS="texte_w"><SELECT NAME="type_$i" $STYLE><OPTION VALUE="text">Champ de texte</OPTION><OPTION VALUE="password">Champ password</OPTION>
 - <OPTION VALUE="textarea">Zone de texte</OPTION><OPTION VALUE="checkbox">Case à cocher</OPTION>
 - <OPTION VALUE="radio">Bouton radio</OPTION><OPTION VALUE="SELECT">Liste / Menu</OPTION><OPTION VALUE="file">Champ de fichier</OPTION>
 - <OPTION VALUE="hidden">Champ masqué</OPTION><OPTION VALUE="submit">Bouton de soumission</OPTION><OPTION VALUE="reset">Bouton reset</OPTION>
 - <OPTION VALUE="image">Bouton image</OPTION>
 - </SELECT></TD><TD CLASS="texte_w"><A HREF="javascript:alert('Type de champ...')">$IMG_POINT</A></TD></TR>
 - <TR><TD CLASS="texte_w">Valeur par default :</td><TD CLASS="texte_w"><INPUT TYPE="text" NAME="value_$i" $STYLE size="20"></TD><TD CLASS="texte_w"><A HREF="javascript:alert('Valeur par défault du champ\\n\\nOBLIGATOIRE pour les champs :\\n- bouton radio\\n- case à cocher\\n- champ caché\\n\\nDans le cas d\\'un champ de type Liste/Menu :\\nséparez les valeurs par une virgule !\\n\\nDans le cas d\\'un champ image, mettre l\\'adresse url ce celle-ci\\n')">$IMG_POINT</A></TD></TR>
 - <TR><TD CLASS="texte_w"> </td><TD CLASS="texte"><INPUT TYPE="submit" $STYLE VALUE=" AJOUTER UN CHAMP "></TD><TD CLASS="texte_w"> </td></TR>
 - </FORM></TABLE><BR><BR>
 - Code html du formulaire à copier / coller dans le code source de votre page html :<BR>
 - <TEXTAREA $STYLE cols="90" ROWS="10" readonly>
 - <FORM METHOD="post" ACTION="$CGI" ENCTYPE="multipart/form-data">
 - <INPUT TYPE="HIDDEN" NAME="F" VALUE="$Fa">
 - $plus_form
 - </FORM>
 - </TEXTAREA><br><br>
 - Attention, pour le bon fonctionnement du formulaire, les champs suivant doivent obligatoirement être présents :<BR>
 - TO,submit,$C_FORM{'REQUIS'}
 - |;
 - $aff .= &bout_retour;
 - &affiche_admin('<B>ADMINISTRATION</B>',$aff);
 - }
 - sub admin_sup_form
 - {
 - &pass_verif;
 - &style;
 - $aff = &bout_retour;
 - open (FIC, "<$PFORM_DATAS_DIR/F_$Form{Fs}.dat" );
 - while ($line=<FIC> )
 -                  {
 -                  chomp($line);
 -                  if ( ($line !~ /^$/) && ($line !~ /^\s+$/) && ($line !~ /^#/) && ($line =~ /^(.*)=================(.*)$/) )
 -                     {
 -                     if ($1 eq 'NAME') { $name = $2; }
 -                     }
 -                  }
 - close(FIC);
 - &affiche_admin('<B>ADMINISTRATION</B>',qq|<FORM METHOD="POST" ACTION="$CGI"><INPUT TYPE="HIDDEN" NAME="pass" VALUE="$Form{pass}">
 - <INPUT TYPE="HIDDEN" NAME="Fs" VALUE="$Form{Fs}"><INPUT TYPE="HIDDEN" NAME="ACT" VALUE="admin_sup_form_confirm">
 - <INPUT $STYLE TYPE="submit" VALUE="Confirmer la suppression du formulaire $name ?">
 - </FORM>$aff|);
 - }
 - sub admin_sup_form_confirm
 - {
 - &pass_verif;
 - &style;
 - $aff = &bout_retour;
 - $Fs = $Form{'Fs'};
 - unlink("$PFORM_DATAS_DIR/F_$Fs.dat" );
 - unlink("$PFORM_DATAS_DIR/F_temp_b_$Fs.dat" );
 - unlink("$PFORM_DATAS_DIR/F_temp_h_$Fs.dat" );
 - &affiche_admin('<B>ADMINISTRATION</B>',qq|Le formulaire a été supprimé !<br>$aff|);
 - }
 - sub admin_new_form
 - {
 - &pass_verif;
 - &style;
 - $aff = &configuration_form(1);
 - $aff .= &bout_retour;
 - &affiche_admin("<B>ADMINISTRATION</B>",qq|<B>Créer un nouveau formulaire :</B><br>$aff|);
 - }
 - sub admin_modif_form
 - {
 - &pass_verif;
 - &style;
 - $Fm = $Form{'Fm'};
 - $aff = &configuration_form(2);
 - $aff .= &bout_retour;
 - &affiche_admin("<B>ADMINISTRATION</B>",qq|<B>Modifier le formulaire :</B><br>$aff|);
 - }
 - sub configuration_form
 - {
 - $sel_c1 = ''; $sel_c2 = ''; $sel_i1 = ''; $sel_i2 = ''; $sel_r1 = ''; $sel_r2 = '';
 - $sel_o1 = ''; $sel_o2 = ''; $sel_o3 = ''; $hid = '';
 - if ($_[0] == 1)
 -    {
 -    $Val_submit = 'CREER';
 -    $Val_T_H = qq|<HTML>\n<HEAD>\n<STYLE type="text/css">\n.lien { FONT-SIZE: 9pt; COLOR: #3E4044; FONT-FAMILY: Arial; }\n.texte { FONT-SIZE: 10pt; COLOR: #000000; FONT-FAMILY: Arial; }\n</STYLE>\n<TITLE>\nCONTACT\n</TITLE></HEAD>\n<BODY>\n|;
 -    $Val_T_B = "</BODY>\n</HTML>\n";
 -    $C_FORM{'DOMAINES'} = $DOMAIN;
 -    $C_FORM{'CONFIRM_MESS'} = qq~<b>Confirmation !</b><BR>\nPour valider le formulaire, merci de confirmer les informations suivantes :~;
 -    $C_FORM{'CONFIRM_STYLE'} = 'FONT-FAMILY: Arial, Helvetica, sans-serif; COLOR: #000000; FONT-SIZE: 8pt; BACKGROUND-COLOR: #EAB522';
 -    $C_FORM{'REDIRECT_URL'} = 'http://';
 -    $C_FORM{'REDIRECT_MESS'} = "<b>Merci !</b><BR>
 - <i>Votre message a bien été envoyé.</i><br>Nous vous répondrons dans les plus brefs
 - délais.<BR>Voici les informations que vous nous avez soumises :";
 -    }
 - if ($_[0] == 2)
 -    {
 -    $Val_submit = 'MODIFIER'; 
 -    open(FIC_T_H, "<$PFORM_DATAS_DIR/F_temp_h_$Fm.dat" ); while (<FIC_T_H> ) { $Val_T_H .= $_; } close(FIC_T_H);
 -    open(FIC_T_B, "<$PFORM_DATAS_DIR/F_temp_b_$Fm.dat" ); while (<FIC_T_B> ) { $Val_T_B .= $_; } close(FIC_T_B);
 -    open (CONF_FORM,"<$PFORM_DATAS_DIR/F_$Fm.dat" );
 -    while ($line=<CONF_FORM> )
 -          {
 -          chomp($line);
 -          if ( ($line !~ /^$/) && ($line !~ /^\s+$/) && ($line !~ /^#/) && ($line =~ /^(.*)=================(.*)$/) ) { $C_FORM{"$1"}="$2"; }
 -          }
 -    close (CONF_FORM);
 -    $C_FORM{'DOMAINES'} =~ s/,/\n/g;
 -    $C_FORM{'DESTINATAIRES'} =~ s/\|/\n/g;
 -    if ($C_FORM{'CONFIRM'} == 1) { $sel_c1 = ' selected'; } else { $sel_c2 = ' selected'; }
 -    if ($C_FORM{'INFOS'} == 1) { $sel_i1 = ' selected'; } else { $sel_i2 = ' selected'; }
 -    if ($C_FORM{'REDIRECT'} == 1) { $sel_r1 = ' selected'; } else { $sel_r2 = ' selected'; }
 -    if ($C_FORM{'ORDRE_TYPE'} == 1) { $sel_o2 = ' selected'; }
 -    elsif ($C_FORM{'ORDRE_TYPE'} == 2) { $sel_o3 = ' selected'; }
 -    else { $sel_o1 = ' selected'; }
 -    $hid = qq~<INPUT TYPE="HIDDEN" NAME="Fm" VALUE="$Fm">~;
 -    }
 - return<<FORM;
 - <br><TABLE WIDTH="100%" BORDER="0" ALIGN="CENTER" CELLPADDING="2" CELLSPACING="0">
 - <FORM METHOD="POST" ACTION="$CGI"><INPUT TYPE="HIDDEN" NAME="pass" VALUE="$Form{pass}"><INPUT TYPE="HIDDEN" NAME="ACT" VALUE="creer_new_form">
 - $hid
 - <TR><TD CLASS="texte" valign="top">Configuration :</td><TD CLASS="texte_w" valign="top"> </TD><TD CLASS="texte_w" valign="top"> </TD></TR>
 - <TR><TD CLASS="texte_w" valign="top">Nom du formulaire :</td><TD CLASS="texte_w" valign="top"><INPUT TYPE="text" size="25" maxlength="25" name="NAME" $STYLE VALUE="$C_FORM{NAME}"></TD><TD CLASS="texte_w" valign="top"><A HREF="javascript:alert('Nom du formulaire :\\nIl permettra de vous y retrouver parmi les différents formulaires\\n')">$IMG_POINT</A></TD></TR>
 - <TR><TD CLASS="texte_w" valign="top">Noms de domaine autorisés à utiliser ce formulaire :</td><TD CLASS="texte_w" valign="top"><TEXTAREA $STYLE NAME="DOMAINES" COLS="35" ROWS="4">$C_FORM{DOMAINES}\n</TEXTAREA></TD><TD CLASS="texte_w" valign="top"><A HREF="javascript:alert('Les noms de domaine qui pourront appeler\\nle script pour ce formulaire de leur site\\n\\nAttention : 1 par ligne !\\n')">$IMG_POINT</A></TD></TR>
 - <TR><TD CLASS="texte_w" valign="top">Pseudos et emails des destinataires de ce formulaire :</td><TD CLASS="texte_w" valign="top"><TEXTAREA $STYLE NAME="DESTINATAIRES" COLS="35" ROWS="4">$C_FORM{DESTINATAIRES}</TEXTAREA></TD><TD CLASS="texte_w" valign="top"><A HREF="javascript:alert('Mettre un pseudo et un email par ligne, séparé par une virgule\\n\\nexemple :\\nToto,toto\@toto.com\\nTiti,titi\@titi.org\\n\\nCeci permet de ne pas avoir d\\'email visible dans le code source de vos pages\\n\\nSi vous mettez plusieurs destinataires vous pourrez soit :\\n- faire choisir au visiteur à qui écrire\\n- soit mettre les pseudos dans un champ caché séparé par une virgule\\npour que le résultat du formulaire soit envoyé à tous en même temps\\n')">$IMG_POINT</A></TD></TR>
 - <TR><TD CLASS="texte" valign="top">Option 1 : confirmation :</td><TD CLASS="texte_w" valign="top"> </TD><TD CLASS="texte_w" valign="top"> </TD></TR>
 - <TR><TD CLASS="texte_w" valign="top">Demander une confirmation avant validation du formulaire ?</td><TD CLASS="texte_w" valign="top"><SELECT $STYLE NAME="CONFIRM"><OPTION VALUE="1"$sel_c1>OUI</OPTION><OPTION VALUE="0"$sel_c2>NON</OPTION></SELECT></TD><TD CLASS="texte_w" valign="top"><A HREF="javascript:alert('Avant de valider le formulaire, l\\'utilisateur\\ndevra relire ce qu\\'il a écrit avant de valider\\n\\nATTENTION : Dans le cas de champs de type \\'fichier\\', l\\'utilisateur sera invité, dans ce cas, à rechercher à nouveau les fichiers à envoyer !\\n')">$IMG_POINT</A></TD></TR>
 - <TR><TD CLASS="texte_w" valign="top">Si oui, message sur la page de confirmation :</td><TD CLASS="texte_w" valign="top"><TEXTAREA $STYLE NAME="CONFIRM_MESS" COLS="35" ROWS="4">$C_FORM{CONFIRM_MESS}</TEXTAREA></TD><TD CLASS="texte_w" valign="top"><A HREF="javascript:alert('Message que l\\'utilisateur verra sur la page de confirmation\\nau dessus des informations à valider\\n\\nVous pouvez utiliser du code html !\\n')">$IMG_POINT</A></TD></TR>
 - <TR><TD CLASS="texte_w" valign="top">Si oui, style du bouton de soumission :</td><TD CLASS="texte_w" valign="top"><INPUT TYPE="text" $STYLE NAME="CONFIRM_STYLE" SIZE="30" MAXLENGTH="255" VALUE="$C_FORM{CONFIRM_STYLE}"></TD><TD CLASS="texte_w" valign="top"><A HREF="javascript:alert('Bouton de soumission :\\npolice de caractère,couleur,taille de la police, couleur de fond .ect... ')">$IMG_POINT</A></TD></TR>
 - <TR><TD CLASS="texte" valign="top">Option 2 : informations sur l'utilisateur :</td><TD CLASS="texte_w" valign="top"> </TD><TD CLASS="texte_w" valign="top"> </TD></TR>
 - <TR><TD CLASS="texte_w" valign="top">Recevoir des informations complémentaires sur l'utilisateur ?</td><TD CLASS="texte_w" valign="top"><SELECT $STYLE NAME="INFOS"><OPTION VALUE="1"$sel_i1>OUI</OPTION><OPTION VALUE="0"$sel_i2>NON</OPTION></SELECT></TD><TD CLASS="texte_w" valign="top"><A HREF="javascript:alert('Informations complémentaires sur l\\'utilisateur\\ndans l\\'email recu :\\n\\n- adresse IP\\n- nom d\\'hote\\n- systeme d\\'exploitation\\n- langue\\n- page référente\\n')">$IMG_POINT</A></TD></TR>
 - <TR><TD CLASS="texte" valign="top">Option 3 : après validation du formulaire :</td><TD CLASS="texte_w" valign="top"> </TD><TD CLASS="texte_w" valign="top"> </TD></TR>
 - <TR><TD CLASS="texte_w" valign="top">Utiliser une page de redirection après envoi ?</td><TD CLASS="texte_w" valign="top"><SELECT $STYLE NAME="REDIRECT"><OPTION VALUE="1"$sel_r1>OUI</OPTION><OPTION VALUE="0"$sel_r2>NON</OPTION></SELECT></TD><TD CLASS="texte_w" valign="top"><A HREF="javascript:alert('Si oui :\\n après envoi, l\\'utilisateur sera redirigé vers une page de votre choix.\\n\\nSi non :\\nl\\'utilisateur verra alors un message que vous déterminez\\n')">$IMG_POINT</A></TD></TR>
 - <TR><TD CLASS="texte_w" valign="top">Si oui, url de redirection :</td><TD CLASS="texte_w" valign="top"><INPUT TYPE="text" size="30" maxlength="255" name="REDIRECT_URL" $STYLE VALUE="$C_FORM{REDIRECT_URL}"></TD><TD CLASS="texte_w" valign="top"><A HREF="javascript:alert('Url de redirection après validation du formulaire si vous utilisez cette option.\\n\\nL\\'url doit commencer par : http://\n')">$IMG_POINT< [...] lt;/TR>
 - <TR><TD CLASS="texte_w" valign="top">Si non, message de remerciement après envoi :</td><TD CLASS="texte_w" valign="top"><TEXTAREA $STYLE NAME="REDIRECT_MESS" COLS="35" ROWS="4">$C_FORM{REDIRECT_MESS}</TEXTAREA></TD><TD CLASS="texte_w" valign="top"><A HREF="javascript:alert('Message que l\\'utilisateur verra après envoi du formulaire\\n\\nVous pouvez utiliser du code html !\\n')">$IMG_POINT</A></TD></TR>
 - <TR><TD CLASS="texte" valign="top">Champs obligatoires :</td><TD CLASS="texte_w" valign="top"> </TD><TD CLASS="texte_w" valign="top"> </TD></TR>
 - <TR><TD CLASS="texte_w" valign="top">Champs obligatoires :</td><TD CLASS="texte_w" valign="top"><INPUT TYPE="text" size="30" maxlength="255" name="REQUIS" $STYLE name="REQUIS" VALUE="$C_FORM{REQUIS}"></TD><TD CLASS="texte_w" valign="top"><A HREF="javascript:alert('Ces champs devront obligatoirement être remplis par le visiteur.\\n\\nSéparez chaque nom de champ par une virgule, exemple :\\n\\nemail,nom,message\\n')">$IMG_POINT</A></TD></TR>
 - <TR><TD CLASS="texte" valign="top">Ordre des champs :</td><TD CLASS="texte_w" valign="top"> </TD><TD CLASS="texte_w" valign="top"> </TD></TR>
 - <TR><TD CLASS="texte_w" valign="top">Choix de l'ordre des champs :</td><TD CLASS="texte_w" valign="top"><SELECT name="ORDRE_TYPE" $STYLE><OPTION VALUE="0"$sel_o1>DESORDRE</OPTION><OPTION VALUE="1"$sel_o2>ORDRE ALPHABETIQUE</OPTION><OPTION VALUE="2"$sel_o3>ORDRE AU CHOIX</OPTION></SELECT></TD><TD CLASS="texte_w" valign="top"><A HREF="javascript:alert('Ordre dans lequel les champs seront recus :\\n\\n- désordre : pas d\\'ordre préci.\\n- alphabétique : les champs seront envoyés dans l\\'ordre alphabétique en fonction leur noms.\\n- Au choix : vous définissez l\\'ordre d\\'envoi.\\n')">$IMG_POINT</A></TD></TR>
 - <TR><TD CLASS="texte_w" valign="top">Si ordre 'AU CHOIX', nom des champs :</td><TD CLASS="texte_w" valign="top"><INPUT TYPE="text" size="30" maxlength="255" name="ORDRE" $STYLE VALUE="$C_FORM{ORDRE}"></TD><TD CLASS="texte_w" valign="top"><A HREF="javascript:alert('Les champs seront envoyés dans l\\'ordre que vous spécifiez.\\n\\nSéparez chaque nom de champ par une virgule, exemple :\\n\\nsujet,nom,email,message\\n')">$IMG_POINT</A></TD></TR>
 - <TR><TD CLASS="texte" valign="top">Fichiers joints :</td><TD CLASS="texte_w" valign="top"> </TD><TD CLASS="texte_w" valign="top"> </TD></TR>
 - <TR><TD CLASS="texte_w" valign="top">Pièces jointes autorisées :</td><TD CLASS="texte_w" valign="top"><INPUT TYPE="text" size="30" maxlength="255" name="EXTENSIONS" $STYLE VALUE="$C_FORM{EXTENSIONS}"></TD><TD CLASS="texte_w" valign="top"><A HREF="javascript:alert('Uniquement si votre formulaire donne la possibilité d\\'envoyer un ou plusieurs fichiers joints.\\n\\nDans ce cas :\\n\\n- Laissez vide si vous ne souhaitez pas limiter les extensions de fichier.\\n\\n- Entrez les extensions de fichier autorisées, séparées par une virgule et sans point\\nsi vous souhaitez n\\'autoriser que certains types de fichiers.\\nEx : jpg,jpeg,gif,bmp,png,mp3,txt\\n')">$IMG_POINT</A></TD></TR>
 - <TR><TD CLASS="texte" valign="top">Affichage :</td><TD CLASS="texte_w" valign="top"> </TD><TD CLASS="texte_w" valign="top"><A HREF="javascript:alert('- Créez une page html\\n- Coupez son code html en 2 parties\\n- Entre ces 2 parties s\\'afficheront les messages générés par le script \\n')">$IMG_POINT</A></TD></TR>
 - <TR><TD CLASS="texte_w" valign="top" colspan="3">Code html de haut de page :<BR>
 - <TEXTAREA $STYLE NAME="HTML_TEMP_HAUT" COLS="90" ROWS="12">
 - $Val_T_H
 - </TEXTAREA><BR>
 - <BR><font color="#666666"><i>-= ici s'afficheront les messages =-</i></FONT><BR><BR>
 - Code html de bas de page :<BR>
 - <TEXTAREA $STYLE NAME="HTML_TEMP_BAS" COLS="90" ROWS="12">
 - $Val_T_B
 - </TEXTAREA><BR>
 - </td></TR>
 - <TR><TD CLASS="texte_w"> </td><TD CLASS="texte"><INPUT TYPE="submit" $STYLE VALUE="-= $Val_submit LE FORMULAIRE =-"></TD><TD CLASS="texte_w"> </td></TR>
 - </FORM></TABLE>
 - FORM
 - }
 - sub creer_new_form
 - {
 - &pass_verif;
 - &style;
 - $err = 0; $Fm = $Form{'Fm'};
 - if (!$Form{'NAME'} || $Form{'NAME'} =~ /^\s+$/) { $err++; $aff_err = "- NOM DU FORMULAIRE<br>\n"; }
 - if (!$Form{'DOMAINES'} || $Form{'DOMAINES'} =~ /^\s+$/) { $err++; $aff_err .= "- Noms de domaines autorisés<br>\n"; }
 - if (!$Form{'DESTINATAIRES'} || $Form{'DESTINATAIRES'} =~ /^\s+$/) { $err++; $aff_err .= "- Pseudos, Emails<br>\n"; }
 - if ($Form{'CONFIRM'} && ($Form{'CONFIRM_MESS'} =~ /^\s+$/ || !$Form{'CONFIRM_MESS'})) { $err++; $aff_err .= "- Message de confirmation<br>\n"; }
 - if ($Form{'REDIRECT'} && $Form{'REDIRECT_URL'} !~ /http:\/\/\S+?\.\S+/) { $err++; $aff_err .= "- Url de redirection<br>\n"; }
 - if (!$Form{'REDIRECT'} && ($Form{'REDIRECT_MESS'} =~ /^\s+$/ || !$Form{'REDIRECT_MESS'})) { $err++; $aff_err .= "- Message après envoi<br>\n"; }
 - if (!$Form{'HTML_TEMP_HAUT'} || $Form{'HTML_TEMP_HAUT'} =~ /^\s+$/) { $err++; $aff_err = "- code html du haut de page<br>\n"; }
 - if (!$Form{'HTML_TEMP_BAS'} || $Form{'HTML_TEMP_BAS'} =~ /^\s+$/) { $err++; $aff_err = "- code html du bas de page<br>\n"; }
 - if ($Form{'ORDRE_TYPE'} == 2 && ($Form{'ORDRE'} =~ /^\s+$/ || !$Form{'ORDRE'})) { $err++; $aff_err .= "- ordre des champs<br>\n"; }
 - @DESTINATAIRES = split(/\r\n/, $Form{'DESTINATAIRES'});
 - $Form{'DESTINATAIRES'} = join('|',@DESTINATAIRES);
 - @DEST = split(/\|/,$Form{'DESTINATAIRES'});
 - foreach (@DEST) { ($pseud,$mail) = split(/,/, $_); if (!&verifie_email($mail)) { $err++; $aff_err .= "- emails : mauvais format<br>\n"; last; } push(@EMAILS, "$pseud" ); }
 - if ($err != 0) { &affiche_admin('ERREUR !',&bad_form); }
 - $DEST = join(',', @EMAILS);
 - @DOMAINES = split(/\r\n/, $Form{'DOMAINES'});
 - $Form{'DOMAINES'} = join(',',@DOMAINES);
 - if (!$Fm) { $num = &date(1); } else { $num = $Fm; }
 - open(N_FORM, ">$PFORM_DATAS_DIR/F_$num.dat" );
 - print N_FORM<<CONF_FORM;
 - NAME=================$Form{'NAME'}
 - DOMAINES=================$Form{'DOMAINES'}
 - DESTINATAIRES=================$Form{'DESTINATAIRES'}
 - CONFIRM=================$Form{'CONFIRM'}
 - CONF_FORM
 - if ($Form{'CONFIRM'} == 1)
 -    {
 -    $Form{'CONFIRM_MESS'} =~ s/\r\n//g;
 -    print N_FORM qq|CONFIRM_MESS=================$Form{'CONFIRM_MESS'}\nCONFIRM_STYLE=================$Form{'CONFIRM_STYLE'}\n|;
 -    }
 - print N_FORM qq|INFOS=================$Form{'INFOS'}\nREDIRECT=================$Form{'REDIRECT'}\n|;
 - if ($Form{'REDIRECT'} == 1) { print N_FORM qq|REDIRECT_URL=================$Form{'REDIRECT_URL'}\n|; }
 - if ($Form{'REDIRECT'} == 0) { $Form{'REDIRECT_MESS'} =~ s/\r\n//g; print N_FORM qq|REDIRECT_MESS=================$Form{'REDIRECT_MESS'}\n|; }
 - print N_FORM qq|REQUIS=================$Form{'REQUIS'}\nORDRE_TYPE=================$Form{'ORDRE_TYPE'}\n|;
 - if ($Form{'ORDRE_TYPE'} == 2) { print N_FORM qq|ORDRE=================$Form{'ORDRE'}\n|; }
 - if ($Form{'EXTENSIONS'}) { print N_FORM qq|EXTENSIONS=================$Form{'EXTENSIONS'}\n|; }
 - close(N_FORM);
 - eval { chmod(0777,"$PFORM_DATAS_DIR/F_$num.dat" ); };
 - open(N_FORM_th, ">$PFORM_DATAS_DIR/F_temp_h_$num.dat" );
 - print N_FORM_th $Form{'HTML_TEMP_HAUT'};
 - close(N_FORM_th);
 - eval { chmod(0777,"$PFORM_DATAS_DIR/F_temp_h_$num.dat" ); };
 - open(N_FORM_tb, ">$PFORM_DATAS_DIR/F_temp_b_$num.dat" );
 - print N_FORM_tb $Form{'HTML_TEMP_BAS'};
 - close(N_FORM_tb);
 - eval { chmod(0777,"$PFORM_DATAS_DIR/F_temp_b_$num.dat" ); };
 - $aff = &bout_retour;
 - $pas_oubli = '';
 - if ($Form{'REQUIS'}) { $pas_oubli = qq~<BR>N'oubliez pas que les champs suivant doivent être présent dans votre formulaire :<br><b>$Form{'REQUIS'}</b><BR>~; }
 - &affiche_admin("<B>ADMINISTRATION</B>",qq|Le formulaire "<i>$Form{'NAME'}</i>" a été créé ou modifié !<br><br>Il porte le numéro <b>$num</b>.<br><br>
 - Voici le code html d'entête de votre formulaire :<br>
 - <TEXTAREA $STYLE COLS="90" ROWS="10">
 - <FORM METHOD="post" ACTION="$CGI" ENCTYPE="multipart/form-data">
 - <INPUT TYPE="HIDDEN" NAME="F" VALUE="$num">
 - <INPUT TYPE="HIDDEN" NAME="TO" VALUE="$DEST">
 - ICI LE RESTE DU CODE DE VOTRE FORMULAIRE
 - </FORM>
 - </TEXTAREA>
 - <BR>$pas_oubli
 - $aff|);
 - }
 - sub pass_verif { if ($Form{'pass'} ne $CONF{'PASSWORD'}) { $badpass = q| : <B><font color="#FF0000">password incorrect !</font></B>|;  &admin_enter; } }
 - sub form_config
 - {
 - &style;
 - if ($CONF{'INSTALL'} != 1) { $Val_act = 'INSTALL'; $hid = ''; } else { $Val_act = 'modif_conf'; $hid = qq~<INPUT TYPE="HIDDEN" NAME="pass" VALUE="$Form{pass}">~; }
 - @sendm = ('sendmail','/usr/lib/sendmail','/usr/bin/sendmail','/bin/sendmail','/usr/sbin/sendmail','/usr/local/bin/sendmail','/usr/local/lib/sendmail');
 - foreach $s_mail(@sendm) { if (($s_mail ne '') && (-e "$s_mail" ) && (-x "$s_mail" )) { $path_sendmail .= $s_mail.'\n\n'; } }
 - if (!$path_sendmail) { $path_sendmail = 'AUCUN !!\n\nRenseignez vous auprès de votre hébergeur !\n'; }
 - return<<FORM_CONFIG;
 - <TABLE WIDTH="100%" BORDER="0" ALIGN="CENTER" CELLPADDING="0" CELLSPACING="0">
 - <FORM METHOD="POST" ACTION="$CGI">
 - <INPUT TYPE="HIDDEN" NAME="ACT" VALUE="$Val_act">$hid
 - <TR><TD CLASS="texte_w">PASSWORD :</td><TD CLASS="texte_w"><INPUT TYPE="password" size="20" maxlength="20" name="PASSWORD" $STYLE VALUE="$CONF{PASSWORD}"></TD><TD CLASS="texte_w"><A HREF="javascript:alert('Votre mot de passe pour la section d\\'administration.\\n\\n20 caractères maximum !\\n')">$IMG_POINT</A></TD></TR>
 - <TR><TD CLASS="texte_w">PASSWORD (confirmation) :</td><TD CLASS="texte_w"><INPUT TYPE="password" size="20" maxlength="20" name="PASSWORD2" $STYLE VALUE="$CONF{PASSWORD}"></TD><TD CLASS="texte_w"><A HREF="javascript:alert('Entrez à nouveau votre mot de passe.\\n\\n20 caractères maximum !\\n')">$IMG_POINT</A></TD></TR>
 - <TR><TD CLASS="texte_w">Nom de domaine :</td><TD CLASS="texte_w"><INPUT TYPE="text" size="30" maxlength="255" name="DOMAIN" $STYLE VALUE="$DOMAIN"></TD><TD CLASS="texte_w"><A HREF="javascript:alert('Votre nom de domaine\\n avec ou sans www.')">$IMG_POINT</A&g [...] lt;/TR>
 - <TR><TD CLASS="texte_w">Chemin vers 'sendmail' :</td><TD CLASS="texte_w"><INPUT TYPE="text" size="30" maxlength="150" name="SENDMAIL" $STYLE VALUE="$CONF{SENDMAIL}"></TD><TD CLASS="texte_w"><A HREF="javascript:alert('SENDMAIL\\n\\nprogramme serveur mail\\n\\nChemin\\(s\\) détecté\\(s\\) :  \\n\\n$path_sendmail')">$IMG_POINT</A></td></TR>
 - <TR><TD CLASS="texte_w">Taille maximum des fichiers uploadés :</td><TD CLASS="texte_w"><INPUT TYPE="text" size="10" maxlength="10" name="MAX_UPLOAD" $STYLE VALUE="$CONF{MAX_UPLOAD}"> Ko</TD><TD CLASS="texte_w"><A HREF="javascript:alert('Il s\\'agit de la taille maximale que font l\\'ensemble des pièces jointes envoyé en même temps\\n\\nTaille approximative en Ko\\n')">$IMG_POINT</A></td></TR>
 - <TR><TD CLASS="texte_w"> </td><TD CLASS="texte"><INPUT TYPE="submit" $STYLE VALUE=" VALIDER "></TD><TD CLASS="texte_w"> </td></TR>
 - </FORM></TABLE>
 - FORM_CONFIG
 - }
 - sub admin_config
 - {
 - &pass_verif;
 - &style;
 - $aff = q~Configuration principale du script :<BR><BR>~;
 - $aff .= &form_config;
 - $aff .= &bout_retour;
 - &affiche_admin('<B>ADMINISTRATION</B>',$aff);
 - }
 - sub admin_modif_conf
 - {
 - &style;
 - &pass_verif;
 - &modif_config;
 - $aff = 'La configuration du script a été modifié.';
 - $Form{'pass'} = $CONF{'PASSWORD'};
 - $aff .= &bout_retour;
 - &affiche_admin('<B>ADMINISTRATION</B>',$aff);
 - }
 - sub modif_config
 - {
 - $err = 0;
 - if (!$Form{'PASSWORD'} || $Form{'PASSWORD'} =~ /^\s+$/) { $err++; $aff_err = "- PASSWORD<br>\n"; }
 - if (!$Form{'PASSWORD2'} || $Form{'PASSWORD2'} =~ /^\s+$/) { $err++; $aff_err .= "- PASSWORD (confirmation)<br>\n"; }
 - if ($Form{'PASSWORD2'} ne $Form{'PASSWORD'}) { $err++; $aff_err .= "- password différent de password (confirmation)<br>\n"; }
 - if ($Form{'DOMAIN'} !~ /$ENV{'SERVER_NAME'}|$ENV{'HTTP_HOST'}/i || $Form{'DOMAIN'} =~ /^http/) { $err++; $aff_err .= "- Nom de DOMAINE<br>\n"; }
 - if (!$Form{'SENDMAIL'} || $Form{'SENDMAIL'} =~ /^\s+$/ || !-e $Form{'SENDMAIL'} || !-x $Form{'SENDMAIL'}) { $err++; $aff_err .= "- Chemin du programme SENDMAIL<br>\n"; }
 - if ($Form{'MAX_UPLOAD'} !~ /^\d+$/) { $err++; $aff_err .= "- Taille maximale de l'ensemble des fichiers joints.<br>\n"; }
 - if ($err != 0) { &style; &affiche_admin('ERREUR !',&bad_form); }
 - &modif_conf('PASSWORD' => $Form{'PASSWORD'},'DOMAIN' => $Form{'DOMAIN'},'SENDMAIL' => $Form{'SENDMAIL'},'MAX_UPLOAD' => $Form{'MAX_UPLOAD'});
 - }
 - sub bout_retour { return qq|<FORM METHOD="POST" ACTION="$CGI"><INPUT TYPE="HIDDEN" NAME="ACT" VALUE="ADMIN"><INPUT TYPE="HIDDEN" NAME="pass" VALUE="$Form{pass}"><INPUT TYPE="submit" $STYLE VALUE=" RETOUR AU MENU "></FORM>\n|;  }
 - sub bad_form { return qq|Votre formulaire comporte des erreurs, veuillez vérifier les champs suivants :<br><br>$aff_err<br><br><A HREF="javascript:history.back()" CLASS="texte">$IMG_BACK Retour au formulaire</A><BR>\n|; }
 - sub style {
 - $STYLE = qq|STYLE="FONT-FAMILY: Arial, Helvetica, sans-serif; COLOR: #000000; FONT-SIZE: 8pt; BACKGROUND-COLOR: #EAB522"|;
 - $IMG_POINT = qq|<IMG SRC="http://vs6.hostfr.net/EXT/PForm/point_i.gif" BORDER="0" ALIGN="absmiddle">|;
 - $IMG_BACK = qq|<IMG SRC="http://vs6.hostfr.net/EXT/PForm/back.gif" BORDER="0" ALIGN="absmiddle">|;
 - }
 - sub form_install
 - {
 - if (!-d "$PFORM_DATAS_DIR" ) { &affiche_admin('<b>Installation : ERREUR !</b>',"Le répertoire <i>$PFORM_DATAS_DIR</i> n'est pas présent !<br>Veuillez le créer avant l'installation du script !" ); }
 - if (!-w "$PFORM_DATAS_DIR" ) { &affiche_admin('<b>Installation : ERREUR !</b>',"Le répertoire <i>$PFORM_DATAS_DIR</i> doit être en CHMOD 777 !" ); }
 - $aff = "Pour finir l'installation du script, veuillez remplir le formulaire suivant :<br><br>\n";
 - $aff .= &form_config;
 - &affiche_admin('<b>INSTALLATION</b>',"$aff" );
 - }
 - sub install
 - {
 - &make_fic("$PFORM_DATAS_DIR/\.htaccess","<Limit GET>\norder deny,allow\ndeny from all\n</Limit>" );
 - &make_fic("$PFORM_DATAS_DIR/CONFIG\.dat","INSTALL=================0\n" );
 - eval { chmod(0777,"$PFORM_DATAS_DIR/CONFIG\.dat" ); };
 - $CONF{'INSTALL'} = 1;
 - &modif_config;
 - &affiche_admin('<b>INSTALLATION : FIN !</b>',qq|L'installation du script est maintenant terminée !<BR>
 - Pour commencer à créer vos formulaires,<br>rendez vous à l'adresse du script pour entrer dans votre section d'administration :<BR><BR>
 - <A HREF="$CGI" CLASS="texte">$CGI</A><BR>|);
 - }
 - sub copy_du_fichier
 - {
 - my $file = $_[0];
 - if ($file =~ /([^\/\\]+)$/)
 -    {
 -    $Filename = $1;
 -    $Filename =~ s/^\.+//;
 -    $File_Handle = $file;
 -    }
 - $Filename =~ s/ /_/g;
 - $out_file = $PFORM_DATAS_DIR.'/'.$Filename;
 - if (!open(OUTFILE, ">$out_file" )) { $aff = "<b>PROBLEME DE CHMOD OU DE CHEMIN DU REPERTOIRE : $PFORM_DATAS_DIR !</b>"; &affichage; }
 - undef $BytesRead; undef $Buffer;
 - while ($Bytes = read($File_Handle,$Buffer,1024)) { $BytesRead += $Bytes;  print OUTFILE $Buffer; }
 - close($File_Handle);
 - close(OUTFILE);
 - eval { chmod(0777, "$out_file" ); };
 - $i++;
 - }
 - sub affiche_admin
 - {
 - print "Content-type: text/html\n\n";
 - print<<EOF;
 - <html>
 - <head>
 - <title>P-Form v5.0 Gold - Administration !</title>
 - <meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1">
 - <style type="text/css">
 - A:link { FONT-FAMILY: Arial, Helvetica, sans-serif; TEXT-DECORATION: none }
 - A:visited { FONT-FAMILY: Arial, Helvetica, sans-serif; TEXT-DECORATION: none }
 - A:hover { FONT-FAMILY: Arial, Helvetica, sans-serif; TEXT-DECORATION: underline; color: #FFFFFF }
 - .titre { FONT-FAMILY: Arial, Helvetica, sans-serif; COLOR: #FFFFFF; FONT-SIZE: 12pt; FONT-WEIGHT: bold }
 - .lien { FONT-FAMILY: Arial, Helvetica, sans-serif; COLOR: #CCCCCC; FONT-SIZE: 7pt; }
 - .texte_pt { FONT-FAMILY: Arial, Helvetica, sans-serif; COLOR: #FFFFFF; FONT-SIZE: 7pt; }
 - .texte { FONT-FAMILY: Arial, Helvetica, sans-serif; COLOR: #000000; FONT-SIZE: 10pt; }
 - .texte_w { FONT-FAMILY: Arial, Helvetica, sans-serif; COLOR: #FFFFFF; FONT-SIZE: 10pt; }
 - </style>
 - </head>
 - <body bgcolor="#FFFFFF" text="#000000">
 - <br>
 - <table width="650" border="1" align="center" cellpadding="0" cellspacing="0" bordercolor="#023A69" bgColor="#BFC9D3">
 -   <tr>
 -     <td align="center" bgcolor="#023A69" class="titre">Section d'administration
 -       de P-Form v5.0 Gold</td>
 -   </tr>
 -   <tr>
 -     <td><br> <table width="75%" border="0" align="center" cellpadding="0" cellspacing="0" bgcolor="#EAB522">
 -         <tr>
 -           <td align="center" class="texte">
 -           $_[0]
 -                </td>
 -         </tr>
 -       </table>
 -       <hr align="center" width="75%" size="1" noshade color="#023A69">
 -             <table width="75%" border="0" align="center" cellpadding="0" cellspacing="0">
 -         <tr>
 -           <td class="texte_w">
 -           $_[1]
 -                </td>
 -         </tr>
 -       </table>
 -       <hr align="center" width="75%" size="1" noshade color="#023A69">
 -       <br> </td>
 -   </tr>
 -   <tr>
 -     <td align="center" bgcolor="#023A69" class="texte_pt">P-Form 5.0 gold <a class="lien" href="http://www.perl-fr.com" target="_blank">©
 -       Perl-fr.com</a></td>
 -   </tr>
 - </table>
 - </body>
 - </html>
 - EOF
 - exit;
 - }
 - sub make_fic
 - {
 - open (FIC_CREATE, ">$_[0]" ) || &affiche_admin("<b>Impossible de créer le fichier $_[0] !</b>" );
 - print FIC_CREATE "$_[1]";
 - close (FIC_CREATE);
 - }
 - sub recup_conf
 - {
 - open (CONF_FIC,"$PFORM_DATAS_DIR/CONFIG.dat" ) or goto NOHERE;
 - while ($line=<CONF_FIC> )
 -       {
 -       chomp($line);
 -       if ( ($line !~ /^$/) && ($line !~ /^\s+$/) && ($line !~ /^#/) && ($line =~ /^(.*)=================(.*)$/) ) { $CONF{"$1"}="$2"; }
 -       }
 - close (CONF_FIC);
 - NOHERE:
 - }
 - sub modif_conf
 - {
 - my (%NEW_CONF) = @_;
 - foreach (keys (%NEW_CONF)) { $CONF{"$_"} = $NEW_CONF{"$_"}; }
 - open (CONF_W,">$PFORM_DATAS_DIR/CONFIG.dat" );
 - foreach (sort keys(%CONF)) { print CONF_W ($_."=================".$CONF{"$_"}."\n" ) unless $CONF{"$_"} eq ''; }
 - close (CONF_W);
 - }
 - sub date
 - {
 - local($sec,$min,$heure,$jour,$mois,$an,$date,$numero);
 - ($sec,$min,$heure,$jour,$mois,$an) = localtime(time);
 - $mois++;
 - $an+=1900;
 - if ($jour < 10) {$jour='0'.$jour;}
 - if ($mois < 10)  {$mois='0'.$mois;}
 - if ($min < 10) {$min='0'.$min;}
 - if ($heure < 10) {$heure='0'.$heure;}
 - if ($sec < 10) {$sec='0'.$sec;}
 - $date = $jour.'/'.$mois.'/'.$an.' à '.$heure.'h'.$min;
 - $numero = $an.$mois.$jour.$heure.$min.$sec;
 - if ($_[0] == 1) { return $numero; } else { return $date; }
 - }
 - sub verifie_email
 - {
 - local ($email)=@_;
 - $email=~ s/\.\@/\@/;
 - if ($email =~ /^$/) { return(0);}
 - if ($email =~ /^\s+$/) { return(0);}
 - if ($email!~ /\@/) { return(0);}
 - if (length $email > 255) { return(0); }
 - if ($email=~ /[\,|\s|\;]/) {return (0);}
 - if ($email =~ /(@.*@)|(\.\.)|(@\.)|(\.@)|(^\.)|(\.$)/ || ($email !~ /^.+\@localhost$/ && $email !~ /^.+\@\[?(\w|[-.])+\.[a-zA-Z]{2,3}|[0-9]{1,3}\]?$/)) {
 - return(0);
 - }else{
 - return(1);
 -   }
 - }
 
  |  
 
   Tu confirmes que c'est cette ligne qui provoque le plantage?
 $aff = qq~<b>Erreur : CHAMPS OBLIGATOIRES !!</b><BR>
 parce que ca n'a pas l'air d'être lié à la notion de pièce jointe, ça...
 A+,    Message édité par gilou le 24-09-2008 à 12:39:13  ---------------
			 There's more than what can be linked! --  Le capitaine qui ne veut pas obéir à la carte finira par obéir aux récifs. -- Il ne faut plus dire Sarkozy, mais Sarkozon -- (╯°□°)╯︵ ┻━┻
    |