#!/usr/bin/perl use strict; use vars qw(%form %CONF $VERSION $DATA_DIR $FONT); print "Content-type: text/html\n\n" unless ($ENV{'QUERY_STRING'}=~ /^referer\=/); # On affiche l'en-tête HTML indispensable ##### CONFIG ################################### $VERSION='4.0'; # 30/04/2003 $DATA_DIR='pg-agentsecret-data'; ################################################ ############################################################################## # Ceci est un script CGI en Perl, réalisé par Sébastien Joncheray. # # Vous pouvez l'utiliser gratuitement, à la condition expresse et # # non négociable de ne pas le modifier du tout, ni de le réutiliser/recopier # # en tout ou partie, revendre, louer, redistribuer, etc. # # Un droit d'utilisation gratuite vous est accordé. Tous les autres droits # # sont réservés. Toute contrefacon fait l'objet de poursuites. Nous vous # # fournissons gratuitement ce script de qualité,merci de respecter le travail# # de l'auteur. Pour nous contacter si besoin, voyez sur www.perl-gratuit.com # ############################################################################## # IL EST PAR-DESSUS TOUT INTERDIT DE MODIFIER LES MENTIONS DE L'AUTEUR # # (COPYRIGHT, SITE DE L'AUTEUR,ETC). CELA EST LA CONTREPARTIE DE LA GRATUITé # ############################################################################## # De nombreux autres scripts perl en francais, sont disponibles gratuitement # # sur notre site : http://www.perl-gratuit.com # # # # En cas de difficultés d'installations veuillez consultez les FAQs et autres# # sections d'aide sur www.perl-gratuit.com, avant d'envoyer un E-Mail SVP... # ############################################################################## # Tous droits de modification/distribution/vente strictement réservés # ############################################################################## %form=&receive_getpost; &init; #### ENVOI DE L'E-MAIL D'ABORD #### my %tmpl=(); # on va stocker les informations dedans # date + heure $tmpl{'date'}=&getdate; # IP: $tmpl{'ip'}=$ENV{'REMOTE_ADDR'}; # nom d'hote du visiteur : if (($ENV{'REMOTE_HOST'} ne '') && ($ENV{'REMOTE_HOST'} ne $ENV{'REMOTE_ADDR'})) { $tmpl{'remote_host'}=$ENV{'REMOTE_HOST'}; } else { $tmpl{'remote_host'}=&convert_ip($ENV{'REMOTE_ADDR'}) || 'Non Résolu'; } # page visitée if ($ENV{'HTTP_REFERER'} ne '') { $tmpl{'http_referer'}="".&formfield_encode($ENV{'HTTP_REFERER'}).""; } else { $tmpl{'http_referer'}='?'; } # page référante if ($form{'referer'} ne '') { $tmpl{'http_referer_referer'}="".&formfield_encode($form{'referer'}).""; } else { $tmpl{'http_referer_referer'}='?'; } # Navigateur $tmpl{'browser'}=$ENV{'HTTP_USER_AGENT'}; if ($ENV{'HTTP_USER_AGENT'}=~ /MSIE/i) { $tmpl{'browser'}.="(Microsoft Internet Explorer)"; } elsif ($ENV{'HTTP_USER_AGENT'}=~ /Mozilla/i) { $tmpl{'browser'}.="(Netscape)"; } # cookies: if (exists($form{'cookie_ok'})) { $tmpl{'cookie_ok'}=$form{'cookie_ok'}?'Oui':'Non'; } else { $tmpl{'cookie_ok'}='?'; } # résolution: if (exists($form{'scr_w'})) { $tmpl{'scr_w'}=int($form{'scr_w'}); $tmpl{'scr_h'}=int($form{'scr_h'}); } else { $tmpl{'scr_w'}=$tmpl{'scr_h'}='?'; } # couleurs if (exists($form{'scr_c'})) { $form{'scr_c'}=int($form{'scr_c'}); if ($form{'scr_c'} == 8) { $tmpl{'scr_c'}="256 couleurs (8 bits)"; } elsif ($form{'scr_c'} == 16) { $tmpl{'scr_c'}="65 000 couleurs (16 bits)"; } elsif ($form{'scr_c'} == 24) { $tmpl{'scr_c'}="True Color (24 bits)"; } elsif ($form{'scr_c'} == 32) { $tmpl{'scr_c'}="True Color (32 bits)"; } else { $tmpl{'scr_c'}="$form{scr_c} bits"; } } else { $tmpl{'scr_c'}='?'; } foreach ('date','ip','remote_host','browser','cookie_ok','scr_w','scr_h','scr_c') { $tmpl{$_}=&formfield_encode($tmpl{$_}); } my $message=qq|

