#!/usr/bin/perl # # REF: resooboardadmin.pl # ResooSite v.0.9.5 -(p)Resoo 2002-2003 # (c)2003 - pascal blain / GNU GPL - General Public License # http://www.resoo.org/resoosite # pascal@resoo.org # require "resooconf.pl"; require "resoobbsconf.pl"; use CGI qw(:all); ## fonction "remote_host" ########################################################################### # Subroutine # Obtenir les informations du formulaire &parse_form; # Mettre les champs dans des variables &get_variables; ###### création de message if (($action == 1) or ($action == 10)) { # Obtenir le nb de messages (data) &get_number; &get_date; # Ouvrir un nouveau fichier et y ecrire les infos &new_file; # Créer une balise topic s'il y a lieu &main_page; # Lier message et reponse s'il y a lieu &thread_pages; # Retourner une page HTML a l'utilisateur &return_html; # Incrementer le compteur &increment_num; } ###### validation de message à partir d'un fichier temp if (($action == 21) or ($action == 31)) { # Enregistre le fichier tmp modifié if ($action == 31) { &modif_file; } # Obtenir les données du message tmp open(MESG,"$mesgdirtmp/$delfichier.$ext1") || &error(no_file_admin); @board = ; close(MESG); &get_mesg; # Obtenir le nb de messages (data) &get_number; # Ouvrir un nouveau fichier et y ecrire les infos &new_file; # Créer une balise topic s'il y a lieu &main_page; # Lier les messages et leurs reponses &thread_pages; # supprimer le fichier de validation (variable delfichier) &del_fichier; # Retourner une page HTML a l'utilisateur &return_html; # Incrementer le compteur &increment_num; } ###### validation/edition/suppression de message (temp) if (($action == 30) or ($action == 40)) { # Obtenir les données du fichier tmp ou du message if ($action == 30) { open(MESG,"$mesgdirtmp/$delfichier.$ext1") || &error(no_file_admin); } if ($action == 40) { open(MESG,"$mesgdir/$delfichier.$ext1") || &error(bad_file_admin); } @board = ; close(MESG); &get_mesg; # Retourner une page HTML a l'utilisateur &return_html; } ###### suppression de message if (($action == 29) or ($action == 39)) { # supprimer le fichier de validation (variable delfichier) &del_fichier; # Retourner une page HTML a l'utilisateur &return_html; } ###### edition/suppression de message if ($action == 41) { # Enregistrer le fichier modifié &modif_file; # Retourner une page HTML a l'utilisateur &return_html; } ###### suppression des données d'un message if ($action == 42) { # Effacer le contenu d'un message if ($delfichier) { &eff_mesg($delfichier); } else { &error(no_topic_admin); } # Retourner une page HTML a l'utilisateur &return_html; } ###### suppression de message ou de topic if ($action == 48) { # supprimer le message et refaire les liens if ($delfichier) { &supp_mesg($delfichier); } else { &error(no_topic_admin); } # Retourner une page HTML a l'utilisateur &return_html; } ###### suppression de fil de discussion if ($action == 49) { # Supprimer un topic if ($deltopic) { # print "Content-type: text/html\n\n"; ### debug # print "procédure supp_topic:

"; ### debug &del_topic($deltopic); &supp_topic($deltopic); } else { &error(bad_file_admin); } # Retourner une page HTML a l'utilisateur &return_html; } ###### affichage du log des messages if (($action == 50) or ($action == 52)) { # Affichage &page_admin; } ###### suppression (multiple) de fil de discussion if ($action == 59) { # Supprimer un topic if (@del_topics) { # print "Content-type: text/html\n\n"; ### debug # print "procédure supp_topic:

