Script Perl cgi
# -------------------------------- #
sub liste {
open (FIC, "$fic" );
chomp(@fic=<FIC> );
close FIC;
print "<br><br>";
if (! $fic[0]) { print "<center>Il n'y a aucun message dans ce forum pour le moment.</center><br><br>"; }
foreach (@fic) {
($ref,$nom,$email,$sujet,$texte,$image,$lien,$url,$date,$heure,$datef,$repa,$niv)=split(/\|/, $_);
$esp=" "x$niv;
print <<tetemess;
$esp
<a class=\"liste\" href="$script?id=$id&msg=$ref">¤ $sujet</a> <font size="1">-par $nom- $date-$heure</font><br>
tetemess
}
&form;
}
# -------------------------------- #
sub msg {
open (FIC, "$fic" );
chomp(@fic=<FIC> );
close FIC;
foreach(@fic) {
($ref,$nom,$email,$sujet,$texte,$image,$lien,$url,
$date,$heure,$datef,$repa,$niv)=split(/\|/,$_);
$nom{$ref}=$nom;
$email{$ref}=$email;
$sujet{$ref}=$sujet;
$texte{$ref}=$texte;
$image{$ref}=$image;
$lien{$ref}=$lien;
$url{$ref}=$url;
$date{$ref}=$date;
$heure{$ref}=$heure;
$datef{$ref}=$datef;
$repa{$ref}=$repa;
$niv{$ref}=$niv;
}
if ($repa{$msg}) {
print "<font size=1>Message précédent:</font> <a class=pt href=\"$script?id=$id&msg=$repa{$msg}\">$sujet{$repa{$msg}}</a><br><br>";
} else {
print "<center><a class=\"pt\" href=\"$script?id=$id\">Retour à la liste des messages</a></center><br><br>";
}
print <<message;
<center><span class="sujet">$sujet{$msg}</span><br>
<span class="det">message posté par $nom{$msg}, le $date{$msg}</span><br>
<span class="texte">$texte{$msg}</span><br></center>
message
if ($image{$msg}) { print "<center><img src=\"http://$image{$msg}\" border=\"0\"></center><br>"; }
if ($lien{$msg} && $url{$msg}) { print "<a href=\"http://$url{$msg}\" class=\"lien\">$lien{$msg}</a><br>"; }
if ($email{$msg}) { print "<a href=\"mailto:$email{$msg}\" class=\"email\">$email{$msg}</a><br>"; }
&lesrep;
&form_rep;
}
# -------------------------------- #
sub form {
$oo='<font color="#ff0000" size="3"><b>*</b></font>';
print <<leform;
<br><br><br><br><br><hr>
<a name="post"></a>
<center><h5>Pour poster un message</h5>
<table width="600" cellpadding="0" cellspacing="0" border="0">
<form action="$script" method="post">
<input type="hidden" name="id" value="$id">
<input type="hidden" name="repa" value="0">
<input type="hidden" name="niv" value="0">
<input type="hidden" name="action" value="traite">
<tr><td class="formg" width="100">Nom $oo </td>
<td class="formc" width="500"><input type="text" name="nom"></td></tr>
<tr><td class="formg" width="100">E-Mail $oo </td>
<td width="500" class="formc"><input type="text" name="email"></td></tr>
<tr><td class="formg" width="100">Sujet $oo </td>
<td width="500" class="formc"><input type="text" name="sujet"></td></tr>
<tr><td class="formg" width="100">Message $oo </td>
<td width="500" class="formc"><textarea name="texte" cols="30" rows="15"></textarea></td></tr>
<tr><td colspan="2"><hr></td></tr>
<tr><td class="formg" width="100">Image </td>
<td width="500" class="formc"><input type="text" name="image" value="http://"></td></tr>
<tr><td class="formg" width="100">Lien (titre) </td>
<td width="500" class="formc"><input type="text" name="lien"></td></tr>
<tr><td class="formg" width="100">Lien (URL) </td>
<td width="500" class="formc"><input type="text" name="url" value="http://" size="35"></td></tr>
<tr><td class="formg" width="100"> </td>
<td width="500" class="formc"><input type="submit" value="Envoi !"></td></tr>
<tr><td colspan="2"><hr></td></tr>
</center>
</table>
</form>
leform
}
# -------------------------------- #
sub traite {
$nom=param('nom';
$email=param('email';
$sujet=param('sujet';
$texte=param('texte';
$image=param('image';
$lien=param('lien';
$url=param('url';
$image =~ s/http:\/\///g;
$url =~ s/http:\/\///g;
$repa=param('repa';
$niv=param('niv';
$texte =~ s/\n/<br>/g;
$texte =~ s/\r//g;
if (! $nom) { $error ++; $erreur .="Votre nom<br>"; }
if (! $email) { $error ++; $erreur .="Votre E-Mail<br>"; }
if (! $sujet) { $error ++; $erreur .="Le sujet de votre message<br>"; }
if (! $texte) { $error ++; $erreur .="Le textede votre message<br>"; }
if ($error >=1) {
print <<err;
<b>Les champs obligatoires suivants n'ont pas été remplis:<br></b>
<font color="#ff0000">$erreur</font><br>
err
} else {
if ($repa == 0) { &post_orig; }
elsif ($repa >=1) { &post; }
}
}
# -------------------------------- #
sub post_orig {
&gener;
open (FIC_E, "+<$fic" );
flock FIC_E,2;
chomp(@fic_e=<FIC_E> );
$fic_contenu="@fic_e";
if ($fic_contenu !~ /$nom\|$email\|$sujet\|$texte\|$image\|$lien\|$url/) {
truncate FIC_E,0;
seek FIC_E,0,0;
print FIC_E "$ref|$nom|$email|$sujet|$texte|$image|$lien|$url|$date|$heure|$datef|0|0\n";
foreach (@fic_e) {
print FIC_E "$_\n";
}
} else { close FIC_E; }
flock FIC_E,8;
close FIC_E;
print <<merci;
<center>Merci $nom !!<br>
Votre message a bien été enregistré.<br>
<a href="$script?id=$id" target="_self">retour</a><br></center>
merci
}
# -------------------------------- #
# -------------------------------- #
sub form_rep {
$oo='<font color="#ff0000" size="3"><b>*</b></font>';
$new_niv=$niv{$msg}+1;
print <<leform;
<br><br><br><br><br><hr>
<a name="post"></a>
<center><h5>Pour répondre au message de $nom{$msg}</h5>
<table width="600" cellpadding="0" cellspacing="0" border="0">
<form action="$script" method="post">
<input type="hidden" name="id" value="$id">
<input type="hidden" name="repa" value="$msg">
<input type="hidden" name="niv" value="$new_niv">
<input type="hidden" name="action" value="traite">
<tr><td class="formg" width="100">Nom $oo </td>
<td width="500" class="formc"><input type="text" name="nom"></td></tr>
<tr><td class="formg" width="100">E-Mail $oo </td>
<td width="500" class="formc"><input type="text" name="email"></td></tr>
<tr><td class="formg" width="100">Sujet $oo </td>
<td width="500" class="formc"><input type="text" name="sujet" value="Re: $sujet{$msg}"></td></tr>
<tr><td class="formg" width="100">Message $oo </td>
<td width="500" class="formc"><textarea name="texte" cols="30" rows="15"></textarea></td></tr>
<tr><td colspan="2"><hr></td></tr>
<tr><td class="formg" width="100">Image </td>
<td width="500" class="formc"><input type="text" name="image" value="http://"></td></tr>
<tr><td class="formg" width="100">Lien (titre) </td>
<td width="500" class="formc"><input type="text" name="lien"></td></tr>
<tr><td class="formg" width="100">Lien (URL) </td>
<td width="500" class="formc"><input type="text" name="url" value="http://" size="35"></td></tr>
<tr><td class="formg" width="100"> </td>
<td width="500" class="formc"><input type="submit" value="Envoi !"></td></tr>
<tr><td colspan="2"><hr></td></tr>
</center>
</table>
</form>
leform
}
# -------------------------------- #
sub post {
&gener;
open (FIC_E, "+<$fic" );
flock FIC_E,2;
chomp(@fic_e=<FIC_E> );
$fic_contenu="@fic_e";
if ($fic_contenu !~ /$nom\|$email\|$sujet\|$texte\|$image\|$lien\|$url/) {
truncate FIC_E,0;
seek FIC_E,0,0;
foreach (@fic_e) {
print FIC_E "$_\n";
($hehe,@autre)=split(/\|/, $_);
if ($hehe == $repa) {
print FIC_E "$ref|$nom|$email|$sujet|$texte|$image|$lien|$url|$date|$heure|$datef|$repa|$niv\n";
}
}
} else { close FIC_E; }
flock FIC_E,8;
close FIC_E;
print <<merci;
Merci $nom !!<br>
Votre message a bien été enregistré.<br>
<a href="$script?id=$id" target="_self">retour</a><br>
merci
}
# -------------------------------- #
sub format {
open (FO, "+<messages.dat" );
flock FO,2;
chomp(@fo=<FO> );
truncate FO,0;
seek FO,0,0;
for($kk=0; $kk<=199; $kk++) {
print FO "$fo[$kk]\n";
}
flock FO,8;
close FO;
}
# -------------------------------- #
sub lesrep {
foreach (@fic) {
($ref,$nom,$email,$sujet,$texte,$image,$lien,$url,$date,$heure,$datef,$repa,$niv)=split(/\|/,$_);
$sujet{$ref}=$sujet;
$azaz="rep_"."$repa";
@$azaz=(@$azaz,$ref);
}
$ch="rep_"."$msg";
@tabl=@$ch;
if ($tabl[0]) {
print "<font size=1>Les réponses:</font><br>";
foreach (@tabl) {
print "<a class=\"pt\" href=\"$script?id=$id&msg=$_\">$sujet{$_}</a>
<span class=\"det\">par $nom{$_}, le $date{$_}</span><br>";
}
}
}
# -------------------------------- #