$FONTBonjour webmaster !
 
PG-AgentSecret vous signale une visite sur votre site :

$FONTDate-heure : $FONT$tmpl{'date'}
$FONTPage visitée : $FONT$tmpl{'http_referer'}
$FONTPage référante : $FONT$tmpl{'http_referer_referer'}
$FONTAdresse IP du visiteur :     $FONT$tmpl{'ip'}
$FONTNom d'hôte du visiteur : $FONT$tmpl{'remote_host'}
$FONTNavigateur utilisé : $FONT$tmpl{'browser'}
$FONTCookies acceptés : $FONT$tmpl{'cookie_ok'}
$FONTRésolution d'écran : $FONT$tmpl{'scr_w'} x $tmpl{'scr_h'}
$FONTCouleurs écran : $FONT$tmpl{'scr_c'}

$FONT Signé : votre Agent Secret

PG-AgentSecret. Disponible sur http://www.perl-gratuit.com
|; ## On envoi l'E-Mail ! &send_email($CONF{'EMAIL_WEBMASTER'},$CONF{'EMAIL_WEBMASTER'},'[Votre Agent Secret]',$message); ## On envoie l'image (Format XBM) : print "Content-Type: image/x-xbitmap\n\n"; print ("\#define count_width 8\n#define count_height 1\n"); # Déclaration taille de l'image : 8 x 1 pixels if ($CONF{'PIXEL_ISWHITE'}) { # Affichage image XBM(pixel blanc ou noir): print ("static char count_bits[] = {\n0x00\n};\n"); # ecriture du début du tableau contenant les valeurs des pixels } else { print ("static char count_bits[] = {\n0xff\n};\n"); # ecriture du début du tableau contenant les valeurs des pixels } #print ( join "
\n", map {"$_:$form{$_}"} sort keys %form ); 1; ################### FIN ! ###################### ################################################ ################################################ #### ATTENTION, réutilisation/recopie du #### #### code source interdite et illégale #### ################################################ sub receive_getpost { # 2002-09-20 my (%postdata,$data,$pair); $data=''; if ($ENV{'REQUEST_METHOD'} eq 'POST') { my $len=$ENV{'CONTENT_LENGTH'}; if (read(STDIN,$data,$len) != $len) {print ("

error reading post data