"; ### debug foreach $deltopic(@del_topics) { # print "$deltopic
"; ### debug &del_topic($deltopic); &supp_topic($deltopic); } } # Retourner une page HTML a l'utilisateur &page_admin; } ######################################## # Obtenir le nb de messages - Subroutine sub get_number { my $wfile = "$dir_bbs/$datafile"; if (!(-e $wfile)){open(NEW,"> $wfile");print NEW "0";close(NEW); } open(NUMBER,"$wfile") || die $!;; $num = ; close(NUMBER); if ($num == 999999) { $num = "1"; } else { $num++; } } ##################################################### # Obtenir les informations du formulaire - Subroutine sub parse_form { # Get the input read(STDIN, $buffer, $ENV{'CONTENT_LENGTH'}); # Split the name-value pairs @pairs = split(/&/, $buffer); foreach $pair (@pairs) { ($name, $value) = split(/=/, $pair); # Un-Webify plus signs and %-encoding $value =~ tr/+/ /; $value =~ s/%([a-fA-F0-9][a-fA-F0-9])/pack("C", hex($1))/eg; $value =~ s///g; if ($allow_html != 1) { $value =~ s/<([^>]|\n)*>//g; } else { unless ($name eq 'bbsbodymess') { $value =~ s/<([^>]|\n)*>//g; } } if ($name eq "del_topics") { push (@del_topics,$value); } $FORM{$name} = $value; } } ################################################### # Mettre les champs dans des variables - Subroutine sub get_variables { if ($FORM{'action'}) { $action = "$FORM{'action'}"; } else { $action = ""; } if ($FORM{'nummesg'}) { $nummesg = "$FORM{'nummesg'}"; } if ($FORM{'orignum'}) { $orignum = "$FORM{'orignum'}"; } else { $orignum = ""; } if ($FORM{'num'}) { $num = "$FORM{'num'}"; } else { $num = ""; } if ($FORM{'delfichier'}) { $delfichier = "$FORM{'delfichier'}"; } else { $delfichier = ""; } unless ((!$moderation) and (($action == 1) or ($action == 10))) { if ($FORM{'verif'}) { $verif = "$FORM{'verif'}"; } else { $verif = "0" } if ($FORM{'util'}) { $util = "$FORM{'util'}"; if ($FORM{'pass'}) { $pass = "$FORM{'pass'}"; &verify; } else { $verif = ( $verif + 1 ); &page_verify; } } else { &page_verify; } } if (($action == 1) or ($action == 10)) { if ($FORM{'bbsname'}) { $bbsname = "$FORM{'bbsname'}"; $bbsname =~ s/\"//g; $bbsname =~ s///g; $bbsname =~ s/\&//g; chomp($bbsname); $bbsname =~ s/\r//g; $bbsname =~ s/\n/ /g; ##### a voir: controle du nombre de caractères } else { &error(no_name_admin); } if ($FORM{'bbsemail'} =~ /.*\@.*\..*/) { $bbsemail = "$FORM{'bbsemail'}"; } if ($FORM{'bbssubject'}) { $bbssubject = "$FORM{'bbssubject'}"; $bbssubject =~ s/\&/\&\;/g; $bbssubject =~ s/\"/\"\;/g; $bbssubject = lc($bbssubject); chomp($bbssubject); $bbssubject =~ s/\r//g; $bbssubject =~ s/\n/ /g; ##### a voir: controle du nombre de caractères } else { &error(no_subject_admin); } if ($FORM{'message_url'} =~ /.*\:.*\..*/ && $FORM{'message_url_title'}) { $message_url = "$FORM{'message_url'}"; chomp($message_url); $message_url =~ s/\r//g; $message_url =~ s/\n/ /g; $message_url_title = "$FORM{'message_url_title'}"; chomp($message_url_title); $message_url_title =~ s/\r//g; $message_url_title =~ s/\n/ /g; ##### a voir: controle du nombre de caractères } if ($FORM{'img'} =~ /.*tp:\/\/.*\..*/) { $message_img = "$FORM{'img'}"; chomp($message_img); $message_img =~ s/\r//g; $message_img =~ s/\n/ /g; ##### a voir: controle du nombre de caractères } if ($FORM{'bbsbodymess'}) { $bbsbodymess = "$FORM{'bbsbodymess'}"; $bbsbodymess =~ s/\cM//g; $bbsbodymess =~ s/\n\n/

