#!/usr/bin/perl # # ResooSite v.0.9.1 - Resoo 2002-2003 # resooindexadmin.pl # require "resooconf.pl"; $query = $ENV{'QUERY_STRING'}; &parse_form; &get_date; &get_variables; ######## recuperation des variables ######## ##################################################### # Obtenir les informations du formulaire - Subroutine sub parse_form { # recevoir les variables read(STDIN, $buffer, $ENV{'CONTENT_LENGTH'}); # partager les variables en paire ( nom , valeur ) @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; $FORM{$name} = $value; } } ################################################### # Mettre les champs dans des variables - Subroutine sub get_variables { if ($FORM{'page'}) { $page = "$FORM{'page'}"; } else { $page = "$query"; } if ($FORM{'titre'}) { $titre = "$FORM{'titre'}"; } if ($FORM{'creation'}) { $creation = "$FORM{'creation'}"; } if ($FORM{'titre2'}) { $titre2 = "$FORM{'titre2'}"; } if ($FORM{'image'}) { $image = "$FORM{'image'}"; } if ($FORM{'titre3'}) { $titre3 = "$FORM{'titre3'}"; } if ($FORM{'manchette'}) { $manchette = "$FORM{'manchette'}"; } if ($FORM{'encart'}) { $encart = "$FORM{'encart'}"; } if ($FORM{'action'}) { $action = "$FORM{'action'}"; } 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; } } ######## 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 "\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"; if ($bbs > 1) { print "Administration Forum... cliquez ici!\n"; print "
\n"; } } &page_pied; } ######## verification mot de passe ######## sub verify { open(MAIN,"$private/$util.txt") || &erreurpass; @main =
; foreach $main_line (@main) { if ($main_line =~ /$pass/) { if ($action > 0) { &action; } else { $verif = "9"; #condition du titre page_admin $action = "0"; &page_admin; } } else { &erreurpass; } } close(MAIN); } sub erreurpass { $verif = ( $verif + 1 ); &page_verify; } ######## administration du site ######## sub page_admin { &page_tete; if ($page) { open(MAIN2,"$dir_txt/$page.idx") || die $!; @main2 = ; close (MAIN2); $titreold = $main2[0]; $titreold =~ s/\n//; $creationold = $main2[1]; $creationold =~ s/\n//; $titre2old = $main2[2]; $titre2old =~ s/\n//; $titre2old =~ s/"/\"\;/g; $imageold = $main2[3]; $imageold =~ s/\n//; $titre3old = $main2[4]; $titre3old =~ s/\n//; $titre3old =~ s/"/\"\;/g; $encartold = $main2[5]; $encartold =~ s/\n//; print "
\n"; print "
\n"; print "\n"; print "\n"; print "\n"; print "\n"; print "\n"; print "\n"; print "\n"; &hidden; print "\n"; print "\n"; print "\n"; print "\n"; print "
$font Titre: $finfont $fontstitre $titreold $finfontstitre $fontpetite (la modification du titre est une action Super Utilisateur) $finfontpetite
$font Mise à jour du: $finfont \n"; print " $font (précédente mise à jour le $creationold"; print ") $finfont
$font Image: $finfont"; opendir (CADR, $dir_cadre); @CADR=grep(!/^\.\.?$/, readdir CADR); print "\n"; close (CADR); if ($page == $defautretour) { if ($img > 1) { print "$font [ pour info:\n"; opendir (FOND, $dir_dujour); @FFOND=grep(!/^\.\.?$/, readdir FOND); print " ]$finfont\n"; close (FOND); } } print "
$font Titre manchette: $finfont
$font Manchette: $finfont
$font Titre encart: $finfont
$font Encart: $finfont


\n"; print "
\n"; print "
\n"; print "
\n"; &hidden; print "\n"; print "\n"; print "\n"; print "\n"; print "\n"; print "

\n"; print "
\n"; print "
\n"; print "\n"; print "\n"; print "\n"; if ($bbs > 1) { print "\n"; print "\n"; } print "

Accès au mode Super-Administrateur... cliquez ici!

Administration Forum... cliquez ici!

\n"; print "$fontpetite
 
\n"; print "en cas de difficulté, merci de contacter \n"; print "l'administrateur du site $title.
\n"; print "$finfontpetite\n"; } &page_pied; } ######## entete et pied de page ######## sub page_tete { print "Content-type: text/html\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 == "4" ) { print "Oups ! Erreur...\n"; } else { if ($page) { print "Modification page index\n"; } else { print "Oups ! Erreur...(fichier invalide)\n"; } } } else { print "Saisie du mot de passe $fontstitre(administrateur)$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; } ######## routines "action" ######## # action = 1 (creation) # non disponible # action = 2 (modification) # action = 3 (suppression) # non disponible # action = 4 (erreur) sub action { ✓ # verifie les champs obligatoire if ($action == "2" ) { ## creer ou ecraser le fichier idx open(MAIN4,">$dir_txt/$page.idx") || die $!; print MAIN4 "$titre\n"; print MAIN4 "$creation\n"; print MAIN4 "$titre2\n"; print MAIN4 "$image\n"; print MAIN4 "$titre3\n"; $encart =~ s/\s\s/\n/g; $encart =~ s/\n/
/g; print MAIN4 "$encart"; close(MAIN4); ## creer ou ecraser le fichier txt open(MAIN5,">$dir_txt/$page.txt") || die $!; $manchette =~ s/\s\s/\n/g; $manchette =~ s/\n\n/\n/g; print MAIN5 "$manchette"; close(MAIN5); } &page_tete; print "$fontgrande\n"; if ($action == "2") { print "Modification de page terminée :
\n"; print "Page \# $page

\n"; } if ($action == "4") { print "Erreur: champs \"$error\" non servi ou incorrect.

\n"; print "$font\n"; print "utiliser le bouton retour de votre navigateur pour revenir au formulaire prédédent.

\n"; print "$finfont\n"; } print "
\n"; print "
\n"; &hidden; print "\n"; print "\n"; print "\n"; print "
\n"; print "


\n"; print "$finfontgrande\n"; print "$font\n"; print "...
\n"; print "$finfont\n"; &page_pied; } sub check { if ($action != "3") { # si suppression, on passe if (!$titre) { $error = "titre"; $action = "4"; } if (!($creation =~ /(\d{2})\/(\d{2})\/(\d{4})/)) { $error = "mise à jour"; $action = "4"; } } }