"); die("Error reading 'POST' data\n"); } } elsif ($ENV{'REQUEST_METHOD'} eq 'GET') { $data=$ENV{'QUERY_STRING'}; } foreach $pair (split('&',$data)) { my ($name,$value)=split('=',$pair); $name=~ tr/\0//d; $value=~ tr/\0//d; $name =~ tr/+/ /; $name =~ s/%([0-9a-fA-F]{2})/chr hex($1)/ge; $value=~ tr/+/ /; $value=~ s/%([0-9a-fA-F]{2})/chr hex($1)/ge; $postdata{$name}=$value; } return %postdata; } ################################################ #### ATTENTION, réutilisation/recopie du #### #### code source interdite et illégale #### ################################################ sub formfield_encode { # 27/01/2002 my ($s)=@_; $s=~ s/&/&/gso; $s=~ s//>/gso; $s=~ s/"/"/gso; $s; } ################################################ #### ATTENTION, réutilisation/recopie du #### #### code source interdite et illégale #### ################################################ sub verify_email { # 29-06-2002 my ($email)=@_; if ($email eq '') { return(0);} if ( ($email =~ /(\s)|(@.*@)|(\.\.)|(@\.)|(^\.)/) || (($email !~ /^[a-zA-Z0-9\-\_\.]+\@localhost$/) && ($email !~ /^[a-zA-Z0-9\-\_\.]+\@(\[?)[a-zA-Z0-9\-\.]+\.([a-zA-Z0-9]+)(\]?)$/)) ) { return(0); } else { return(1); } } ################################################ #### ATTENTION, réutilisation/recopie du #### #### code source interdite et illégale #### ################################################ sub send_email { # Sous-programme pour envoyer un E-Mail my ($from,$to,$subject,$message)=@_; # Récupération des paramètres du mail à envoyer $from=~ s/\s/ /gs; # anti-spam $to=~ s/\s/ /gs; # anti-spam $subject=~ s/\s/ /gs; # anti-spam if ($^O=~ /mswin/i) { print "
$message
Ce script n'est pas fait pour fonctionner sur serveur windows! mail non envoyé!
" and return;} open (MAIL, "|$CONF{'MAILPROG'} -t -oi -oem");# Appel du programme sendmail (PIPE) print MAIL ("Content-Type: text/html\n"); print MAIL ("MIME-Version: 1.0\n"); 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... } ################################################ #### ATTENTION, réutilisation/recopie du #### #### code source interdite et illégale #### ################################################ sub getdate { my (@days)=('Dimanche','Lundi','Mardi','Mercredi','Jeudi','Vendredi','Samedi'); # On récupère l'heure locale du serveur+décalage horaire my ($sec,$min,$hour,$numday,$month,$year,$weekday,$yearday,$isdst) =(localtime(time()+3600*$CONF{'TIME_OFFSET'})); # 0 1 2 3 4 5 6 7 8 $month++; # Les mois sont renvoyés de 0 à 11 $year+=1900; # L'années est donnée par rapport à 1900, et on veut pas de bogue de l'an 2000 ! return (sprintf ("%s %02d / %02d / %d - %02d h %02d mn %02d s",$days[$weekday],$numday,$month,$year,$hour,$min,$sec)); } ################################################ #### ATTENTION, réutilisation/recopie du #### #### code source interdite et illégale #### ################################################ sub convert_ip { my ($ip)=@_; my (@bytes,$name,$packaddr); # Déclaration des variables utilisées $ip =~ s/^\s+|\s+$//g; # on supprime des espaces éventuels en début et fin de l'IP @bytes = split (/\./, $ip); # on range dans un tableau, les 4 nombres séparés par des points de l'IP $packaddr = pack ("C4", @bytes); # on encode l'adresse IP, en un entier compacté ($name,undef) =gethostbyaddr ($packaddr, 2); # Résolution de l'IP. seul le nom d'hote nous intéresse, on ignore le reste return $name; } ################################################ #### ATTENTION, réutilisation/recopie du #### #### code source interdite et illégale #### ################################################ ################################################ ####### ####### ####### ADMINISTRATION ####### ####### ####### ################################################ sub init { %CONF=(); $CONF{'CGI_NAME'}='PG-AgentSecret'; # Nom du CGI: NE PAS CHANGER SINON ERREURS...(noms images) $CONF{'CGI_DESC'}="Notification de visite par E-Mail"; # Description du CGI: NE PAS CHANGER SINON ERREURS... $CONF{'IMGCGI_URL'}='http://img-scripts.perl-gratuit.com'; $CONF{'SERVER_NAME'}=($ENV{'SERVER_NAME'} || $ENV{'HTTP_HOST'}); $CONF{'CGI_URL'}=($ENV{'REQUEST_URI'} || $ENV{'SCRIPT_NAME'}); $CONF{'CGI_URL'}=~ s/\?.*//gs; $CONF{'CGI0_URL'}="http://".$CONF{'SERVER_NAME'}.$CONF{'CGI_URL'}; # URL complète, à utiliser pour visiteurs only (valeur par défaut) $FONT=""; ## Vérif que le répertoire des données existe ## if (! -e "$DATA_DIR") { &msg_fin("ERREUR !","Pour faire fonctionner ce CGI, il vous faut créer, dans le répertoire où se trouve ce script, le sous-répertoire $DATA_DIR
N'oubliez pas de lui attribuer CHMOD 777 (tous droits de lecture,écriture,éxécution) si votre serveur est de type Unix.
Pour plus d'informations sur 'CHMOD', voyez sur notre site dans les fiches pratiques/FAQ."); } ## Vérif que le fichier de configuration existe ## if (! -e "$DATA_DIR/config.dat") { open(TESTW,">$DATA_DIR/config.dat") || (&msg_fin("ERREUR !","Impossible de créer le fichier $DATA_DIR/config.dat : $!
Vérifiez le CHMOD 777 du répertoire $DATA_DIR")); close(TESTW); eval{ chmod(0777,"$DATA_DIR/config.dat");}; &msg_fin("Auto-installation",qq|