/g; $bbsbodymess =~ s/\n/
/g; $bbsbodymess =~ s/<//g; $bbsbodymess =~ s/"/\"/g; $renew = $bbsbodymess; &unword; $bbsbodymess = $renew; } else { &error(no_body_admin); } } #### if ($action == 21) #### if ($action == 29) #### if ($action == 30) if ($action == 31) { if ($FORM{'bbsname'}) { $bbsname = "$FORM{'bbsname'}"; $bbsname =~ s/\"//g; $bbsname =~ s///g; $bbsname =~ s/\&//g; chomp($bbsname); $bbsname =~ s/\r//g; $bbsname =~ s/\n/ /g; ##### a voir: controle du nombre de caractères } else { &error(no_other); } if ($FORM{'bbsemail'} =~ /.*\@.*\..*/) { $bbsemail = "$FORM{'bbsemail'}"; } if ($FORM{'bbssubject'}) { $bbssubject = "$FORM{'bbssubject'}"; $bbssubject =~ s/\&/\&\;/g; $bbssubject =~ s/\"/\"\;/g; $bbssubject = lc($bbssubject); chomp($bbssubject); $bbssubject =~ s/\r//g; $bbssubject =~ s/\n/ /g; ##### a voir: controle du nombre de caractères } else { &error(no_other); } if ($FORM{'bbsbodymess'}) { $bbsbodymess = "$FORM{'bbsbodymess'}"; $bbsbodymess =~ s/\cM//g; $bbsbodymess =~ s/\n\n/

/g; $bbsbodymess =~ s/\n/
/g; $bbsbodymess =~ s/<//g; $bbsbodymess =~ s/"/\"/g; $renew = $bbsbodymess; &unword; $bbsbodymess = $renew; } else { &error(no_other); } } #### if ($action == 39) if ($action == 41) { if ($FORM{'delfichier'}) { $delfichier = "$FORM{'delfichier'}"; } if ($FORM{'bbsname'}) { $bbsname = "$FORM{'bbsname'}"; $bbsname =~ s/\"//g; $bbsname =~ s///g; $bbsname =~ s/\&//g; chomp($bbsname); $bbsname =~ s/\r//g; $bbsname =~ s/\n/ /g; ##### a voir: controle du nombre de caractères } else { &error(no_other_admin); } if ($FORM{'bbsemail'} =~ /.*\@.*\..*/) { $bbsemail = "$FORM{'bbsemail'}"; } if ($FORM{'bbssubject'}) { $bbssubject = "$FORM{'bbssubject'}"; $bbssubject =~ s/\&/\&\;/g; $bbssubject =~ s/\"/\"\;/g; $bbssubject = lc($bbssubject); chomp($bbssubject); $bbssubject =~ s/\r//g; $bbssubject =~ s/\n/ /g; ##### a voir: controle du nombre de caractères } else { &error(no_other_admin); } if ($FORM{'bbsbodymess'}) { $bbsbodymess = "$FORM{'bbsbodymess'}"; $bbsbodymess =~ s/\cM//g; $bbsbodymess =~ s/\n\n/

