#!/usr/bin/perl

print "Content-type: text/html\n\n";		# On affiche l'en-tête HTML indispensable


##### CONFIG ###################################
$VERSION='1.2';
# v1.2: 3 caractères modifiés quelque part dans ce script:-)
# v1.1: Correction mineure pour les stats. 13/01/2001
# v1.0: version initiale pg_recommander du 13/01/2001
$DATA_DIR='envoiami-data';


## Initialisation avec quelques vérifications ##
&init;

## Voici le formulaire à remplir: ##
$FORM=<<_ENDFORM_;
<form method="POST" action="http://$ENV{SERVER_NAME}$CONF{CGI_URL}">
  <table border="0" width="345" height="175" cellpadding="2" cellspacing="0" bgcolor="#336699">
    <tr>
      <td align="center" width="50%"><font color="#FFFFFF"><font face="Verdana,Arial" size="1"><b>Votre Nom</b></font><br>
      <input type="text" name="nom_visiteur" size="20" style="background-color: #E6EEF7"></td>
      <td align="center" width="50%"><font color="#FFFFFF"><font face="Verdana,Arial" size="1"><b>Votre E-Mail</b></font><br>
      <input type="text" name="email_visiteur" size="20" style="background-color: #E6EEF7"></td>
    </tr> <tr>
      <td align="center" width="50%"><font color="#FFFFFF"><font face="Verdana,Arial" size="1"><b>Nom de votre AMI</b></font><br>
      <input type="text" name="nom_ami" size="20" style="background-color: #E6EEF7"></td>
      <td align="center" width="50%"><font color="#FFFFFF"><font face="Verdana,Arial" size="1"><b>E-Mail de votre AMI</b></font><br>
      <input type="text" name="email_ami" size="20" style="background-color: #E6EEF7"></td>
    </tr> <tr>
      <td align="center" colspan="2"><font color="#FFFFFF"><font face="Verdana,Arial" size="1">
      <b>Ajoutez un message personnel (optionnel):</b></font><br>
      <textarea rows="6" name="message" cols="40" style="background-color: #E6EEF7"></textarea></td>
    </tr> <tr>
      <td align="center" colspan="2"><input type="submit" value="Envoyer" style="color: #336699; font-weight: bold; background-color: #E6EEF7"></td>
    </tr>
  </table>
</form>
_ENDFORM_

## L'administrateur veut entrer ? ##
if($ENV{'QUERY_STRING'} eq 'admin') { 
  &msg_fin("$CGI_DESC<br>ENTREE ADMINISTRATEUR :","<p>&nbsp;</p>\n<center><form action=\"$CONF{CGI_URL}\" METHOD=\"POST\">
                                     Mot de Passe:  <input type=\"PASSWORD\" name=\"PASSWD\"><BR><BR>
                                     <input type=\"submit\" value=\"Entrée\"></FORM></center>\n<p>&nbsp;</p>");
}

# Réception des données éventuelles d'un formulaire ##
if ($ENV{'REQUEST_METHOD'} eq 'POST') {
  %form=&receivepost;
} else {
  %form=&receiveget;
}

## Si c'est l'administrateur qui est loggé ##
if ($form{'PASSWD'}) {&admin; exit(0);}

################################################
## SECTION CI-DESSOUS POUR UTILISATION NORMALE##
##  (PAS ADMIN)                               ##
################################################