Bienvenue dans l'auto-installation de "$CONF{'CGI_NAME'}" !

$FONT Vous éxécutez ce script CGI Perl pour la première fois. Afin de faciliter la mise en place de ce script sur votre site, l'installation-configuration est guidée et automatisée par étapes successives. Un fichier de configuration va être créé, un choix de mot de passe administrateur vous sera demandé, puis une page de choix de configuration vous sera présentée. Nous vous conseillons fortement ensuite de consulter la section de documentation inclue.
 
Toute cette procédure vous permet une mise en place aisée, sans besoin d'intervenir manuellement dans les fichiers et répertoires de données de ce script.

$FONTVeuillez maintenant actualiser cette page pour continuer SVP...
(cliquez sur le bouton "Actualiser" de votre navigateur)

|); } ## Vérif que le fichier mot de passe existe ## if (! -e "$DATA_DIR/passwd.dat") { open(TESTW,">$DATA_DIR/passwd.dat") || (&msg_fin("ERREUR !","Impossible de créer le fichier $DATA_DIR/passwd.dat : $!
Vérifiez le CHMOD 777 du répertoire $DATA_DIR")); close(TESTW); eval{ chmod(0777,"$DATA_DIR/passwd.dat");}; &msg_fin("Auto-installation",qq|

Conditions d'utilisation gratuite :

$FONT Au bas des pages générées par ce script vous verrez un copyright et la mention de l'auteur (nom et lien vers notre site).
Un droit d'utilisation gratuite de ce script CGI Perl vous est accordé à la condition expresse de ne pas le modifier du tout (y compris et tout particulièrement ces copyrights et mentions de l'auteur), ni de le réutiliser/recopier en tout ou partie, revendre, louer, redistribuer, etc. Tous les droits autres que l'utilisation gratuite sont réservés (nous contacter au besoin).
 
Tout simplement, merci de respecter le travail de l'auteur afin que nous puissions continuer à vous proposer de tels scripts.

$FONTVeuillez maintenant actualiser cette page pour continuer SVP...
(cliquez sur le bouton "Actualiser" de votre navigateur)

|); } ## Vérif que le répertoire des données est protégé ## if (!-e "$DATA_DIR/.htaccess") { open(HTW,">$DATA_DIR/.htaccess") || (&msg_fin("ERREUR !","Impossible de créer le fichier $DATA_DIR/.htaccess : $!
Vérifiez le CHMOD 777 du répertoire $DATA_DIR")); print HTW "\norder deny,allow\ndeny from all\n\n"; close(HTW); eval{ chmod(0666,"$DATA_DIR/.htaccess");}; &msg_fin("AUTO-PROTECTION DES DONNEES",qq|

Sécurité de votre répertoire des données

$FONT Certains serveurs peu ou mal sécurisés permettent l'accès, le listing et la consultation des fichiers à l'intérieur de la section "cgi-bin" des sites hébergés.
 
Afin d'empêcher tout accès par la navigateur dans votre répertoire des données $DATA_DIR un fichier spécial ".htaccess" vient d'être automatiquement créé avec les directives-serveurs adéquates.
 