/g; $bbsbodymess =~ s/\n/
/g; $bbsbodymess =~ s/<//g; $bbsbodymess =~ s/"/\"/g; $renew = $bbsbodymess; &unword; $bbsbodymess = $renew; } else { &error(no_other_admin); } } #### if ($action == 42) #### if ($action == 48) if ($action == 49) { if ($FORM{'deltopic'}) { $deltopic = "$FORM{'deltopic'}"; } else { $deltopic = "0"; } } #### if ($action == 50) #### if ($action == 52) #### if ($action == 59) voir parse_form pour la création du tableau (@del_topics,$value) } ############################################################## # supprimer le fichier de validation - Subroutine sub del_fichier { if (($action == 29) or ($action == 21) or ($action == 31) or ($action == 39)) { my $wfile = "$mesgdirtmp/$delfichier.$ext1"; unlink ($wfile); } } ############################################################## # supprimer un message - Subroutine sub eff_mesg { $file = $_[0]; my $mfile = "$mesgdir/$file.$ext1"; open(EFFFILE,"$mfile") || &error(bad_file_admin); @efffile = ; close(EFFFILE); $oldbbsip = @efffile[0]; $oldbbsip =~ s/\n//; @efffile[0] = "$oldbbsip [EFF: $util] ".remote_host."\n"; @efffile[1] = "$bbsname_mod\n"; @efffile[2] = "$email_mod\n"; @efffile[5] = "$bbssubject_eff\n"; @efffile[6] = "$bbsbodymess_eff ($email_mod)\n"; open(NEWFILE,">$mfile") || &error(no_perm); foreach $line(@efffile) { print NEWFILE "$line"; } close(NEWFILE); } ############################################################## # supprimer un message - Subroutine sub supp_mesg { $file = $_[0]; my $mfile = "$mesgdir/$file.$ext1"; open(SUPFILE,"$mfile") || &error(bad_file_admin); @board = ; close(SUPFILE); &get_mesg; if ($num_followup) { ## s'il y a des des réponses foreach $mod_reponse(@followups) { # je modifie le "orignum" des réponses my $wfile = "$mesgdir/$mod_reponse.$ext1"; open(MODFILE,"$wfile") || &error(bad_file_admin); @modfile = ; close(MODFILE); @modfile[9] = "$orignum\n"; open(NEWFILE,">$wfile") || &error(no_perm); foreach $line(@modfile) { print NEWFILE "$line"; } close(NEWFILE); if (!$orignum) { ## si c'est un topic, je crée de nouveaux topics my $wfile = "$mesgdir/$mod_reponse.$ext2"; open(MAIN,">$wfile") || &error(no_perm); @main =