if ( ($form{'email_ami'} ne '') || ($form{'email_visiteur'} ne '') || ($form{'nom_ami'} ne '') || ($form{'nom_visiteur'} ne '') ) {			# Si envoi du formulaire
my ($flag);
  #### Le formulaire a été rempli... Utilisation normale

  ##################################
  #### Quelques vérifications : ####
  ##################################
  if ($form{'nom_visiteur'} eq '') {
    &msg_fin($CGI_DESC,"<p>&nbsp;</p><p align=\"center\">$FONT Vous n'avez pas indiqué votre nom.</font></p><p>&nbsp;</p>");
  }
  if ($form{'email_visiteur'} eq '') {
    &msg_fin($CGI_DESC,"<p>&nbsp;</p><p align=\"center\">$FONT Vous n'avez pas indiqué votre adresse E-Mail.</font></p><p>&nbsp;</p>");
  }
  if ($form{'nom_ami'} eq '') {
    &msg_fin($CGI_DESC,"<p>&nbsp;</p><p align=\"center\">$FONT Vous n'avez pas indiqué le nom de votre ami.</font></p><p>&nbsp;</p>");
  }
  if ($form{'email_ami'} eq '') {
    &msg_fin($CGI_DESC,"<p>&nbsp;</p><p align=\"center\">$FONT Vous n'avez pas indiqué l\'adresse E-Mail de votre ami.</font></p><p>&nbsp;</p>");
  }
  ## on vérifie les adresses E-Mail données
  if (&verifie_email($form{'email_visiteur'}) ==0) {
    &msg_fin($CGI_DESC,"<p>&nbsp;</p><p align=\"center\">$FONT Votre adresse E-Mail <b>$form{'email_visiteur'}</b> est incorrecte.</font></p><p>&nbsp;</p>");
  }
  if (&verifie_email($form{'email_ami'}) ==0) {
    &msg_fin($CGI_DESC,"<p>&nbsp;</p><p align=\"center\">$FONT Votre adresse E-Mail <b>$form{'email_ami'}</b> est incorrecte.</font></p><p>&nbsp;</p>");
  }

  ## On vérifie que le message personnalisé n'est pas trop gros:
  if (length($form{'message'}) > 1000) {
    &msg_fin($CGI_DESC,"<p>&nbsp;</p><p align=\"center\">$FONT Le message personnalisé que vous avez tapé est trop long (1000 caractères maxi).</font></p><p>&nbsp;</p>");
  }

  $form{'message'}=~ s/\r\n/\n/g;

  ##############################################
  #### Envoi Email à l'AMI :                ####
  ##############################################
  if (length($form{'message'}) > 5) {		# si message perso, on l'ajoute
    $CONF{'MESSAGE_AMI'}.="\n\nMESSAGE AJOUTE PAR [nom_visiteur]:\n$form{'message'}\n";
  }

  &remplir_template(\$CONF{'MESSAGE_AMI'});	  ## On remplit le texte à trous.

  #print "<PRE>$CONF{'MESSAGE_AMI'}</PRE>"; exit(0);
  &send_email($CONF{'EMAIL_WEBMASTER'},$form{'email_ami'},'Site recommandé',$CONF{'MESSAGE_AMI'});


  ##############################################
  ### Envoi confirmation visiteur si besoin  ###
  ##############################################
  if ($CONF{'NOTIFY_VISITEUR'} == 1) {
    &remplir_template(\$CONF{'MESSAGE_VISITEUR'});	## On remplit le texte à trous.
    &send_email($CONF{'EMAIL_WEBMASTER'},$form{'email_visiteur'},'Site recommandé',$CONF{'MESSAGE_VISITEUR'});
  }

  ##############################################
  ### Envoi notification webmaster si besoin ###
  ##############################################
  if ($CONF{'NOTIFY_WEBMASTER'} == 1) {
    &send_email($CONF{'EMAIL_WEBMASTER'},$CONF{'EMAIL_WEBMASTER'},'[Copie Recommandation]',"
    Ceci est un E-Mail automatique de votre formulaire pour vous informer que
    $form{'nom_visiteur'} ($form{'email_visiteur'})
    a recommandé votre site taxis-saintmalo.com à :
    $form{'nom_ami'} ($form{'email_ami'})\n
    Adresses sauvegardées sans doublon, statistiques mises à jour.\n
    Bonne journée.
    Merci de ne pas y répondre");
  }


  ##############################################
  #### SAUVEGARDES                          ####
  ##############################################


  ##############################################
  #### SAUVEGARDE INFOS VISITEUR            ####
  ##############################################
  # le visiteur est-il déjà enregistré ?
  $flag=0;					# on part du principe que non

  if (! -e "./$DATA_DIR/collecte_visiteur.txt") {
    open (CREA,">./$DATA_DIR/collecte_visiteur.txt");
    close(CREA);
    eval{chmod(0777,"./$DATA_DIR/collecte_visiteur.txt");};
  }    

  if (open(COLLVRW,"+<./$DATA_DIR/collecte_visiteur.txt")) {
    flock(COLLVRW,2);
    while (<COLLVRW>) {
      if ($_ =~ /^$form{email_visiteur}\|/o) {$flag=1;last;} # si email connu: $flag=1
    }
    if ($flag==0) {				# Si inconnu... on ajoute à la liste
      seek(COLLVRW,0,2);
      print COLLVRW ($form{'email_visiteur'}.'|'.$form{'nom_visiteur'}."\n");
    }
    close (COLLVRW);
  }

  ##############################################
  #### SAUVEGARDE INFOS AMI                 ####
  ##############################################
  # l'ami est-il déjà enregistré ?
  $flag=0;					# on part du principe que non

  if (! -e "./$DATA_DIR/collecte_ami.txt") {
    open (CREB,">./$DATA_DIR/collecte_ami.txt");
    close(CREB);
    eval{chmod(0777,"./$DATA_DIR/collecte_ami.txt");};
  }    

  if (open(COLLARW,"+<./$DATA_DIR/collecte_ami.txt")) {
    flock(COLLARW,2);
    while (<COLLARW>) {
      if ($_ =~ /^$form{email_ami}\|/o) {$flag=1;last;} # si email connu: $flag=1
    }
    if ($flag==0) {				# Si inconnu... on ajoute à la liste
      seek(COLLARW,0,2);
      print COLLARW ($form{'email_ami'}.'|'.$form{'nom_ami'}."\n");
    }
    close (COLLARW);
  }

  ##############################################
  #### SAUVEGARDE STATS                     ####
  ##############################################
  $ENV{'HTTP_REFERER'}=~ s/\?.*$//g;
  if (($ENV{'HTTP_REFERER'} ne '') && (length($ENV{'HTTP_REFERER'}) < 200)) {
    $ENV{'HTTP_REFERER'}=~ s/\t+//gs;		# on enlève les tabulations éventuelles
    my (%stats)=();

    if (! -e "./$DATA_DIR/statistiques.log") {
      open (CREC,">./$DATA_DIR/statistiques.log");
      close(CREC);
      eval{chmod(0777,"./$DATA_DIR/statistiques.log");};
    }    

    ## on lit les données existantes
    if (open(STATRW,"+<./$DATA_DIR/statistiques.log")) {
      flock(STATRW,2);
      while(<STATRW>) {
        chomp($_);
        if ($_=~ /^([^\t]+)\t(\d+)$/) {
          $stats{"$1"}+=$2;
        }
      }
      $stats{$ENV{'HTTP_REFERER'}}+=1;

      # Sauvegarde ;
      seek(STATRW,0,0);
      while ( ($a,$b)=each %stats) {
        print STATRW "$a\t$b\n";
      }
      truncate(STATRW,tell(STATRW));
      close (STATRW);
    }

  }


  &msg_fin($CGI_DESC,"<p>&nbsp;</p>\n
                      <blockquote> $FONT
                       <b>Merci $form{'nom_visiteur'} !</b><br>&nbsp;<br>
                       Un E-Mail vient d'être envoyé à votre ami : $form{'nom_ami'} ($form{'email_ami'}) de votre part
                       pour recommander ce site, ainsi que vous l'avez demandé.<br>&nbsp;<br>
                       <a href=\"javascript:history.go(".($ENV{'HTTP_REFERER'}=~ /envoiami\.pl/ ? '-2' : '-1').")\">RETOUR</a> </font>
                      </blockquote>
                       <p>&nbsp;</p>");




} else {
  ## Si le CGI a été appelé sans argument, on affiche juste le formulaire
  $FORM=~ s/ bgcolor=\"#DDDDDD\"//s;	# Pas le fond gris ici, juste pour donner le code HTML
  &msg_fin('Recommandez ce site à un ami !',$FORM);
}








################################################
############                   #################
############  SOUS-PROGRAMMES  #################
############                   #################
################################################
sub receiveget {
my (%postdata)=();
my ($data,$d,$nom,$valeur)=();

  if ($ENV{'REQUEST_METHOD'} eq 'GET') {
    $data=$ENV{'QUERY_STRING'};
    foreach $d (split('&',$data)) {            # séparation de la chaine par paires
      ($nom,$valeur)=split('=',$d);      # paires séparées
      $nom=&url_decode($nom);
      $valeur=&url_decode($valeur);
      $postdata{$nom}=$valeur;                  # paires rangées dans data
    }
  } else {
    print ("Content-type: text/html\n\n<H1>webmaster says : GET Error in CGI method <BR>GO BACK and TRY again</H1>Vous ne pouvez accéder ici par ce moyen.");
    die ("webmaster says : GET Error in CGI method") ; 
  }
  return %postdata ;
}
################################################
sub url_decode {
  my ($s)=@_;
  $s=~ tr/+/ /;
  $s=~ s/%([0-9A-F][0-9A-F])/pack("C",oct("0x$1"))/ge;
  $s;
}
################################################
sub receivepost {
my (%postdata)=();
my ($len,$d,$data,$nom,$valeur)=();

  if ($ENV{'REQUEST_METHOD'} eq 'POST') {
    $len=$ENV{'CONTENT_LENGTH'};       # Longueur de l envoi
    $data='';                          # Chaine envoyée
    if (read(STDIN,$data,$len) !=$len) {       # tout n est pas lu
      print ("<H1>error reading post data </H1>");
      die("Error reading 'POST' data\n") ; 
    }
    foreach $d (split('&',$data)) {            # séparation de la chaine par paires
      ($nom,$valeur)=split('=',$d);      # paires séparées
      $nom=&url_decode($nom);
      $valeur=&url_decode($valeur);
      $postdata{$nom}=$valeur;                  # paires rangées dans data
    }
  }
  return %postdata ;
}
################################################
sub verifie_email {
my ($email)=@_;
  $email=~ s/\.\@/\@/;				# certains FAI ne respectent pas le RFC...
  if ($email eq '') { return(0);}		# vide => erreur
  if ($email!~ /\@/) { return(0);}      	# aucun @ => erreur
  if ($email=~ /\@.*\@/) { return(0);}		# 2 @ => erreur
  if ($email=~ /[\,|\s|\;]/) {return (0)};	# Si caractères interdit => erreur
  if ($email =~ /(@.*@)|(\.\.)|(@\.)|(\.@)|(^\.)|(\.$)/ || 
     ($email !~ /^.+\@localhost$/ && 
      $email !~ /^.+\@\[?(\w|[-.])+\.[a-zA-Z]{2,3}|[0-9]{1,3}\]?$/)) {
    return(0);  # email non valide
  }else{
    return(1);  # email valide
  }
}
################################################
sub send_email {				# Sous-programme pour envoyer un E-Mail
  my ($from,$to,$subject,$message)=@_;		# Récupération des paramètres du mail à envoyer
  open (MAIL, "|$CONF{'MAILPROG'} -t -oi");		# Appel du programme sendmail (PIPE)
  print MAIL ("To: $to\n");
  print MAIL ("From: $from\n");
  print MAIL ("Subject: $subject\n\n");
  print MAIL ("$message");
  close (MAIL);					# On referme le canal de communication avec sendmail, et le mail part...
}
################################################
sub msg_fin {
my ($titre,$tip)=@_;
my ($d1,$d2);

  &htmlize(\$titre);
  &htmlize(\$tip);

  if (($ENV{'QUERY_STRING'} ne 'admin') && ($form{'PASSWD'} eq '') && ($ENV{'QUERY_STRING'} eq '') && ($ENV{'REQUEST_METHOD'} ne 'POST')) {
    ## Simple affichage du formulaire, on réduit la largeur :
    $d1='';
    $d2='<br>';
  } else {
    ## Affichage page normal (section administration)
    $d1=' width=80%';
    $d2='';
  }

  ## ATTENTION, si vous modifiez ou supprimez les lignes ci-dessous, vous ne #
  ## respectez pas les conditions d'utilisation gratuite de ce programme, et #
  ## vous vous en servez de manière illégale ! Merci de respecter le travail #
  ## de l'auteur ! Si vous souhaitez modifier ces lignes, il vous faudra     #
  ## aquérir une licence payante.     Merci de votre compréhension.          #
  print <<_EOM_;
  <html>
  <head> <title>$CGI_NAME</title></head>
  <body topmargin="0" leftmargin="0" bgcolor="$CONF{'BGCOLOR'}" text="#000000" link="#FF9900" vlink="#FF9900" alink="#FF9900">
  <table border="0"$d1>
    <tr>
      <td width="100%" bgcolor="#184692"><p align="center"><font face="Arial" color="#E9B61B"><B>$titre</B></font></td>
    </tr>
    <tr>
      <td width="100%" bgcolor="#E6EEF7">
       $tip
      </tr>
    <tr>
      <td width="100%" bgcolor="#184692"><p align="center"><font face="Arial" size="1" color="#E9B61B"><strong>
       Script réalisé par <a href="http://www.aci-web-creation.com">ACI Web Création.com</a></strong></font></td>
    </tr>
  </table>
  </body>
  </html>

_EOM_

  exit(0);
}
################################################
sub remplir_template {
my ($txt_ptr)=@_;				# Ceci est un pointeur, et non pas une variable, attention...

  ## ATTENTION, si vous modifiez ou supprimez les lignes ci-dessous, vous ne #
  ## respectez pas les conditions d'utilisation gratuite de ce programme, et #
  ## vous vous en servez de manière illégale ! Merci de respecter le travail #
  ## de l'auteur ! Si vous souhaitez modifier ces lignes, il vous faudra     #
  ## aquérir une licence payante.     Merci de votre compréhension.          #

  $$txt_ptr=~ s/\[email_ami\]/$form{email_ami}/gs;
  $$txt_ptr=~ s/\[email_visiteur\]/$form{email_visiteur}/gs;
  $$txt_ptr=~ s/\[nom_ami\]/$form{nom_ami}/gs;
  $$txt_ptr=~ s/\[nom_visiteur\]/$form{nom_visiteur}/gs;
  $$txt_ptr.="\n\n\n".'_' x 46 ."\nenvoi à un ami.  Programme de recommandation,\nadministré par http://www.aci-web-creation.com\n";

}
################################################




################################################
############                   #################
############    AUTO-INSTALL   #################
############                   #################
################################################
sub init {
my ($buf,$line);

  ## Configuration de base #
  %CONF=();
  $CONF{'BGCOLOR'}='#DDDDDD';			# Couleur de fond par défaut : blanc
  $CONF{'BACKGROUND'}='';			# Image de fond par défaut : rien
  $CONF{'FONT_FACE'}='Arial';			# Police par défaut : Arial
  $CONF{'FONT_SIZE'}='2';			# Taille de police par défaut : 2
  $CONF{'FONT_COLOR'}='#FFFFFF';		# Couleur de police par défaut : noir
  $CONF{'LFOND_MILIEU'}='#003399';		# Couleur de fond de la partie centrale
  $CGI_DESC='Recommander un site';		# Description du CGI: NE PAS CHANGER SINON RIEN NE VA MARCHER !
  $CGI_NAME='pg-recommander';				# Nom du CGI: NE PAS CHANGER SINON RIEN NE VA MARCHER !!!!
  $PGIMG_URL= $ENV{'SERVER_NAME'} eq '127.0.0.5' ? 'http://127.0.0.11' : 'http://img-scripts.perl-gratuit.com';
  $CONF{'NOTIFY_WEBMASTER'}=1;			# Par défaut
  $CONF{'NOTIFY_VISITEUR'}=1;			# Par défaut
  $LOCKFILE="./$DATA_DIR/lock";


  ## CHARGEMENT DE LA CONFIGURATION SI ELLE EXISTE ##
  if (open (CONFR,"./$DATA_DIR/config.txt")) {
    while ($line=<CONFR>) {
      chomp($line);
      if ( ($line ne '') && ($line!~ /^#/) && ($line=~ /^([^\s]+)\s+(.*)/) ) {
        $CONF{"$1"}="$2" unless ($2 eq '');
      }
    }
    close (CONFR);
  }
  ## Chargement Message ami si existant :
  if (open (MSG_AMI,"./$DATA_DIR/message_ami.txt")) {
    while (<MSG_AMI>) {$CONF{'MESSAGE_AMI'}.=$_;}
    close (MSG_AMI);
  }
  ## Chargement Message visiteur si existant :
  if (open (MSG_VISITEUR,"./$DATA_DIR/message_visiteur.txt")) {
    while (<MSG_VISITEUR>) {$CONF{'MESSAGE_VISITEUR'}.=$_;}
    close (MSG_VISITEUR);
  }


  $FONT="<font face=\"Arial\" size=\"2\">";

  ## Vérif que le répertoire des données existe ##
  if (!(-e "./$DATA_DIR")) {
    &msg_fin("<img src=\"$PGIMG_URL/$CGI_NAME.gif\" ALT=\"$CGI_NAME\"><br><img src=\"$PGIMG_URL/titre-installation.gif\"><br>Erreur !","<p>&nbsp;</p>\n
              <p><font face=\"Arial\" size=\"2\">Pour faire fonctionner ce CGI,
              il vous faut créer, dans le répertoire où ce trouve ce script, le sous-répertoire <b>$DATA_DIR</b>. <br>
              N\'oubliez pas de lui affecter CHMOD 777 (tous droits de lecture,écriture,éxécution) si votre serveur est de type Unix<br>
              Pour plus d\'information sur \"CHMOD\", voyez sur http://www.perl-gratuit.com dans les fiches pratiques/FAQ</font></p><p>&nbsp;</p>\n");
  }

  #############################
  ## Vérif étape 1 : URL_CGI ##
  #############################
  if ( (!(-e "./$DATA_DIR/config.txt")) || ($CONF{'CGI_URL'} eq '') ) {
    # Détection URL du CGI
    $buf=($ENV{'REQUEST_URI'} || $ENV{'SCRIPT_NAME'}); # URL de ce CGI
    $buf=~ s/\?.*//gs;
    # Création du fichier de configuration
    open (CONF,">>./$DATA_DIR/config.txt") ||  (&msg_fin("<img src=\"$PGIMG_URL/$CGI_NAME.gif\" ALT=\"$CGI_NAME\"><br><img src=\"$PGIMG_URL/titre-installation.gif\"> <br> ERREUR !",
                                                         "<p>&nbsp;</p>\n<p><font face=\"Arial\" size=\"2\">Impossible d\'écrire
                                                         dans le sous-répertoire <b>$DATA_DIR</b> !<br> &nbsp; <br> <u>Les permissions (\"CHMOD\") de ce 
                                                         sous-répertoire sont actuellement <b>".sprintf("%o",((stat("./$DATA_DIR")) [2] & 07777))."</b></u>. Ce doit être 777.
                                                         <br>&nbsp;<br>
                                                         Pour plus d\'information sur \"CHMOD\", voyez sur http://www.perl-gratuit.com dans les fiches pratiques/FAQ </font></p><p>&nbsp;</p>"));
    print CONF ("CGI_URL\t$buf\n");
    close (CONF);
    eval{chmod(0777,"./$DATA_DIR/config.txt");};

    &msg_fin("<img src=\"$PGIMG_URL/$CGI_NAME.gif\" ALT=\"$CGI_NAME\"><br><img src=\"$PGIMG_URL/titre-installation.gif\">",
             "<div align=\"center\"><center><table border=\"1\" cellpadding=\"4\" width=\"99%\" cellspacing=\"1\">
              <tr>
              <td width=\"1%\"><p align=\"center\"><font face=\"Arial\" color=\"#E63806\"><B>ETAPE 1/4</B></font></p>
               <p><img src=\"$PGIMG_URL/ecran-informations.jpg\">
             </td><td valign=\"top\">
              <p align=\"center\"><font face=\"Arial\" size=\"2\"><b>Bienvenue dans l\'auto-installation de <i>$CGI_NAME</i> !</b></p>
              <p>Vous éxécutez ce script CGI Perl pour la première fois. Afin de vous faciliter les choses, l'installation 
              est automatisée, un fichier de configuration va être créé, puis un formulaire vous demandera vos préférences
              de configuration. Cela vous évite d'avoir à modifier ce script manuellement. </p>
              <p align=\"center\"><b>Fonctionnalités de ce CGI :</b></p>
              <p>Ce CGI permet à vos visiteurs de recommander facilement votre site à des amis, afin d'augmenter
                 votre traffic.</font></td>
            </tr>
            </table> </center></div>
            <p align=\"center\"><font face=\"Arial\" size=\"2\"><font color=\"#E63806\">
             <b>Fichier de configuration créé avec succès.</b><br>
             L\'URL détectée de ce CGI est (sans le nom de domaine) : <u>$buf</u><br>
             Si cela est incorrect, veuillez dès à présent récupérer par FTP en mode ASCII (ou texte) le fichier
             $DATA_DIR/config.txt, et modifiez-le avec un éditeur de texte simple (Bloc Notes par exemple) </font></B><br>&nbsp; <br>
            <b>Merci de rafraichir cette page, afin de relancer ce script CGI pour continuer.<br>
            <small>(Cliquez sur le bouton 'Actualiser' ou 'Recharger' ou 'Reload' ou 'Refresh' de
            votre navigateur)</small></font></b></p><p>&nbsp;</p> ");
  }
  #############################
  ## Vérif étape 2 : Licence ##
  #############################
  if ($CONF{'ETAPE2'} == 0) {


    #### CREATION DU MESSAGE PAR DEFAUT POUR L'AMI
    open (MSG_AMI,">./$DATA_DIR/message_ami.txt") ||  (&msg_fin("<img src=\"$PGIMG_URL/$CGI_NAME.gif\" ALT=\"$CGI_NAME\"><br><img src=\"$PGIMG_URL/titre-installation.gif\"> <br> ERREUR !","<p>&nbsp;</p>\n<p>
                                                         <font face=\"Arial\" size=\"2\">Impossible de créer <b>$DATA_DIR/message_ami.txt</b> !
                                                         <br> &nbsp; <br> Merci de créer et de mettre chmod 777 manuellement à ce fichier... <br>&nbsp;<br>
                                                         Pour plus d\'information sur \"CHMOD\", voyez sur http://www.perl-gratuit.com dans les fiches pratiques/FAQ </font></p><p>&nbsp;</p>"));
    print MSG_AMI ("[nom_ami],\n\n[nom_visiteur] ([email_visiteur]) vous envoie\n");
    print MSG_AMI ("ce message pour vous recommander d'aller voir le site:\nhttp://www.votre-site-ici.com\n\n");
    print MSG_AMI ("Vous trouverez sur ce site :\n - des infos sur...\n - des services gratuits concernant...\n");
    print MSG_AMI ("Vous souhaitant bonne visite,\n\nLe webmaster.");
    close (MSG_AMI);
    eval{chmod(0777,"./$DATA_DIR/message_ami.txt");};

    #### CREATION DU MESSAGE PAR DEFAUT POUR LE VISITEUR
    open (MSG_VISITEUR,">./$DATA_DIR/message_visiteur.txt") ||  (&msg_fin("<img src=\"$PGIMG_URL/$CGI_NAME.gif\" ALT=\"$CGI_NAME\"><br><img src=\"$PGIMG_URL/titre-installation.gif\"> <br> ERREUR !","<p>&nbsp;</p>\n<p>
                                                         <font face=\"Arial\" size=\"2\">Impossible de créer <b>$DATA_DIR/message_visiteur.txt</b> !
                                                         <br> &nbsp; <br> Merci de créer et de mettre chmod 777 manuellement à ce fichier... <br>&nbsp;<br>
                                                         Pour plus d\'information sur \"CHMOD\", voyez sur http://www.perl-gratuit.com dans les fiches pratiques/FAQ </font></p><p>&nbsp;</p>"));
    print MSG_VISITEUR ("[nom_visiteur],\n\nCeci est un E-Mail automatique pour confirmer que suite\n");
    print MSG_VISITEUR ("à votre demande, un E-Mail à été envoyé à [nom_ami]\n([email_ami]) pour recommander le site :\n");
    print MSG_VISITEUR ("http://www.votre-site-ici.com\n\nEn vous remerciant,\n\nLe Webmaster.\n");
    close (MSG_VISITEUR);
    eval{chmod(0777,"./$DATA_DIR/message_visiteur.txt");};

    #### CREATION DU FICHIER DE COLLECTE DES VISITEURS
    open (COLL_VISITEUR,">./$DATA_DIR/collecte_visiteur.txt") ||  (&msg_fin("<img src=\"$PGIMG_URL/$CGI_NAME.gif\" ALT=\"$CGI_NAME\"><br><img src=\"$PGIMG_URL/titre-installation.gif\"> <br> ERREUR !","<p>&nbsp;</p>\n<p>
                                                         <font face=\"Arial\" size=\"2\">Impossible de créer <b>$DATA_DIR/collecte_visiteur.txt</b> !
                                                         <br> &nbsp; <br> Merci de créer et de mettre chmod 777 manuellement à ce fichier... <br>&nbsp;<br>
                                                         Pour plus d\'information sur \"CHMOD\", voyez sur http://www.perl-gratuit.com dans les fiches pratiques/FAQ </font></p><p>&nbsp;</p>"));
    close (COLL_VISITEUR);
    eval{chmod(0777,"./$DATA_DIR/collecte_visiteur.txt");};

    #### CREATION DU FICHIER DE COLLECTE DES AMIS
    open (COLL_VISITEUR,">./$DATA_DIR/collecte_ami.txt") ||  (&msg_fin("<img src=\"$PGIMG_URL/$CGI_NAME.gif\" ALT=\"$CGI_NAME\"><br><img src=\"$PGIMG_URL/titre-installation.gif\"> <br> ERREUR !","<p>&nbsp;</p>\n<p>
                                                         <font face=\"Arial\" size=\"2\">Impossible de créer <b>$DATA_DIR/collecte_ami.txt</b> !
                                                         <br> &nbsp; <br> Merci de créer et de mettre chmod 777 manuellement à ce fichier... <br>&nbsp;<br>
                                                         Pour plus d\'information sur \"CHMOD\", voyez sur http://www.perl-gratuit.com dans les fiches pratiques/FAQ </font></p><p>&nbsp;</p>"));
    close (COLL_VISITEUR);
    eval{chmod(0777,"./$DATA_DIR/collecte_ami.txt");};




    eval{chmod(0777,"./$DATA_DIR/config.txt");};
    open (CONF,">>./$DATA_DIR/config.txt") ||  (&msg_fin("<img src=\"$PGIMG_URL/$CGI_NAME.gif\" ALT=\"$CGI_NAME\"><br><img src=\"$PGIMG_URL/titre-installation.gif\"> <br> ERREUR !","<p>&nbsp;</p>\n<p>
                                                         <font face=\"Arial\" size=\"2\">Impossible d\'écrire dans <b>$DATA_DIR/config.txt</b> !
                                                         <br> &nbsp; <br> Merci de mettre chmod 777 manuellement à ce fichier... <br>&nbsp;<br>
                                                         Pour plus d\'information sur \"CHMOD\", voyez sur http://www.perl-gratuit.com dans les fiches pratiques/FAQ </font></p><p>&nbsp;</p>"));
    print CONF ("ETAPE2\t1\n");
    close (CONF);

    &msg_fin("<img src=\"$PGIMG_URL/$CGI_NAME.gif\" ALT=\"$CGI_NAME\"><br><img src=\"$PGIMG_URL/titre-installation.gif\">",
             "<div align=\"center\"><center><table border=\"1\" cellpadding=\"4\" width=\"99%\" cellspacing=\"1\">
              <tr>
              <td width=\"1%\"><p align=\"center\"><font face=\"Arial\" color=\"#E63806\"><B>ETAPE 2/4</B></font></p>
               <p><img src=\"$PGIMG_URL/ecran-licence.jpg\">
             </td><td valign=\"top\">
              <p align=\"center\"><font face=\"Arial\" size=\"2\"><b>Informations : Licence</b></p>
              <p>Au bas des pages de ce CGI, vous verrez un copyright et la mention de l\'auteur.<br>
               La licence d'utilisation gratuite de ce script CGI vous est accordée, à la condition expresse
              que vous ne fassiez pas de modifications dans le code source en vue de supprimer ou altérer ce type
              de mention. Dans le cas contraire, son utilisation est illégale...<br>
              Merci de respecter le travail de l'auteur<br>&nbsp;<br> </p>
              </font></td>
            </tr>
            </table> </center></div>
            <p align=\"center\"><font face=\"Arial\" size=\"2\">
             <font color=\"#E63806\">
             <b>Fichier <u>$DATA_DIR/message_ami.txt</u> créé avec succès.</b><br>
             <b>Fichier <u>$DATA_DIR/message_visiteur.txt</u> créé avec succès.</b><br>
             <b>Fichier <u>$DATA_DIR/collecte_ami.txt</u> créé avec succès.</b><br>
             <b>Fichier <u>$DATA_DIR/collecte_visiteur.txt</u> créé avec succès.</b><br>
           </font></B><br>&nbsp; <br>
            <b>Merci de rafraichir cette page, afin de relancer ce script CGI pour continuer.<br>
            <small>(Cliquez sur le bouton 'Actualiser' ou 'Recharger' ou 'Reload' ou 'Refresh' de
            votre navigateur)</small></font></b></p><p>&nbsp;</p> ");

  }

  ####################################
  ## Vérif étape 3 : Enregistrement ##
  ####################################
  if ($CONF{'ETAPE3'} == 0) {
    eval{chmod(0777,"./$DATA_DIR/config.txt");};
    open (CONF,">>./$DATA_DIR/config.txt") ||  (&msg_fin("<img src=\"$PGIMG_URL/$CGI_NAME.gif\" ALT=\"$CGI_NAME\"><br><img src=\"$PGIMG_URL/titre-installation.gif\"> <br> ERREUR !","<p>&nbsp;</p>\n
                                                         <p><font face=\"Arial\" size=\"2\">Impossible d\'écrire dans <b>$DATA_DIR/config.txt</b> !
                                                         <br> &nbsp; <br> Merci de mettre chmod 777 manuellement à ce fichier... <br>&nbsp;<br>
                                                         Pour plus d\'information sur \"CHMOD\", voyez sur http://www.perl-gratuit.com dans les fiches pratiques/FAQ </font></p><p>&nbsp;</p>"));
    print CONF ("ETAPE3\t1\n");
    close (CONF);

    ## Creation d'un fichier .htaccess, pour la sécurité.
    if (open (HTACCESS,">$DATA_DIR/.htaccess")) {
      print HTACCESS "<Limit GET>\norder deny,allow\ndeny from all\n</Limit>";
      close (HTACCESS);
      $buf="<b>Répertoire $DATA_DIR protégé : accès interdit pour tous, par sécurité.</b><br>&nbsp;<br>";
      eval{chmod(0666,"./$DATA_DIR/.htaccess");};
    } else {
      $buf='';
    }

    #### CREATION DU FICHIER POUR LES STATS
    open (STATS,">./$DATA_DIR/statistiques.log") ||  (&msg_fin("<img src=\"$PGIMG_URL/$CGI_NAME.gif\" ALT=\"$CGI_NAME\"><br><img src=\"$PGIMG_URL/titre-installation.gif\"> <br> ERREUR !","<p>&nbsp;</p>\n<p>
                                                         <font face=\"Arial\" size=\"2\">Impossible de créer <b>$DATA_DIR/statistiques.log</b> !
                                                         <br> &nbsp; <br> Merci de créer et de mettre chmod 777 manuellement à ce fichier... <br>&nbsp;<br>
                                                         Pour plus d\'information sur \"CHMOD\", voyez sur http://www.perl-gratuit.com dans les fiches pratiques/FAQ </font></p><p>&nbsp;</p>"));
    close (STATS);
    eval{chmod(0777,"./$DATA_DIR/statistiques.log");};


    &msg_fin("<img src=\"$PGIMG_URL/$CGI_NAME.gif\" ALT=\"$CGI_NAME\"><br><img src=\"$PGIMG_URL/titre-installation.gif\">",
             "<div align=\"center\"><center><table border=\"1\" cellpadding=\"4\" width=\"99%\" cellspacing=\"1\">
              <tr>
              <td width=\"1%\"><p align=\"center\"><font face=\"Arial\" color=\"#E63806\"><B>ETAPE 3/4</B></font></p>
               <p><img src=\"$PGIMG_URL/ecran-enregistrement.jpg\">
             </td><td valign=\"top\">
              <p align=\"center\"><font face=\"Arial\" size=\"2\"><b>Informations : Enregistrement</b></p>
              <p>Vous pourriez me rendre un service SVP... ?<br>
              D'une part, j'aimerais bien savoir où mes scripts Perl sont utilisés par simple curiosité,
              d'autre part j'aimerais présenter sur mon site perl-gratuit.com, une liste des sites les utilisant,
              aussi vous me feriez un grand plaisir si vous pouviez me signaler que vous utilisez ce <i>$CGI_NAME</i>, en allant ici :
              <a href=\"http://www.perl-gratuit.com/register/\" target=\"blank\">http://www.perl-gratuit.com/register/</a>.<br>
              Merci :-)<br>
              J'ai fait ce script CGI Perl pour apporter ma contribution à la communauté Internet, j'espère que cela vous sera utile... </p>
              </font></td>
            </tr>
            </table> </center></div>
            <p align=\"center\"><font face=\"Arial\" size=\"2\"><font color=\"#E63806\">
             <b>Fichier <u>$DATA_DIR/statistiques.log</u> créé avec succès.</b><br>
            $buf
            La dernière étape va vous permettre de configurer et personnaliser ce CGI. Quand ceci sera terminé,
            cliquez sur le bouton \"Informations\" pour voir comment utiliser ce script, et commencer à le tester.
            Vous pourrez, à tout moment, revenir à la section d\'administration en allant à l'URL :<br>
            http://$ENV{SERVER_NAME}$CONF{CGI_URL}?admin </font></p>

            <p align=\"center\"><font face=\"Arial\" size=\"2\"><br>&nbsp; <br>
            <b>Merci de rafraichir cette page, afin de relancer ce script CGI pour continuer.<br>
            <small>(Cliquez sur le bouton 'Actualiser' ou 'Recharger' ou 'Reload' ou 'Refresh' de
            votre navigateur)</small></font></b></p><p>&nbsp;</p> ");

  }

  ####################################
  ## Vérif étape 3 : Configuration ##
  ####################################
  # La configuration a-t-elle été effectué ?
  if ($CONF{'CPASSWD'} eq '') {			# non, pas encore car pas de mot de passe ...
    %form=&receivepost; 			# Récup formulaire par POST
    if ($form{'ORD_change_param_do'}) {		# Si on est en train de configurer 
      &admin_change_param_do;			# sauver la config
    } else {					# Sinon,
      &admin_change_param;			# Lancer la première configuration
    }
  }

}

################################################


################################################
############                   #################
############       ADMIN       #################
############                   #################
################################################

sub admin {
  # On vérifie le mot de passe si il y en a un :
  $PASSWD=$form{'PASSWD'};
  if (crypt($PASSWD,'aa') ne $CONF{'CPASSWD'}) {
    sleep(3);
    &msg_fin ("$CGI_DESC <br> ADMINISTRATION<br></strong>","
              <p>&nbsp;</p>\n<font face=\"Arial\" size=\"2\"><b>Le mot de passe n\'est pas correct !</b><br><br>
              Retournez à la page précédente pour retenter...<br>
              Si vous ne parvenez pas à vous souvenir de votre mot de passe, une seule chose à faire : par FTP,
              supprimez le fichier \"$DATA_DIR/config.txt\", puis rendez-vous à l\'URL de ce script
              (http://$ENV{SERVER_NAME}$CONF{CGI_URL}) pour le reconfigurer et fixer un nouveau mot de passe.</font><p>&nbsp;</p>");
  }

  if ($form{'ORD_stats'}) {&admin_stats;}			# Voir les stats
  if ($form{'ORD_stats_reset'}) {&admin_stats_reset;}		# Reset les stats
  if ($form{'ORD_change_param'}) {&admin_change_param;}		# Le bouton de modification des paramètres a été cliqué
  if ($form{'ORD_change_param_do'}) {&admin_change_param_do;}	# Le bouton d'enregistrement des modif des paramètres a été cliqué
  if ($form{'ORD_info'}) {&admin_info;}				# Informations sur l'utilisation de ce script.
  if ($form{'ORD_version'}) {&admin_version;}			# Informations sur la dernière version disponible.
  if ($form{'ORD_voir_collecte'}) {&admin_voir_collecte;}	# Voir les adresses collectées.


  # Sinon, on affiche la page de menu par défaut#
  &admin_menu;

}
################################################
sub admin_menu {
my ($nb_ami,$nb_visiteur);

  # On cherche le nb de visiteurs collectés :
  $nb_visiteur='0';
  open(BUF1,"./$DATA_DIR/collecte_visiteur.txt") || (&msg_fin('ERREUR',"Impossible de lire le fichier $DATA_DIR/collecte_visiteur.txt: $!"));
  while (<BUF1>) {$nb_visiteur++;}
  close(BUF1);

  # On cherche le nb d'amis collectés :
  $nb_ami='0';
  open(BUF2,"./$DATA_DIR/collecte_ami.txt") || (&msg_fin('ERREUR',"Impossible de lire le fichier $DATA_DIR/collecte_ami.txt: $!"));
  while (<BUF2>) {$nb_ami++;}
  close(BUF2);


  &msg_fin("<img src=\"$PGIMG_URL/$CGI_NAME.gif\" ALT=\"$CGI_NAME\"><br>ADMINISTRATION","
    <p>&nbsp;</p>

    <form method=\"POST\" action=\"$CONF{CGI_URL}\">
     <input type=\"hidden\" name=\"PASSWD\" VALUE=\"$PASSWD\">

     <div align=\"center\"><center><table border=\"0\" cellspacing=\"1\" cellpadding=\"0\">
        <tr>
          <td colspan=\"2\" align=\"center\"> <font face=\"Arial\" size=\"3\" color=\"\#0000FF\"><b><u>Vos Paramètres :</u></b></font></td>
        </tr> <tr>
          <td>$FONT E-Mail administrateur :</font></td>
          <td>$FONT $CONF{'EMAIL_WEBMASTER'}</font></td>
        </tr> <tr>
          <td>$FONT Notifications au Webmaster : &nbsp;&nbsp;&nbsp;</font></td>
          <td>$FONT ".($CONF{'NOTIFY_WEBMASTER'}==1?'Oui':'Non')."</font></td>
        </tr> <tr>
          <td>$FONT Notifications au visiteur :</font></td>
          <td>$FONT ".($CONF{'NOTIFY_VISITEUR'}==1?'Oui':'Non')."</font></td>
        </tr> <tr>
          <td>$FONT Emplacement sendmail :</font></td>
          <td>$FONT $CONF{'MAILPROG'}</font></td>
        </tr> <tr>
          <td>$FONT Mot de passe :</font></td>
          <td>$FONT ".'x' x length($form{'PASSWD'})."</font></td>
        </tr> <tr>
          <td colspan=\"2\"><div align=\"center\"><center><p>
          <input type=\"submit\" value=\"Modifier les paramètres...\" name=\"ORD_change_param\"></td>
        </tr>
      </table>
      </center></div>

      <p align=\"center\">$FONT <b> Actuellement $nb_visiteur adresses de visiteurs, $nb_ami adresses d'<i>amis</i> collectées. </b></font></p>
      <div align=\"center\"><center><table border=\"0\" cellspacing=\"1\">
        <tr>
         <td align=\"center\"><u><B><font face=\"Arial\" color=\"#0000FF\">Menu :</font></B></u></td>
         </tr>  <tr>
          <td><font face=\"Arial\" size=\"2\">
          <input type=\"submit\" value=\"&gt;&gt;\" name=\"ORD_stats\"> Statistiques d'utilisation.<br>
          <input type=\"submit\" value=\"&gt;&gt;\" name=\"ORD_voir_collecte\"> Adresses des 
                   <select name=\"d_collect_type\" size=\"1\">
                   <option value=\"visiteur\">visiteurs</option>
                   <option value=\"ami\">amis</option>
                   </select>
                   collectées, format:
                   <select name=\"d_sep_type\" size=\"1\">
                   <option value=\"1\">pour importer dans PG-MailingList PRO</option>
                   <option value=\"2\">Outlook Express</option>
                   <option value=\"3\">Netscape Mail</option>
                   <option value=\"4\">Tableur Excel ou autre</option>
                   </select><br>
          <input type=\"submit\" value=\"&gt;&gt;\" name=\"ORD_change_param\"> Modifier vos paramètres.<br>
          <input type=\"submit\" value=\"&gt;&gt;\" name=\"ORD_version\"> Dernière version disponible.<br>
          <input type=\"submit\" value=\"&gt;&gt;\" name=\"ORD_info\"> INFORMATIONS A LIRE...</font></td>
        </tr>
      </table>
      </center></div>
    </form>
    <p>&nbsp;</p>");


}
################################################
sub admin_change_param {
my ($msg,$buf,$d_guess_sendmail,$d1,$d2);

  ## Traficotages... :
  $d1= $CONF{'NOTIFY_WEBMASTER'}==1 ? 'checked' : '';
  $d2= $CONF{'NOTIFY_VISITEUR'}==1 ? 'checked' : '';

  ## On cherche l'emplacement de sendmail.
  ## On teste chacun des emplacements classiques sur serveur Unix
  foreach $buf ('/usr/lib/sendmail','/usr/bin/sendmail','/bin/sendmail','/usr/sbin/sendmail','/usr/local/bin/sendmail','/usr/local/lib/sendmail') {
    if ((-e "$buf") && (-x "$buf")) {		# Si le fichier Existe et est éXécutable,
      $d_guess_sendmail.="$buf<br>";		# c'est un emplacement de sendmail (plusieurs possibles)
    }
  }
  if ($d_guess_sendmail eq'') { $d_guess_sendmail='Aucun';} # Si aucun emplacement trouvé.


  $msg=<<_EOM2_;
  <script language="javascript">
<!--  N
function palette ()
{var newWindow = window.open("$PGIMG_URL/palette.html","palette","height=450,width=360,menubar=no,scrollbars=no,toolbar=no,location=no,status=no")}
// ..n -->
</script>
  <p>&nbsp;</p>
  <p align="center"><font color="#0000ff" face="Arial" size="3"><u><strong>Paramètres :</strong></u></font></p>
  <form method="POST" action="$CONF{CGI_URL}">
  <input type="hidden" name="PASSWD" value="$PASSWD">
  <table border="0" cellpadding="5" cellspacing="1" width="100%">
    <tr>
      <td valign="top">
         <font face="Arial" size="2"><B>Mot de passe :</B><br>
          Tapez 2 fois (pour confirmer) le mot de passe d'accès Administrateur de ce CGI
          si vous voulez le changer (obligatoire la première fois que vous voyez ce formulaire). A
          noter qu'il est sauvegardé de façon cryptée !<br>
          Si vous laissez ces deux cases vides, le mot de passe sera inchangé. Si vous l'oubliez,
          un message vous indiquera comment faire.</font> </td>
         <td valign="top">
         <input name="d_passwd" size="20"><br> <input name="d_passwdbis" size="20">  </td>
    </tr><tr>
       <td valign="top">
       <font face="Arial" size="2"><B>E-Mail Webmaster :</B><br>
       Tapez ici votre adresse E-Mail</font>
       </td><td valign="top">
       <input name="EMAIL_WEBMASTER" VALUE="$CONF{EMAIL_WEBMASTER}" size="20">  </td>
    </tr><tr>
       <td valign="top"><font face="Arial" size="2"><B>Emplacement de sendmail :</B><br>
       Indiquez ici l'emplacement du programme sendmail sur votre serveur. Ce script
       tente de le trouver tout seul en cherchant aux endroits habituels, mais il se peut qu'il
       ne le trouve pas. si vous ne le connaissez pas demandez à votre hébergeur.</font></p>
       </td><td valign="top">
       <input type="text" name="MAILPROG" size="20" value="$CONF{MAILPROG}"><br>
       <font face="Arial" size="2"><u>Emplacement(s) détecté(s):</u><br>
       $d_guess_sendmail
       </font></td>
    </tr><tr>
       <td valign="top"><font face="Arial" size="2"><B>Notification webmaster :</B><br>
       Cochez cette case si vous souhaitez être informé par un E-Mail court à chaque fois qu'un visiteur
       utilise ce CGI pour recommander votre site à un ami.
       Si vous prévoyer des milliards (!?!) d'utilisations chaque jour, vous ne devriez pas cocher cette
       case pour ne pas être bombardé d'E-Mail de notifications.
       </font>&nbsp;&nbsp; </td>
       <td valign="top">
       <input type="checkbox" name="NOTIFY_WEBMASTER" value="1"$d1></td>

    </tr><tr>
       <td valign="top"><font face="Arial" size="2"><B>Notification Visiteur :</B><br>
       Cochez cette case si vous souhaitez que le visiteur recommandant votre site à un ami, reçoive
       un E-Mail de confirmation/accusé réception.
       </font>&nbsp;&nbsp; </td>
       <td valign="top">
       <input type="checkbox" name="NOTIFY_VISITEUR" value="1"$d2></td>

    </tr><tr>
         <td valign="top" colspan="2" align="center"><hr noshade color="#0000FF">
         <font face="Arial" size="3" color="#0000FF"><b>Message envoyé à l\'ami du visiteur</b></font></td>
    </tr><tr>
         <td valign="top" colspan="2" align="center"><font face="Arial" size="2">
         Modifiez ci-dessous le message qui sera envoyé par E-Mail à l'ami du visiteur.<br>
         N'oubliez pas d'y mettre l'URL de votre site, et une petite description</font><br>
         <table border="0">
          <tr><td bgcolor="#DDDDDD"><font face="Arial" size="2">
           <b>SI BESOIN :</b><br>
           Mettez [nom_ami] à l'endroit où le nom de l'ami doit apparaître.<br>
           Mettez [email_ami] à l'endroit où l'E-Mail de l'ami doit apparaître.<br>
           Mettez [nom_visiteur] à l'endroit où le nom du visiteur doit apparaître.<br>
           Mettez [email_visiteur] à l'endroit où l\'E-Mail du visiteur doit apparaître.<br></font>
           <font face="Verdana,Arial" size="2"><b>
           ATTENTION, lors de l'envoi de l'email, [nom_ami], [email_ami], et les<br>
           2 autres TAGS seront remplacés par les noms et adresses E-Mail tapées dans le formulaire.<br>
           Ne supprimez donc pas ces TAGS, ils servent à personnaliser chaque Mail.</b>
          </font></td></tr>
         </table>
         <textarea name="none" cols="65" rows="1" wrap="VIRTUAL">1........10........20........30........40........50........60....</textarea><br>

         <TEXTAREA NAME="MESSAGE_AMI" ROWS="10" COLS="65" NOWRAP>$CONF{'MESSAGE_AMI'}</TEXTAREA> 
         </font></td>
    </tr><tr>
         <td valign="top" colspan="2" align="center"><hr noshade color="#0000FF">
         <font face="Arial" size="3" color="#0000FF"><b>Accusé-réception pour le visiteur</b></font></td>
    </tr><tr>
         <td valign="top" colspan="2" align="center"><font face="Arial" size="2">
         Si vous avez coché la case <u>Notification du visiteur</u>, c'est le texte ci-dessous qui sera envoyé
         au visiteur en tant qu'accusé-réception.<br>Vous pouvez modifer ce texte ci-dessous:</font><br>
         <table border="0">
          <tr><td bgcolor="#DDDDDD"><font face="Arial" size="2">
           <b>SI BESOIN :</b><br>
           Mettez [nom_ami] à l'endroit où le nom de l'ami doit apparaître.<br>
           Mettez [email_ami] à l'endroit où l'E-Mail de l'ami doit apparaître.<br>
           Mettez [nom_visiteur] à l'endroit où le nom du visiteur doit apparaître.<br>
           Mettez [email_visiteur] à l'endroit où l\'E-Mail du visiteur doit apparaître.<br>
          </font></td></tr>
         </table>
         <textarea name="none" cols="65" rows="1" wrap="VIRTUAL">1........10........20........30........40........50........60....</textarea><br>

         <TEXTAREA NAME="MESSAGE_VISITEUR" ROWS="5" COLS="65" NOWRAP>$CONF{'MESSAGE_VISITEUR'}</TEXTAREA> 
         </font></td>

    </tr><tr>
         <td valign="top" colspan="2" align="center"><hr noshade color="#0000FF">
         </td>


      </tr>
      </table>
      <center><p align="center">
       <input name="ORD_change_param_do" type="submit" value="Enregistrer ces paramètres !">
       <input name="ORD_menu" type="submit" value="NE PAS MODIFIER !"></p></center>
    </form>
    <p>&nbsp;</td>
_EOM2_

  &msg_fin("<img src=\"$PGIMG_URL/$CGI_NAME.gif\" ALT=\"$CGI_NAME\"><br><img src=\"$PGIMG_URL/titre-configuration.gif\">",$msg);
}
################################################
sub admin_change_param_do {
my ($msg);

  if (($CONF{'CPASSWD'} eq '') && ($form{'d_passwd'} eq '')) {
    &msg_fin("<img src=\"$PGIMG_URL/$CGI_NAME.gif\" ALT=\"$CGI_NAME\"><br><img src=\"$PGIMG_URL/titre-configuration.gif\">",
             "<p>&nbsp;</p>\n$FONT Pour la première configuration de $CGI_NAME, il vous faut choisir un mot de passe!<br>Merci de corriger !</font><p>&nbsp;</p>");
  }
  if ($form{'d_passwd'} ne '') {			# Si on veut changer le mot de passe
    if ($form{'d_passwd'} ne $form{'d_passwdbis'}) {	# Si les 2 mots de passe ne sont pas identiques
      &msg_fin("<img src=\"$PGIMG_URL/$CGI_NAME.gif\" ALT=\"$CGI_NAME\"><br><img src=\"$PGIMG_URL/titre-configuration.gif\">",
               "<p>&nbsp;</p>\nLes deux cases pour changer le mot de passe ne sont pas identiques. Merci de corriger! <p>&nbsp;</p>");
    } elsif (length($form{'d_passwd'}) < 3) {           # Si le mot de passe fait moins de 3 caractères
      &msg_fin("<img src=\"$PGIMG_URL/$CGI_NAME.gif\" ALT=\"$CGI_NAME\"><br><img src=\"$PGIMG_URL/titre-configuration.gif\">",
               "<p>&nbsp;</p>\nLe mot de passe <b>$form{d_passwd}</b> fait moins de 3 caractères, ce qui est dangereux !<br> Merci de corriger, avec 3 caractères mini.<p>&nbsp;</p>\n");
    } else {						# sinon les 2 cases sont identiques et tout va bien.
      $PASSWD=$form{'d_passwd'};			# on modifie le mot de passe !
      $msg="<br><b>Le mot de passe de l\'accès Administrateur a été modifié et est
               maintenant <font color=\"#FF0000\">$PASSWD</font>. Attention,</b> il est sauvegardé de façon
               cryptée. Vous ne pourrez pas (ce programme non plus) le décrypter. Si vous l\'oubliez, lorsque
               vous tenterez d\'accéder ici avec un mauvais mot de passe, un message vous expliquera comment faire.<br>";
    }
  }

  ## Vérif E-Mail Webmaster :
  if (&verifie_email($form{'EMAIL_WEBMASTER'}) ==0) {
    &msg_fin("<img src=\"$PGIMG_URL/$CGI_NAME.gif\" ALT=\"$CGI_NAME\"><br><img src=\"$PGIMG_URL/titre-configuration.gif\">",
             "<p>&nbsp;</p>\n$FONT L\'adresse E-Mail de l\'Administrateur (<b>$form{EMAIL_WEBMASTER}</b>) est invalide! </font><p>&nbsp;</p>");

  }
  if ($form{'MAILPROG'} eq '') {
    &msg_fin("<img src=\"$PGIMG_URL/$CGI_NAME.gif\" ALT=\"$CGI_NAME\"><br><img src=\"$PGIMG_URL/titre-configuration.gif\">",
             "<p>&nbsp;</p>\n$FONT Vous n\'avez pas indiqué l\'emplacement du programme sendmail. Ceci est tout à fait indispensable 
            pour que ce programme puisse envoyez des E-Mails. <br> &nbsp;<br>
            <u>En cas de problème/doute, demandez à votre hébergeur !</u> </font><p>&nbsp;</p>");


  }
  if (!(-e "$form{MAILPROG}")) {
    &msg_fin("<img src=\"$PGIMG_URL/$CGI_NAME.gif\" ALT=\"$CGI_NAME\"><br><img src=\"$PGIMG_URL/titre-configuration.gif\">",
             "<p>&nbsp;</p>\n$FONT <b> $form{MAILPROG} </b> n\'existe pas, merci de corriger!<br> Ceci est tout à fait 
             indispensable pour que ce programme puisse envoyez des E-Mails. <br>
             &nbsp;<br> <u>En cas de problème/doute, demandez à votre hébergeur !</u> </font><p>&nbsp;</p>");

  }


  ## On vire les retours fin de ligne à la Windows pour IE.
  $form{'MESSAGE_VISITEUR'}=~ s/\r\n/\n/g;
  $form{'MESSAGE_AMI'}=~ s/\r\n/\n/g;
  ## Ces 2 messages doivent se finir par un seul retour à la ligne
  $form{'MESSAGE_VISITEUR'}=~ s/\s+$//g;
  $form{'MESSAGE_AMI'}=~ s/\s+$//g;
  $form{'MESSAGE_VISITEUR'}.="\n";
  $form{'MESSAGE_AMI'}.="\n";



  ## on applique les changements ##
  $CONF{'CPASSWD'}=crypt($PASSWD,'aa');
  $CONF{'EMAIL_WEBMASTER'}=$form{'EMAIL_WEBMASTER'};
  $CONF{'MAILPROG'}=$form{'MAILPROG'};
  $CONF{'NOTIFY_WEBMASTER'}=$form{'NOTIFY_WEBMASTER'}==1 ? '1':'0';
  $CONF{'NOTIFY_VISITEUR'}=$form{'NOTIFY_VISITEUR'}==1 ? '1':'0';
  $CONF{'MESSAGE_VISITEUR'}=$form{'MESSAGE_VISITEUR'};
  $CONF{'MESSAGE_AMI'}=$form{'MESSAGE_AMI'};



  #### On sauvegarde tout cela dans le fichier de configuration.
  #### on crypte le mot de passe, c'est le crypté qu'on enregistre.
  eval{chmod(0777,"./$DATA_DIR/config.txt");};
  open (CONFW,">./$DATA_DIR/config.txt") ||  (&msg_fin("<img src=\"$PGIMG_URL/$CGI_NAME.gif\" ALT=\"$CGI_NAME\"><br><img src=\"$PGIMG_URL/titre-configuration.gif\"> <br> ERREUR !","<p>&nbsp;</p>\n
                                                         <p><font face=\"Arial\" size=\"2\">Impossible de réécrire <b>$DATA_DIR/config.txt</b> !
                                                         <br> &nbsp; <br> Merci de mettre chmod 777 manuellement à ce fichier... <br>&nbsp;<br>
                                                         Pour plus d\'information sur \"CHMOD\", voyez sur http://www.perl-gratuit.com dans les fiches pratiques/FAQ </font></p><p>&nbsp;</p>"));
  foreach ('CGI_URL','ETAPE2','ETAPE3','CPASSWD','EMAIL_WEBMASTER','MAILPROG','NOTIFY_WEBMASTER','NOTIFY_VISITEUR') {
    print CONFW ($_."\t".$CONF{"$_"}."\n");
  }
  close (CONFW);


  #### On sauvegarde le message pour AMI:
  eval{chmod(0777,"./$DATA_DIR/message_ami.txt");};
  open (MSG_AMI,">./$DATA_DIR/message_ami.txt") ||  (&msg_fin("<img src=\"$PGIMG_URL/$CGI_NAME.gif\" ALT=\"$CGI_NAME\"><br><img src=\"$PGIMG_URL/titre-configuration.gif\"> <br> ERREUR !","<p>&nbsp;</p>\n
                                                         <p><font face=\"Arial\" size=\"2\">Impossible de réécrire <b>$DATA_DIR/message_ami.txt</b> !
                                                         <br> &nbsp; <br> Merci de mettre chmod 777 manuellement à ce fichier... <br>&nbsp;<br>
                                                         Pour plus d\'information sur \"CHMOD\", voyez sur http://www.perl-gratuit.com dans les fiches pratiques/FAQ </font></p><p>&nbsp;</p>"));
  print MSG_AMI $CONF{'MESSAGE_AMI'};
  close (MSG_AMI);

  #### On sauvegarde le message pour VISITEUR:
  eval{chmod(0777,"./$DATA_DIR/message_visiteur.txt");};
  open (MSG_VISITEUR,">./$DATA_DIR/message_visiteur.txt") ||  (&msg_fin("<img src=\"$PGIMG_URL/$CGI_NAME.gif\" ALT=\"$CGI_NAME\"><br><img src=\"$PGIMG_URL/titre-configuration.gif\"> <br> ERREUR !","<p>&nbsp;</p>\n
                                                         <p><font face=\"Arial\" size=\"2\">Impossible de réécrire <b>$DATA_DIR/message_visiteur.txt</b> !
                                                         <br> &nbsp; <br> Merci de mettre chmod 777 manuellement à ce fichier... <br>&nbsp;<br>
                                                         Pour plus d\'information sur \"CHMOD\", voyez sur http://www.perl-gratuit.com dans les fiches pratiques/FAQ </font></p><p>&nbsp;</p>"));
  print MSG_VISITEUR $CONF{'MESSAGE_VISITEUR'};
  close (MSG_VISITEUR);

  


  &msg_fin("<img src=\"$PGIMG_URL/$CGI_NAME.gif\" ALT=\"$CGI_NAME\"><br><img src=\"$PGIMG_URL/titre-configuration.gif\">",
          "<p>&nbsp;</p>\n<p><font face=\"Arial\" size=\"2\">Les paramètres de configuration de $CGI_NAME ont été modifiés avec succès! <br>
           &nbsp; <br>\n <a href=\"$CONF{CGI_URL}\" TARGET=\"_blank\">Voyez ici votre script avec ces dernières modifications</a> $msg </p>
           <center><p align=\"center\"><form action=\"$CONF{CGI_URL}\" METHOD=\"POST\">\n 
           <input type=\"hidden\" name=\"PASSWD\" value=\"$PASSWD\">\n
           <input type=\"submit\" value=\"Cliquez ICI pour continuer !\"><br> &nbsp; <br>
           Voyez la documentation pour l\'utilisation ici :<br>
           <input type=\"submit\" name=\"ORD_info\" value=\"INFORMATIONS...\">
           </form></p></center>\n<p>&nbsp;</p>");

}
################################################
sub admin_info {
my ($msg);

  # on rend le formulaire digeste:
  $FORM=~ s/\</&lt;/gs;
  $FORM=~ s/\>/&gt;/gs;
  $FORM=~ s/\"/&quot;/gs;



$msg=<<_EOM3_;
    <p>&nbsp;</p>
    <p align="center"><font face="Arial" color="#0000FF" size="3"><u><strong>Informations
    sur l'Utilisation de $CGI_NAME :</strong></u></font></p>
    <p><font face="Arial" size="2"><strong><u>Pour accéder à la partie Administration</u></strong>
    de $CGI_NAME, il vous faut vous rendre à l'URL : <br>
    <a href="http://$ENV{SERVER_NAME}$CONF{CGI_URL}?admin">http://$ENV{SERVER_NAME}$CONF{CGI_URL}?admin</a>.<br>\n Mettez cette URL
    dans vos Favoris pour ne pas l'oublier! Vous devrez alors taper votre mot de passe.</font></p>
    
    <p><font face="Arial" size="2"><u><B>Formulaire pour utiliser ce CGI :</B></u><br>
    Vous avez deux façons possibles d'intégrer ce CGI à votre site web :<br>
    - Soit vous faites un lien direct vers l'URL de ce CGI, celui-ci affichera alors le
    formulaire demandant les informations nécessaires.<br>
    - Soit vous créez un formulaire que vous intégrez dans une de vos pages web. Voici le
    code HTML du formulaire à mettre, libre à vous d'en modifier l'apparence, mais attention à ne pas modifier les champs  :<br>
    <B> <form action="http://nulle.part" method="get">
        <TEXTAREA NAME="bidon" ROWS="15" COLS="60" NOWRAP> $FORM </TEXTAREA>
        </form>
    </B><br>
    A noter que vous pouvez remplacer &quot;Valider&quot; par n'importe quoi d'autre si
    vous le souhaitez :-)</font></p>
    
    <p><font face="Arial" size="2"><u><B>Copyright et Licence d'Utilisation :</B></u><br>
    Merci de ne pas enlever le copyright et les mentions de l'auteur du code
    source de ce CGI Perl...<br>
    La licence d'utilisation gratuite de ce script CGI vous est accordée à la condition
    expresse que vous ne fassiez pas de modifications dans le script CGI en vue de supprimer
    ou altérer ce type de mention. Dans le cas contraire, son utilisation est illégale...<br>
    Ceci est un échange correct de services rendus :-)<br>
    &nbsp; <br>
    De plus, <a href="http://www.perl-gratuit.com/register/">merci de vous rendre ici</a>
    afin de me signaler que vous utilisez ce script CGI, et de vous ajouter dans la liste des
    sites utilisateurs, afin de vous citer comme exemple. Vous pourrez vous attendre, par
    ailleurs, à quelques visiteurs supplémentaires...    <br>
    <u>Distribution/revente interdite sans accord de l'auteur.</u></font></p>
    <center><p align=\"center\"><form action=\"$CONF{CGI_URL}\" METHOD=\"POST\">\n 
    <input type=\"hidden\" name=\"PASSWD\" value=\"$PASSWD\">
    <input type=\"submit\" value=\"Retour Menu\"></form></p></center>

   <p>&nbsp;</p>

_EOM3_


  &msg_fin("<img src=\"$PGIMG_URL/$CGI_NAME.gif\" ALT=\"$CGI_NAME\"><br>ADMINISTRATION",$msg);
}
################################################
sub admin_version {
my ($msg);

  $msg=<<_EOM4_;
   <p>&nbsp;</p>
    <p align="center"><u><font face="Arial" color="#0000FF"><strong>Version :</strong></font></u></p>
    <blockquote>
      <p><font face="Arial" size="2">Cette page vous indique <u>en temps réel</u> s'il existe
      une version plus récente de ce CGI sur le serveur de perl-gratuit.com.<br>
      Si vous constatez que c'est le cas, vous pouvez aller voir sur ce serveur le détail des
      ajouts ou corrections éventuelles de ce CGI, et télécharger éventuellement la nouvelle
      version.<br>
      </font></p>
    </blockquote>
    <div align="center"><center><table border="0" cellpadding="2" cellspacing="1">
      <tr>
        <td><font face="Arial" size="2"><b>La version de ce CGI est :</b></font></td>
        <td><font face="Arial" size="2" color="#0000FF"><b>$VERSION</b></font></td>
      </tr>
      <tr>
        <td><p align="center"><font face="Arial" size="2"><b>La dernière version disponible est : </b></font></td>
        <td><img src="$PGIMG_URL/$CGI_NAME\_vnumber.gif" border="0"></td>
      </tr>
    </table>
    </center></div>
    <p align="center"><font face="Arial" size="2">Remarque éventuelle sur la dernière version :<br>
    <img src="$PGIMG_URL/$CGI_NAME\_vnote.gif" border="0"></font></p>

<p align="center"><font face="Arial" size="2"> Vous trouverez la dernière
    version disponible sur <a href="http://www.perl-gratuit.com">www.perl-gratuit.com</a>.</font></p>
    <center><p align=\"center\"><form action=\"$CONF{CGI_URL}\" METHOD=\"POST\">\n 
    <input type=\"hidden\" name=\"PASSWD\" value=\"$PASSWD\">
    <input type=\"submit\" value=\"Retour Menu\"></form></p></center>
    <p>&nbsp;</p>

_EOM4_

  &msg_fin("<img src=\"$PGIMG_URL/$CGI_NAME.gif\" ALT=\"$CGI_NAME\"><br>ADMINISTRATION",$msg);

}
################################################
sub htmlize {
my ($txt_ptr)=@_;
my (%ascii2html)=('â'=>'&acirc;',
                 'à'=>'&agrave;',
                 'ç'=>'&ccedil;',
                 'é'=>'&eacute;',
                 'ê'=>'&ecirc;',
                 'è'=>'&egrave;',
                 'ë'=>'&euml;',
                 'î'=>'&icirc;',
                 'ï'=>'&iuml;',
                 'ô'=>'&ocirc;',
                 'ö'=>'&ouml;',
                 'û'=>'&ucirc;',
                 'ù'=>'&ugrave;',
                 'Â'=>'&Acirc;',
                 'À'=>'&Agrave;',
                 'Ç'=>'&Ccedil;',
                 'É'=>'&Eacute;',
                 'Ê'=>'&Ecirc;',
                 'È'=>'&Egrave;',
                 'Î'=>'&Icirc;',
                 'Ô'=>'&Ocirc;');

  foreach (keys(%ascii2html)) {
    $$txt_ptr=~ s/$_/$ascii2html{$_}/gs;
  }
}
################################################
sub admin_voir_collecte {
my ($line,$sep,$nb,$email,$nom);

  #### quel est le caractère de séparation ? 
  if ($form{'d_sep_type'}==1) {
    $sep="\n";
  } elsif ($form{'d_sep_type'}==2) {
    $sep=' ';
  } elsif ($form{'d_sep_type'}==3) {
    $sep=',';
  } elsif ($form{'d_sep_type'}==4) {
    $sep=';';
  } else {
    &msg_fin("<img src=\"$PGIMG_URL/$CGI_NAME.gif\" ALT=\"$CGI_NAME\"><br>ERREUR !",
             "<p>&nbsp;</p>\n$FONT Le caractère de séparation des adresses est inconnu...</font><p>&nbsp;</p>");
  }

  #### Affichage page
  print ("<html><body bgcolor=\"$CONF{'BGCOLOR'}\">");
  if ($form{'d_collect_type'} eq 'visiteur') {
    print ("Liste des adresses de visiteurs collectées (personées ayant recommandés votre site):<br>\n");
  } elsif ($form{'d_collect_type'} eq 'ami') {
    print ("Liste des adresses d' amis collectées (persones à qui un E-Mail de recommandation a été envoyé):<br>\n");
  } else {
    &msg_fin("<img src=\"$PGIMG_URL/$CGI_NAME.gif\" ALT=\"$CGI_NAME\"><br>ERREUR !",
             "<p>&nbsp;</p>\n$FONT Impossible de reconnaître si vous voulez voir les adresses des visiteurs, ou des amis.</font> <p>&nbsp;</p>");
  }

  # print ("<form action=\"\"> <textarea rows=\"20\" cols=\"70\" wrap=\"virtual\">\n");
  print "<p>&nbsp;</p>\n";
  print "<PRE><TT>" if (($form{'d_sep_type'}==4) || ($form{'d_sep_type'}==1));

  ## Liste :
  if (open (COLLR,"./$DATA_DIR/collecte\_$form{'d_collect_type'}.txt")) {
    $nb='0';
    while ($line=<COLLR>) {
      chomp($line);
      ($email,$nom)=split(/\|/o,$line);

      if ($form{'d_sep_type'}==1) {
        print "$line\n";
      } elsif ($form{'d_sep_type'}==2) {
        print "$nom&lt;$email&gt;; ";
      } elsif ($form{'d_sep_type'}==3) {
        print "$nom&lt;$email&gt;, ";
      } elsif ($form{'d_sep_type'}==4) {
        print "$email\t$nom\n",
      }
      $nb++;
    }
  } else {
    print ("Impossible de lire $DATA_DIR/collecte\_$form{'d_collect_type'}.txt:\n $!");
  }

  #### Fin de la page
  #print ("</textarea><br><b>$nb</b> adresses</form></body></html>\n");
  print "</TT></PRE>" if (($form{'d_sep_type'}==4) || ($form{'d_sep_type'}==1));
  print ("<br>&nbsp;<br><b>$nb</b> adresses</body></html>\n");

  exit(0);
}
################################################
sub admin_stats {
my (@stats,$msg,$max,$d_url,$d_nb,$total);

  ## Lecture des stats
  open (STATR,"./$DATA_DIR/statistiques.log") || (msg_fin("$CGI_DESC","<p>&nbsp;</p>Impossible de lire le fichier
                                                  de stats: $!<br> Vérifiez que vous avez bien mis chmod 777 (droits
                                                  d'écriture) sur ce fichier (si votre serveur est Unix)."));
  @stats=<STATR>;
  close (STATR);


  ## TRI par ordre croissant
  @stats=sort maniere_tri (@stats);

  ## valeur maxi :
  $max=$stats[0];

  ## Total:
  $total=0;
  foreach (@stats) {
    chomp;
    if (~ /(\d+)$/) {
      $total+=$1;
    }
  }

  if ($total<1) {
    &msg_fin("<img src=\"$PGIMG_URL/$CGI_NAME.gif\" ALT=\"$CGI_NAME\"><br> ERREUR !","<p>&nbsp;</p>\n
              <p><font face=\"Arial\" size=\"2\"> Aucune utilisation actuellement. </font></p><p>&nbsp;</p>");
  }



  $msg=<<_EOMSTATS_;
   <p>&nbsp;</p>
    <p align="center"><u><font face="Arial" color="#0000FF"><strong>Statistiques d'utilisation :</strong></font></u></p>
    <blockquote>
      <p><font face="Arial" size="2">Cette section vous indique depuis quelles pages de votre site
      les visiteurs ont utilisé le formulaire de recommandation.<br>
      &nbsp;<br>
      Nombre total d'utilisations de ce CGI: <b>$total</b>
 </font></p>
    </blockquote>
_EOMSTATS_


  $msg.='<div align="center"><center><table border="0">'."\n";
  foreach (@stats) {
    chomp;
    if (~ /^([^\t]+)\t(\d+)/) {
      $d_url=$1;
      $d_nb=$2;
      $msg.="<tr>\n";
      $msg.="  <td><font face=\"Arial\" size=\"1\">$d_url&nbsp;</font></td>\n";
      $msg.="  <td><font face=\"Arial\" size=\"2\"><img src=\"$PGIMG_URL/barre-bleue.gif\" height=\"10\" width=\"".int(300*$d_nb/$total)."\"> $d_nb <i>(". int(0.5+($d_nb/$total)*100) ." %)</i></font></td>\n";
      $msg.="</tr>\n";
    }
  }
  $msg.="</table></center></div>\n";
  $msg.="<center><p align=\"center\"><form action=\"$CONF{CGI_URL}\" METHOD=\"POST\">\n 
        <input type=\"hidden\" name=\"PASSWD\" value=\"$PASSWD\">
        <input type=\"submit\" name=\"ORD_stats_reset\" value=\"Remettre à zéro les statistiques\"><br>&nbsp;<br>
        <input type=\"submit\" value=\"Retour Menu\">
        </form></p></center>";


  $msg.="<p>&nbsp;</p>\n";

  &msg_fin("<img src=\"$PGIMG_URL/$CGI_NAME.gif\" ALT=\"$CGI_NAME\"><br>ADMINISTRATION",$msg);




  foreach (@stats) { print "$_<br>\n";} ; exit;

}
################################################
sub maniere_tri {
  my ($d1,$d2);
  if ($a=~ /(\d+)\n*$/) {$d1=$1;}
  if ($b=~ /(\d+)\n*$/) {$d2=$1;}
  return ($d2 <=> $d1);
}
################################################
sub admin_stats_reset {

  open (STATSRAZ,">./$DATA_DIR/statistiques.log");
  close(STATSRAZ);
  eval{chmod(0777,"./$DATA_DIR/statistiques.log");};

  &msg_fin("<img src=\"$PGIMG_URL/$CGI_NAME.gif\" ALT=\"$CGI_NAME\"><br>ADMINISTRATION",
          "<p>&nbsp;</p>\n
           <center><p align=\"center\">
           <font face=\"Arial\" size=\"2\">Les statistiques ont été réinitialisées avec succès !</font><br>
           <form action=\"$CONF{CGI_URL}\" METHOD=\"POST\">\n 
           <input type=\"hidden\" name=\"PASSWD\" value=\"$PASSWD\">\n
           <input type=\"submit\" value=\"Cliquez ICI pour continuer\"><br> &nbsp; <br>
           </form></p></center>\n<p>&nbsp;</p>");
}
################################################
################################################
################################################