Selon votre serveur, il se peut que vous ne puissiez pas voir le .htaccess par FTP. Dans ce cas, consultez la page d'informations correspondante dans la section Fiches Pratiques de notre site.

$FONTVeuillez maintenant actualiser cette page pour continuer SVP...
(cliquez sur le bouton "Actualiser" de votre navigateur)

|); } ## Chargement configuration open (CONFR,"$DATA_DIR/config.dat") || &msg_fin("ERREUR !", "Impossible de lire le fichier $DATA_DIR/config.dat: $!"); eval{flock(CONFR,2);}; while () { chomp($_); if ( ($_ ne '') && ($_!~ /^#/) && ($_=~ /^([^\s]+)\s+(.*)/) ) { $CONF{"$1"}="$2"; $CONF{"$1"}=~ s/\|\\n\|/\n/gs; } } close (CONFR); ## Chargement mot de passe: open (PASSR,"$DATA_DIR/passwd.dat") || (&msg_fin("ERREUR !","Impossible de lire le fichier $DATA_DIR/passwd.dat: $!")); $CONF{'CPASSWD'}=; close(PASSR); chomp($CONF{'CPASSWD'}); ## Vérif mot de passe fixé if ($CONF{'CPASSWD'} eq '') { (($form{'ORDadmin_changepass_do'} eq '') && (&admin_changepass) ) || (&admin_changepass_do); } ## OPTIONNAL STUFF : $CONF{'theform'}=qq| |; ## L'administrateur veut entrer ? ## if($ENV{'QUERY_STRING'} eq 'admin') { &msg_fin("ENTREE ADMINISTRATEUR",qq|
Mot de Passe :
 
|); } ## L'administrateur est déjà entré ## if ($form{'PASSWD'}) { # On vérifie le mot de passe s'il y en a un if (crypt($form{'PASSWD'},'aa') ne $CONF{'CPASSWD'}) { sleep(3); &msg_fin ("ACCES ADMINSTRATEUR REFUSE","Le mot de passe n'est pas correct !
Retournez à la page précédente pour retenter...
Si vous ne parvenez pas à vous souvenir de votre mot de passe, une seule chose à faire : par FTP, supprimez le fichier "$DATA_DIR/passwd.dat" puis rendez-vous à l'URL de ce script pour fixer un nouveau mot de passe."); } ## Vérif paramétrage effectué ## if (!$CONF{'config_param'}) { ( ($form{'ORDadmin_param_do'} eq '') && (&admin_param) ) || (&admin_param_do); } &admin; exit(0); } ## sinon retour à l'utilisation publique normale } ################################################ ################################################ sub msg_fin { my ($titre,$tip)=@_; my ($d1,$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 ! Merci de votre compréhension. # print qq| $CONF{CGI_NAME} - Administration

 

$CONF{'CGI_NAME'} : $titre

 

$tip

 

Script CGI Perl gratuit disponible sur perl-gratuit.com. v$VERSION ©
|; exit(0); ## ATTENTION, si vous modifiez ou supprimez les lignes ci-dessus, 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 ! Merci de votre compréhension. # } ################################################ #### ATTENTION, réutilisation/recopie du #### #### code source interdite et illégale #### ################################################ sub admin { if ($form{'ORDadmin_changepass'}) { &admin_changepass; } elsif ($form{'ORDadmin_changepass_do'}) { &admin_changepass_do; } elsif ($form{'ORDadmin_version'}) { &admin_version; } elsif ($form{'ORDadmin_info'}) { &admin_info; } elsif ($form{'ORDadmin_param'}) { &admin_param; } elsif ($form{'ORDadmin_param_do'}) { &admin_param_do; } else { &admin_menu; } exit(0); } ################################################ #### ATTENTION, réutilisation/recopie du #### #### code source interdite et illégale #### ################################################ sub admin_menu { my (%tmpl)=(); $tmpl{'EMAIL_WEBMASTER'}=$CONF{'EMAIL_WEBMASTER'}; $tmpl{'MAILPROG'}=$CONF{'MAILPROG'}; $tmpl{'couleur_pixel'}= $CONF{'PIXEL_ISWHITE'} ? 'Blanc' : 'Noir'; $tmpl{'TIME_OFFSET'}=$CONF{'TIME_OFFSET'}>=0 ? "+$CONF{'TIME_OFFSET'}" : "$CONF{'TIME_OFFSET'}"; &msg_fin("Menu Administration",qq|
Vos paramètres :
$FONT E-Mail administrateur : $FONT $tmpl{EMAIL_WEBMASTER}
$FONT Emplacement sendmail : $FONT $tmpl{MAILPROG}
$FONT Couleur du pixel affiché : $FONT $tmpl{couleur_pixel}
$FONT Décalage horaire : $FONT $tmpl{TIME_OFFSET} h