; print MAIN "1"; close(MAIN); } } } if ($orignum) { ## si c'est une réponse my $wfile = "$mesgdir/$orignum.$ext1"; # je modifie le "followup" du fichier précédent open(MODFILE,"$wfile") || &error(bad_file_admin); @modfile = ; close(MODFILE); if ($follow_up) { @modfile[8] =~ s/\|$num\|/\|$follow_up\|/; } else { @modfile[8] =~ s/\|$num\|/\|/; } open(NEWFILE,">$wfile") || &error(no_perm); foreach $line(@modfile) { print NEWFILE "$line"; } close(NEWFILE); } else { ## sinon c'est un topic, et je supprime le fichier topic unlink("$mesgdir/$file.$ext2"); } unlink($mfile); ## je termine en supprimant le fichier message } ############################################################## # supprimer le topic et toutes ses réponses - Subroutine sub verif_topic { $file = $_[0]; my $mfile = "$mesgdir/$file.$ext2"; if (!(-s $mfile)) { &error(no_topic_admin); } } sub del_topic { $file = $_[0]; my $mfile = "$mesgdir/$file.$ext2"; if (!(-s $mfile)) { &error(no_topic_admin); } else { unlink($mfile); } } sub supp_topic { $file = $_[0]; my $mfile = "$mesgdir/$file.$ext1"; open(FILE,"$mfile"); @file = ; close(FILE); $followup = @file[8]; $followup =~ s/^\|//; $followup =~ s/\|$//; $followup =~ s/\n//; while ($followup) { my @followups = split(/\|/,$followup); foreach $delfile(@followups) { &supp_topic($delfile); } } unlink($mfile); # print "unlink : $mfile
\n"; #### debug } ############################################################## # Ouvrir un nouveau fichier et y ecrire les infos - Subroutine sub new_file { my $wfile = "$mesgdir/$num\.$ext1"; open(NEWFILE,">$wfile") || die $!; if ($action == 1){ ## pas de modération print NEWFILE remote_host."\n"; } elsif ($action == 10) { ## pas de modération (action admin) print NEWFILE remote_host." [$util]\n"; } elsif ($action == 31) { ## la modif est déjà loguée par modif_file print NEWFILE "$bbsip\n"; } else { ## modération print NEWFILE "$bbsip [$util] ".remote_host."\n"; } print NEWFILE "$bbsname\n"; print NEWFILE "$bbsemail\n"; if (($action == 1) or ($action == 10)) { print NEWFILE "$date\n"; print NEWFILE "$heure\n"; } else { print NEWFILE "$bbsdate\n"; print NEWFILE "$bbsheure\n"; } print NEWFILE "$bbssubject\n"; print NEWFILE "$bbsbodymess\n"; print NEWFILE "$num\n"; ## le numéro du message print NEWFILE "|\n"; print NEWFILE "$orignum\n"; print NEWFILE "$message_img\n"; print NEWFILE "$message_url\n"; print NEWFILE "$message_url_title\n"; close(NEWFILE); } ############################################################## # Modifier un fichier temporaire avant validation - Subroutine sub modif_file { if ($action == 31) { $wfile = "$mesgdirtmp/$delfichier.$ext1"; } if ($action == 41) { $wfile = "$mesgdir/$delfichier.$ext1"; } open(MODFILE,"$wfile") || &error(no_file_admin); @modfile = ; close(MODFILE); $oldbbsip = @modfile[0]; $oldbbsip =~ s/\n//; if ($action == 31) { @modfile[0] = "$oldbbsip [MODER: $util] ".remote_host."\n"; } elsif ($action == 41) { @modfile[0] = "$oldbbsip [MODIF: $util] ".remote_host."\n"; } else { @modfile[0] = "$oldbbsip [---: $util] ".remote_host."\n"; } @modfile[1] = "$bbsname\n"; @modfile[2] = "$bbsemail\n"; @modfile[5] = "$bbssubject\n"; @modfile[6] = "$bbsbodymess\n"; open(NEWFILE,">$wfile") || &error(no_perm); foreach $line(@modfile) { print NEWFILE "$line"; } close(NEWFILE); } ############################################################# # Ouvrir le fichier principal et ajouter un lien - Subroutine sub main_page { if (!$orignum) { my $wfile = "$mesgdir/$num\.$ext2"; open(MAIN,">$wfile") || &error(no_perm); @main =
; print MAIN "1"; close(MAIN); } } ###################################################### # Lier le message à son message d'origine - Subroutine sub thread_pages { if ($orignum) { my $wfile = "$mesgdir/$orignum\.$ext1"; open(MODFILE,"$wfile") || &error(no_file); @modfile = ; close(MODFILE); my $followup = @modfile[8]; $followup =~ s/\n//; @modfile[8] = "$followup$num|\n"; open(NEWFILE,">$wfile") || &error(no_perm); foreach $line(@modfile) { print NEWFILE "$line"; } close(NEWFILE); } } ###################################################### # Retourner une page HTML a l'utilisateur - Subroutine sub return_html { print "Content-type: text/html\; charset=ISO-8859-1\n\n"; &head_bbs; print "\n"; print "\n"; print "\n"; print "\n"; print "
\n"; print "$font\n"; if (($action == 1) or ($action == 10) or ($action == 21) or ($action == 31)) { print "

Message envoyé: $bbssubject

\n"; print "Les informations suivantes ont été ajoutées au site:


\n"; print "Nom:$fontbbs $bbsname $finfontbbs
\n"; if ($bbsemail) { print "E-Mail:$fontbbs $bbsemail $finfontbbs
\n"; } print "Titre:$fontbbs $bbssubject $finfontbbs
\n"; print "Message:

\n"; print "

    $fontbbs $bbsbodymess $finfontbbs

\n"; if ($bbsdate) { print "Ajouté le:$fontbbs $bbsdate $finfontbbs

\n"; } else { print "Ajouté le:$fontbbs $date $finfontbbs

\n"; } } if ($action == 30) { print "

Modération: $delfichier

\n"; &rest_of_form_admin1; } if ($action == 40) { print "

Modification: $delfichier

\n"; &rest_of_form_admin1; } if ($action == 41) { print "

Message modifié: $delfichier

\n"; } if (($action == 29) or ($action == 39)) { print "

