#!/usr/bin/perl ######################################################################### ## ## ## SCRIPT : ## ## ## ## PERL-LIVRE D'OR Version 3.3 ## ## Pour Unix avec perl5 ## ## Créé le 06/10/2000 Modifié le 19/01/2002 ## ## ## ######################################################################### ## ## ## Ce script est en téléchargement gratuit sur ## ## http://www.perl-fr.com et est en utilisation libre ! ## ## ## ## Il est strictement interdit de modifier les scripts fournis ## ## sans l'accord de leur auteur ! ## ## Il est strictement interdit de diffuser les scripts de ## ## quelques manières que se soit ! ## ## Si vous souhaitez enlever le lien vers perl-fr.com vous ## ## pouvez acheter une licence d'ulisation à: ## ## http://www.perl-fr.com/boutique/ ## ## ## ## l'achat comprendra alors egalement la partie administration. ## ## ## ## Pour toutes questions: ## ## http://www.perl-fr.com/forum/ ## ## ## ######################################################################### ## NE RIEN CHANGER CI DESSOUS !!! ## ######################################################################### require "configuration.pl"; $ip = "$ENV{'REMOTE_ADDR'}"; $sys = "$ENV{'HTTP_USER_AGENT'}"; $page = "$cgi"; $command = "$ENV{'QUERY_STRING'}"; read(STDIN,$temp,$ENV{'CONTENT_LENGTH'}); @pairs=split(/&/,$temp); foreach $item(@pairs) { ($mots,$content)=split(/=/,$item,2); $content =~ tr/+/ /; $content =~ s/%(..)/pack("c",hex($1))/ge; $content =~ s/<([^>]|\n)*>//g; $content =~ s///g; if ($censure eq 'oui') { open (CENSURE, "$cens"); @lesmots = ; close (CENSURE); $nonnon = $lesmots[0]; @motscens = split(/\|/,$nonnon); foreach $mots (@motscens) { $content =~ s/$mots/%£\@%*/gi; } } $champs{$mots}=$content; } $hum=$champs{humeur}; $nom=$champs{nom}; $url=$champs{url}; $mess=$champs{message}; $mess =~ s/\r\n/
/g; $ville=$champs{ville}; $pays=$champs{pays}; $mail=$champs{email}; sub time { ($sec,$min,$heure,$jour,$mois,$an) = localtime(time); $mois++; $an+=1900; if ($jour < 10) {$jour='0'.$jour} if ($mois < 10) {$mois='0'.$mois} return ("$jour$mois$an$heure$min$sec"); } $time=&time; sub date { ($sec,$min,$heure,$jour,$mois,$an) = localtime(time); $mois++; $an+=1900; if ($jour < 10) {$jour='0'.$jour} if ($mois < 10) {$mois='0'.$mois} return ("$jour/$mois/$an"); } $date=&date; if ($command eq 'ajout') { &ajout; } else { &voir; } sub affichage { # $cop = "

Script téléchargé gratuitement sur Perl-fr.com
\©Tous droits réservés Perl-fr.com
"; # © print "Content-type: text/html\n\n"; open(PAGEHTML,"$p_livre"); while (){ $template .= $_; } close(PAGEHTML); $template =~ s/\%%%LIVRE%%%/$aff/g; $template =~ s/\%%%NB%%%/$r/g; $template =~ s/\%%%NAV%%%/$nav$cop/g; print $template; } sub voir { open (ct, "$data"); @ct= reverse ; close (ct); $r = @ct; if (!$champs{suite}) { #if for ($n = 0; $n < $max; $n++) { #for if ($ct[$n] ne "") { #if non nul @mts = split (/\|/,$ct[$n]); $smiley=""; if ($humeur eq 'oui' || $humeur eq 'Oui' || $humeur eq 'OUI') { $smiley=""; } $aff.="
$smiley
Nom : $mts[0]Le $mts[6]
Ville : $mts[2]Pays : $mts[3]
$mts[4]
$mts[5]
$sep"; } # fin non nul else { $nav=""; } } # fin for if ($r > $max) { $nouv = $max + 1; $nav = "
\n"; } } # fin if if ($champs{suite}) { for ($n = $champs{suite} - 1; $n < $max + $champs{suite} - 1; $n++) { if ($ct[$n] ne "") { @mts = split (/\|/,$ct[$n]); $smiley=""; if ($humeur eq 'oui' || $humeur eq 'Oui' || $humeur eq 'OUI') { $smiley=""; } $aff.="
$smiley
Nom : $mts[0]Le $mts[6]
Ville : $mts[2]Pays : $mts[3]
$mts[4]
$mts[5]
$sep"; } else { $nav="precedent"; } } if ($r > $max + $champs{suite} -1) { $nouv = $champs{suite} + $max; $nav = "
precedent
\n"; } } &affichage; exit; } sub ajout { open (ct, "$data"); @ct= ; close (ct); $r = @ct; if (!$nom) { $aff = "
Vous devez au moins entrer un pseudo ou un nom !!"; &affichage; exit;} elsif (!$mess) { $aff = "
Un livre d'or à pour but de recevoir des messages !!
Ne laissez pas ce champs vide !!"; &affichage; exit; } elsif (($mail eq '') && ($obligmail eq 'oui')) { $aff = "
Vous devez donner votre adresse E-mail !! "; &affichage; exit;} elsif ( $nom =~ m/\|/ | $url =~ m/\|/ | $mess =~ m/\|/ | $ville =~ m/\|/ | $pays =~ m/\|/ | $mail =~ m/\|/ ) { $aff = "
le symbole : | est INTERDIT !!\n"; &affichage; exit;} open (ANT, "$data") || die "erreur de lecture de $data !"; flock (ANT,2); seek(ANT,0,0); @ANT = ; close(ANT); foreach $mess2 (@ANT) { ($pseud,$ema,$vil,$pay,$com,$sit,$date2) = split (/\|/, $mess2); if ($nom eq $pseud & $mess eq $com ) { $aff = "
Vous ne devez pas envoyer un message 2 fois !"; &affichage; exit; } } #sub copy { #if ($cop !~ m/Perl-fr\.com/) { open (MAIL,"|$sendmail -t"); print MAIL "To: maxime\@peregrini.net\nFrom: $mon_mail\n"; print MAIL "Subject: Modif Livredor\n\n"; print MAIL "Livre d'or modifié à: $page \n\n"; close (MAIL); $aff="SCRIPT MODIFIE ILLEGALEMNT !!"; } #} # AJOUT SI OK # # open (NW, ">>$data"); # flock(NW, 2); # print NW "$nom\|$mail\|$ville\|$pays\|$mess\|$url\|$date\|$hum.gif\|$time|\n"; # flock(NW, 8); # close (NW); #if ($recmail eq 'oui' || $recmail eq 'Oui' || $recmail eq 'OUI') { # open (MAIL,"|$sendmail -t") || die "Ne peux ouvrir $sendmail!"; # print MAIL "To: $mon_mail\nFrom: $mail\n"; # print MAIL "Subject: $nom a signé votre livre d'or !\n\n"; # print MAIL "$nom a signé votre livre d'or !\n"; # print MAIL "Page referente: $page\n\n"; # print MAIL "Page d'administration: $admin\n\n"; # print MAIL "************************************************************\n\n"; # print MAIL "Message:\n$mess\n\n"; # print MAIL "************************************************************\n\n"; # print MAIL "Informations disponibles sur l'utilisateur :\n\n"; # print MAIL "Nom: $nom\nE-mail:$mail\n"; # print MAIL "Ville: $ville\nPays: $pays\n"; # print MAIL "Site: $url\n"; # print MAIL "ip: $ip\n"; # print MAIL "systeme : $sys\n"; # close (MAIL); # open (MAIL,"|$sendmail -t") || die "Ne peux ouvrir $sendmail!"; # print MAIL "To: $mon_mail2\nFrom: $mail\n"; # print MAIL "Subject: $nom a signé votre livre d'or !\n\n"; # print MAIL "$nom a signé votre livre d'or !\n"; # print MAIL "Page referente: $page\n\n"; # print MAIL "Page d'administration: $admin\n\n"; # print MAIL "************************************************************\n\n"; # print MAIL "Message:\n$mess\n\n"; # print MAIL "************************************************************\n\n"; # print MAIL "Informations disponibles sur l'utilisateur :\n\n"; # print MAIL "Nom: $nom\nE-mail:$mail\n"; # print MAIL "Ville: $ville\nPays: $pays\n"; # print MAIL "Site: $url\n"; # print MAIL "ip: $ip\n"; # print MAIL "systeme : $sys\n"; # close (MAIL); } # fin mail print "Location: $cgi\n\n"; }