Menu :
Modifier vos paramètres.
Modifier votre mot de passe.
Dernière version disponible.
DOCUMENTATION / INFORMATIONS A LIRE
|); } ################################################ #### ATTENTION, réutilisation/recopie du #### #### code source interdite et illégale #### ################################################ sub admin_changepass { &msg_fin("Modification du mot de passe Administrateur", "

$FONT Choisissez votre nouveau mot de passe Administrateur de ce script (4 à 8 caractères).

$FONT Nouveau mot de passe :
$FONT Nouveau mot de passe (confirmation) :
\n"); } ################################################ #### ATTENTION, réutilisation/recopie du #### #### code source interdite et illégale #### ################################################ sub admin_changepass_do { if (length($form{'new_passwd'}) < 4) { &msg_fin("ERREUR !","Le mot de passe $form{new_passwd} fait moins de 4 caractères, ce qui est dangereux !");} if ($form{'new_passwd'} ne $form{'new_passwdbis'}) { &msg_fin("ERREUR !","Les deux cases de mot de passe ne sont pas identiques");} $CONF{'CPASSWD'}=crypt($form{'new_passwd'},'aa'); open (PASSW,">$DATA_DIR/passwd.dat") || (&msg_fin("ERREUR !","Impossible d'enregistrer dans le fichier $DATA_DIR/passwd.dat ($!), veuillez vérifier le chmod 777 du répertoire $DATA_DIR: $!")); print PASSW "$CONF{'CPASSWD'}"; close (PASSW); eval{ chmod(0666,"$DATA_DIR/passwd.dat");}; $form{'PASSWD'}=$form{'new_passwd'}; &msg_fin("Mot de passe Administrateur modifié", "

$FONT Le mot de passe pour l'accès Administrateur a été modifié et est maintenant $form{'new_passwd'}. Attention, 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.

\n"); } ################################################ #### ATTENTION, réutilisation/recopie du #### #### code source interdite et illégale #### ################################################ sub admin_param { my (%tmpl); if (!$CONF{'config_param'}) { $CONF{'PIXEL_ISWHITE'}=0; $CONF{'TIME_OFFSET'}=0; } $tmpl{'CGI0_URL'} =&formfield_encode($CONF{'CGI0_URL'}); $tmpl{'EMAIL_WEBMASTER'}=&formfield_encode($CONF{'EMAIL_WEBMASTER'}); $tmpl{'MAILPROG'} =&formfield_encode($CONF{'MAILPROG'}); $tmpl{'PIXEL_ISWHITE_ON'} =$CONF{'PIXEL_ISWHITE'} ? ' checked' : ''; $tmpl{'PIXEL_ISWHITE_OFF'}=$CONF{'PIXEL_ISWHITE'} ? '' : ' checked'; {## Décalage horaire ## my ($hh,$mm)=(localtime(time()))[2,1]; $tmpl{'curtime'}=sprintf("%02d h %02d mn",$hh,$mm); for my $i (-8..8) { $tmpl{'TIME_OFFSET'}.=""; } }## /Décalage horaire ## ## Recherche des emplacements de sendmail, aux endroits classiques sur Unix/Linux foreach ('/usr/lib/sendmail','/usr/bin/sendmail','/bin/sendmail','/usr/sbin/sendmail','/usr/local/bin/sendmail','/usr/local/lib/sendmail') { if ((-e $_) && (-x $_)) { $tmpl{'guessed_sendmail'}.="$_
"; } } if ($tmpl{'guessed_sendmail'} eq'') { $tmpl{'guessed_sendmail'}='Aucun';} &msg_fin("Configuration",qq|
$FONTURL complète exacte de ce script :
Merci de vérifier que l'URL indiquée ici est correcte. C'est celle-ci qui sera utilisée pour les visiteurs.
$FONTE-Mail Webmaster :
Tapez ici votre adresse E-Mail
$FONTEmplacement de sendmail :
Indiquez ici l'emplacement du programme sendmail sur votre serveur. A noter que 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.