Message supprimé: $delfichier

\n"; } if ($action == 42) { print "

Message effacé: $delfichier

\n"; } if ($action == 48) { print "

Message supprimé: $delfichier

\n"; } if ($action == 49) { print "

Message supprimé: $deltopic

\n"; } print "
\n"; print "
"; if (($action == 41) or ($action == 42) or ($action == 48) or ($action == 49)) { &retourbbsadminlist; } if (($moderation) or ($util)) { &retourbbsadmin; } print "[ Retour $forumtitre ]
\n"; print "$finfont\n"; print "
\n"; &foot_gen; } ###################################### # Incrementer le compteur - Subroutine sub increment_num { open(NUM,">$dir_bbs/$datafile") || die $!; print NUM "$num"; close(NUM); } #################################### ######## vue administrateur ######## ######## entete et pied de page ######## sub page_tete { print "Content-type: text/html\; charset=ISO-8859-1\n\n"; &head; print "\n"; print "\n"; print "\n"; print "\n"; print "\n"; print "\n"; print "\n"; print "\n"; print "\n"; print "\n"; print "\n"; print "\n"; print "\n"; print "
\n"; print "$font\n"; print "\n"; print "
\n"; print "$fonttitre\n"; if ( $verif == 9 ) { if ($action == 59) { print "Vue liste suppression/archivage\n"; } elsif ($action == 52) { print "Vue liste suppression/édition\n"; } elsif ($action == 50) { print "Vue liste log\n"; } else { print "Page Administration $forumtitre\n"; } } else { print "Saisie du mot de passe $fontstitre(modérateur)$finfontstitre\n"; } print "$finfonttitre

\n"; print "Si vous avez un problème avec cette page, merci d'en informer "; print "l'administrateur de ce site
\n"; print "$finfont\n"; print "
\n"; print "$font\n"; print "\ \;
\ \;\n"; print "$finfont\n"; print "
\n"; print "$font \ \;
\n"; } sub page_pied { print "$finfont\n"; print "
\n"; print "$font\n"; print "\n"; print "
\n"; &foot; } ### page index administrateur sub page_admin { &page_tete; if (!$action) { open (MAXNUM, "$dir_bbs/$datafiletmp"); } else { open (MAXNUM, "$dir_bbs/$datafile"); } @maxnum = ; close (MAXNUM); $maxnum = @maxnum[0]; print "

\n"; if ($action == 59) { #### affichage de la liste topic en mode suppression &retourbbsadmin; print "
\n"; print "
\n"; if (!$nummesg) { $nummesg = $maxnum; } $defautnum = $defautnummesg; print "
\n"; for ($c = $nummesg ; $c > $nummesg-$defautnum ; $c--){ if (-s "$mesgdir/$c.$ext2") { open (MESG, "$mesgdir/$c.$ext1"); @board = ; close (MESG); &get_mesg; print "
"; print "$font [$num] $bbsname - $bbsdate - $bbsheure
titre : $bbssubject
$finfont"; print "
"; print "
\n"; print "\n"; print "
\n"; print "
"; } else { ## rajoute une itération if ($nummesg-$defautnum > 0) { $defautnum++; } } } print "
\n"; print "\n"; print "\n"; print "\n"; print "\n"; print "\n"; print "
\n"; print "\n"; } elsif ($action == 52) { &retourbbsadmin; print "
\n"; print "
\n"; if (!$nummesg) { $nummesg = $maxnum; } $defautnum = $defautnummesg; for ($c = $nummesg ; $c > $nummesg-$defautnum ; $c--){ if (-s "$mesgdir/$c.$ext1") { open (MESG, "$mesgdir/$c.$ext1"); @board = ; close (MESG); &get_mesg; print "
"; print "$font [$num] $bbsname - $bbsdate - $bbsheure
titre : $bbssubject
$finfont"; print "
"; if (-s "$mesgdir/$c.$ext2") { print "
\n"; print "
\n"; print "\n"; print "\n"; print "\n"; print "\n"; print "\n"; print "
\n"; print "
\n"; } else { print " - "; } print "
"; print "
\n"; print "
\n"; print "\n"; print "\n"; print "\n"; print "\n"; print "\n"; print "
\n"; print "
\n"; print "
"; print "
\n"; print "
\n"; print "\n"; print "\n"; print "\n"; print "\n"; print "\n"; print "
\n"; print "
\n"; print "
"; print "
\n"; print "
\n"; print "\n"; print "\n"; print "\n"; print "\n"; print "\n"; print "
\n"; print "
\n"; print "
"; } else { ## rajoute une itération if ($nummesg-$defautnum > 0) { $defautnum++; } } } } elsif ($action == 50) { &retourbbsadmin; print "
\n"; print "
\n"; if (!$nummesg) { $nummesg = $maxnum; } $defautnum = $defautnummesg; for ($c = $nummesg ; $c > $nummesg-$defautnum ; $c--){ if (-s "$mesgdir/$c.$ext1") { open (MESG, "$mesgdir/$c.$ext1"); @board = ; close (MESG); &get_mesg; print "
"; print "$font Message # [$num] $bbsip
$bbsname - $bbsdate - $bbsheure
titre : $bbssubject
$finfont"; print "
"; } else { ## rajoute une itération if ($nummesg-$defautnum > 0) { $defautnum++; } } } } else { print "
\[ Envoyer un message \]"; print " \[ Console Admin \]"; print " \[ Retour $forumtitre \]\n"; print "
\n"; print "
\n"; if (!$nummesg) { $nummesg = $maxnum; } $vide = 0; $defautnum = $defautnummesg; for ($c = $nummesg ; $c > $nummesg-$defautnum ; $c--){ if (-s "$mesgdirtmp/$c.$ext1") { open (MESG, "$mesgdirtmp/$c.$ext1"); @board = ; close (MESG); &get_mesg; print "
"; print "$font [$bbsip] - $bbsname - $bbsdate - $bbsheure
titre : $bbssubject$finfont"; print "
"; print "
\n"; print "
\n"; print "\n"; print "\n"; print "\n"; print "\n"; print "\n"; print "
\n"; print "
\n"; print "
"; print "
\n"; print "
\n"; print "\n"; print "\n"; print "\n"; print "\n"; print "\n"; print "\n"; print "
\n"; print "
\n"; print "
"; print "
\n"; print "
\n"; print "\n"; print "\n"; print "\n"; print "\n"; print "\n"; print "\n"; print "
\n"; print "
\n"; print "
"; $vide++; } else { ## rajoute une itération if ($nummesg-$defautnum > 0) { $defautnum++; } } } if (!$vide) { if ($moderation) { print "
Aucun message en attente de modération.
\n"; } else { print "
Le mode \"modération\" est désactivé.
\n"; } } } print "
\n"; print "
"; print "
\n"; print "\n"; print "\n"; print "
\n"; if (!$action) { $mesg_dir = $mesgdirtmp; } else { $mesg_dir = $mesgdir; } $boucle = 0; for ($d = $c ; $d > 0 ; $d--){ if (!$boucle){ if (-s "$mesg_dir/$d.$ext1") { $nummesgprec = $d; $boucle = 1; print "
\n"; print "\n"; print "\n"; print "\n"; print "\n"; print "\n"; print "
\n"; } } } if (!$nummesgprec) {print "$font [ Pas de page prédédente ] $finfont\n";} print "
\n"; $boucle = 0; while ($boucle < $defautnummesg){ for ($d = $nummesg+1 ; $d < $maxnum+1 ; $d++){ if ($boucle < $defautnummesg){ if (-s "$mesg_dir/$d.$ext1") { $nummesgsuiv = $d; $boucle++; } } } $boucle = $defautnummesg; } if ($nummesgsuiv) { print "
\n"; print "\n"; print "\n"; print "\n"; print "\n"; print "\n"; print "
\n"; } else {print "$font [ Pas de page suivante ] $finfont\n";} print "
\n"; print "
"; if (!$action) { print "