$FONTEmplacement(s) détecté(s):
$tmpl{'guessed_sendmail'}
$FONTCouleur du pixel renvoyé :
Le code HTML (inséré dans les pages de votre choix pour vous avertir des visites) génère une image minuscule de 1 point (1 pixel). Celle-ci peut être blanche ou noire.
$FONT Blanc
Noir
$FONTDécalage horaire :
Afin de connaître le décalage horaire, merci de sélectionner votre heure locale dans le menu déroulant.

$FONTHeure-serveur actuelle:
$tmpl{curtime}
|); } ################################################ #### ATTENTION, réutilisation/recopie du #### #### code source interdite et illégale #### ################################################ sub admin_param_do { # CGI0_URL if ($form{'CGI0_URL'} eq '') { &msg_fin("ERREUR !","Vous n'avez pas indiqué l'URL de ce script.");} if ($form{'CGI0_URL'}!~ m|^https*://|) { &msg_fin("ERREUR !","L'URL de ce script doit commencer par http:// ou https://");} $CONF{'CGI0_URL'}=$form{'CGI0_URL'}; # EMAIL_WEBMASTER if (!&verify_email($form{'EMAIL_WEBMASTER'})) { &msg_fin("ERREUR !","Adresse E-Mail webmaster invalide
 
Merci de corriger...");} $CONF{'EMAIL_WEBMASTER'}=$form{'EMAIL_WEBMASTER'}; # MAILPROG if ($form{'MAILPROG'} eq '') { &msg_fin("ERREUR !","Vous n'avez pas indiqué l'emplacement de sendmail. Ceci est indispensable pour les envois d'E-Mails."); } if (!-e "$form{MAILPROG}") { &msg_fin("ERREUR !","Emplacement de sendmail incorrect");} $CONF{'MAILPROG'}=$form{'MAILPROG'}; # PIXEL_ISWHITE $CONF{'PIXEL_ISWHITE'}=int($form{'PIXEL_ISWHITE'}); # TIME_OFFSET $CONF{'TIME_OFFSET'}=int($form{'TIME_OFFSET'}); # SAVE IT'S DONE: $CONF{config_param}=1; ## ENREGISTREMENTS PARAMS ## eval{chmod(0777,"$DATA_DIR/config.dat");}; open (CONFW,">$DATA_DIR/config.dat") || (&msg_fin("ERREUR !","Impossible de réécrire $DATA_DIR/config.dat : $!
Merci de mettre chmod 777 manuellement à ce fichier et au répertoire... ")); foreach ('config_param','CGI0_URL','EMAIL_WEBMASTER','MAILPROG','PIXEL_ISWHITE','TIME_OFFSET') { $CONF{$_}=~ s/\n/\|\\n\|/gs; print CONFW ("$_\t$CONF{$_}\n"); } close (CONFW); ## /ENREGISTREMENTS PARAMS ## &msg_fin("Configuration", "

$FONT Paramètres de configuration enregistrés avec succès !

"); } ################################################ #### ATTENTION, réutilisation/recopie du #### #### code source interdite et illégale #### ################################################ sub admin_version { my %tmpl=(); $tmpl{'CGI_NAME_fted'}=lc($CONF{CGI_NAME}); # formatted $tmpl{'CGI_NAME_fted'}=~ s/\s/_/gs; &msg_fin("Dernière version disponible",qq|