\n"; print "$fontstitre Console Admin ($forumtitre) $finfontstitre

\n"; &consolebbs; print "


\n"; print "$fontstitre Envoyer un message (direct) $finfontstitre

\n"; &rest_of_form_admin; print "

\n"; print "\[ Envoyer un message \]"; print " \[ Console Admin \]"; print " \[ Retour $forumtitre \]\n"; } else { print "


\n"; &retourbbsadmin; } print "
\n"; &page_pied; } ######## affichage page mot de passe ######## sub page_verify { &page_tete; if ($verif == 2) { print "$fontgrande\n"; print "Votre mot de passe n'est pas valide,
\n"; print "merci de contacter \n"; print "l'administrateur du site $dir.
\n"; print "$finfontgrande\n"; } else { print "
\n"; print "
\n"; print "\n"; print "\n"; print "\n"; print "\n"; print "
$font Utilisateur: $finfont
$font Mot de passe: $finfont
\n"; print "
\n"; if ($verif == 1) { print "
\n"; print "$fontstitre\n"; print "deuxième essai\n"; print "$finfontstitre\n"; } else { print "
\n"; print "$fontpetite\n"; print "premier essai\n"; print "$finfontpetite\n"; } print "
"; print "Accès au mode Super-Administrateur... cliquez ici!\n"; print "
\n"; } &page_pied; } ######## verification mot de passe ######## sub verify { if (open (F, "$private/$util.bbs")) { open(MAIN,"$private/$util.bbs"); @main =
; foreach $main_line (@main) { $passcrypt = &resoocrypt($pass); if ($main_line =~ /^$passcrypt$/) { if (!$action) { $verif = "9"; #condition du titre page_admin $action = "0"; &page_admin; } else { $verif = "9"; } } else { &erreurpass; } } close(MAIN); } else { if (open (F, "$private/$util.txt")) { open(MAIN,"$private/$util.txt"); @main =
; foreach $main_line (@main) { $passcrypt = &resoocrypt($pass); if ($main_line =~ /^$passcrypt$/) { if (!$action) { $verif = "9"; #condition du titre page_admin $action = "0"; &page_admin; } else { $verif = "9"; } } else { &erreurpass; } } close(MAIN); } else { &erreurpass; } } } sub erreurpass { $action = 0; $verif = ( $verif + 1 ); &page_verify; } ######## bouton retour page admin bbs ######## sub retourbbsadmin { print "
\n"; print "
\n"; print "\n"; print "\n"; print "\n"; print "\n"; print "
\n"; print "
\n"; } sub retourbbsadminlist { print "
\n"; print "
\n"; print "\n"; print "\n"; print "\n"; print "\n"; print "
\n"; print "
\n"; } ######## console admin ######## sub consolebbs { print "
\n"; print "\n"; print "\n"; print "\n"; print "\n"; print "\n"; print "\n"; print "\n"; print "\n"; print "\n"; print "\n"; print "\n"; print "\n"; print "\n"; print "\n"; print "\n"; print "\n"; print "\n"; print "\n"; print "\n"; print "\n"; print "\n"; print "\n"; print "\n"; print "\n"; print "\n"; print "\n"; print "\n"; print "\n"; print "\n"; print "\n"; print "\n"; print "\n"; print "\n"; print "\n"; print "\n"; print "\n"; print "\n"; print "\n"; print "\n"; print "\n"; print "\n"; print "\n"; print "\n"; print "\n"; print "\n"; print "\n"; print "\n"; print "\n"; print "\n"; print "\n"; print "\n"; print "\n"; print "\n"; print "
$font Accès à la liste suppression/édition :
(liste complète)$finfont

$font Accès à la liste suppression/archivage :
(sujet de discussion seul)$finfont

$font Affichage des logs/messages : $finfont

$font N° de message à éditer : $finfont

$font N° du message à effacer : $finfont

$font N° du message à supprimer :
(seul le message est supprimé) $finfont

$font N° du sujet à supprimer :
(ses réponses sont aussi supprimées) $finfont

\n"; }