Cette page vous indique en temps réel s'il existe une version plus récente de ce script CGI Perl sur notre site perl-gratuit.com. Si vous constatez que c'est le cas, vous pouvez aller y consulter le détail des ajouts ou corrections éventuelles de ce CGI, et télécharger/installer la nouvelle version.

Version utilisée ici : $VERSION
Dernière version disponible :  

$FONT Remarque éventuelle sur la dernière version :

 
Vous trouverez la dernière version disponible sur Perl-Gratuit.com

|); } ################################################ #### ATTENTION, réutilisation/recopie du #### #### code source interdite et illégale #### ################################################ sub admin_info { my (%tmpl)=(); $tmpl{'form'}=&formfield_encode($CONF{'theform'}); &msg_fin("Documentation / Informations à lire",qq|

Informations sur l'utilisation de $CONF{CGI_NAME} :

Accès à l'administration :
Pour accéder à la section d'administration de $CONF{CGI_NAME} rendez-vous à l'URL exacte :
http://$ENV{SERVER_NAME}$CONF{CGI_URL}?admin
Mettez cette URL dans vos favoris pour ne pas l'oublier ! Votre mot de passe sera ensuite demandé.

Intégration dans votre site :
Code HTML à insérer dans la (ou les) page(s) HTML de votre choix (de préférence tout en haut sous <body>) :
A chaque fois qu'un visiteur se rendra sur une page contenant ce code HTML, vous serez prévenu par un E-Mail contenant diverses informations sur cette visite. Particulièrement utile concernant les pages protégées...

NOTES :
- Etant donné que ce script vous envoie un E-Mail à chaque fois que la (ou les) page(s) contenant le code HTML ci-dessus est visitée, vous risquez d'être submergé d'E-Mails de PG-AgentSecret si vous avez un très fort trafic. Donc, attention à utiliser cela avec modération.
- LIMITES : Ce script ne peut pas donner les adresses E-mail de vos visiteurs. Plus précisément aucun script ne le peut. Personne ne peut connaître l'adresse E-Mail d'un visiteur à son insu. Le mieux est de demander aux visiteurs de s'inscrire à votre mailing-liste...
(nous proposons également sur notre site des scripts CGI Perl de gestion de mailing-liste)

Copyright - Licence d'utilisation :
Un droit d'utilisation gratuite de ce script CGI Perl vous est accordé à la condition expresse de ne pas le modifier du tout, ni de le réutiliser ou recopier en tout ou partie, revendre, louer, redistribuer, etc. Tous les droits autres que l'utilisation gratuite sont réservés (nous contacter au besoin). Toute contrefaçon ou autre violation des droits de propriété intellectuelle fait l'objet de poursuites. IL EST PAR-DESSUS TOUT INTERDIT DE MODIFIER LES MENTIONS DE L'AUTEUR (COPYRIGHT, NOM ET LIEN VERS LE SITE DE L'AUTEUR,ETC). CECI EST LA CONTREPARTIE DE LA GRATUITÉ.
Tout simplement, merci de respecter le travail de l'auteur... afin que nous puissions continuer à vous proposer de tels scripts CGI Perl.

Nous proposons également des scripts PRO :
En plus des scripts gratuits disponibles sur Perl-Gratuit.com, nous proposons des scripts PRO dédiés à un usage professionnel dont les principales caractéristiques sont :
- aucune mention de l'auteur ni copyright visible par le visiteur.
- personnalisation complète de l'affichage pour une bonne intégration à votre site.
- assistance, support technique privilégié et ultra-prioritaire, documentation complète en ligne.
- installation offerte sur demande.
- nombreuses fontionnalités supplémentaires, etc...
Pour consulter les scripts PRO disponibles et en acquérir éventuellement une licence, merci de vous rendre sur notre autre site: Perl-PRO.com

|); } ################################################ ################################################