#!/usr/bin/perl # # REF: resooconfadmin.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"; $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; $value =~ s/\"/\\\"/g; $FORM{$name} = $value; } } ################################################### # Mettre les champs dans des variables - Subroutine sub get_variables { if ($FORM{'urlperso2'}) { $urlperso2 = "$FORM{'urlperso2'}"; } else { $urlperso2 = "$domain"; } if ($FORM{'title2'}) { $title2 = "$FORM{'title2'}"; } if ($FORM{'email2'}) { $email2 = "$FORM{'email2'}"; } if ($FORM{'admin2'}) { $admin2 = "$FORM{'admin2'}"; } if ($FORM{'bandeau2'}) { $bandeau2 = "$FORM{'bandeau2'}"; } if ($FORM{'couleur_bandeau2'}) { $couleur_bandeau2 = "$FORM{'couleur_bandeau2'}"; } if ($couleur_bandeau2 eq "transparent") { $couleur_bandeau2 = ""; } if ($FORM{'marge_haut2'}) { $marge_haut2 = "$FORM{'marge_haut2'}"; } if ($FORM{'image_fond2'}) { $image_fond2 = "$FORM{'image_fond2'}"; } if ($FORM{'couleur_fond2'}) { $couleur_fond2 = "$FORM{'couleur_fond2'}"; } if ($FORM{'couleur_col2'}) { $couleur_col2 = "$FORM{'couleur_col2'}"; } if ($FORM{'couleur_cell2'}) { $couleur_cell2 = "$FORM{'couleur_cell2'}"; } if ($FORM{'couleur_cad2'}) { $couleur_cad2 = "$FORM{'couleur_cad2'}"; } if ($FORM{'lettr2'}) { $lettr2 = "$FORM{'lettr2'}"; } if ($FORM{'police12'}) { $police12 = "$FORM{'police12'}"; } if ($FORM{'police22'}) { $police22 = "$FORM{'police22'}"; } if ($FORM{'couleur2'}) { $couleur2 = "$FORM{'couleur2'}"; } if ($FORM{'couleurb2'}) { $couleurb2 = "$FORM{'couleurb2'}"; } if ($FORM{'couleurc2'}) { $couleurc2 = "$FORM{'couleurc2'}"; } if ($FORM{'couleurd2'}) { $couleurd2 = "$FORM{'couleurd2'}"; } if ($FORM{'coul_cel2'}) { $coul_cel2 = "$FORM{'coul_cel2'}"; } if ($FORM{'coul_cad2'}) { $coul_cad2 = "$FORM{'coul_cad2'}"; } if ($FORM{'coul_col2'}) { $coul_col2 = "$FORM{'coul_col2'}"; } if ($FORM{'coul_ban2'}) { $coul_ban2 = "$FORM{'coul_ban2'}"; } if ($FORM{'coul_lien2'}) { $coul_lien2 = "$FORM{'coul_lien2'}"; } if ($FORM{'coul_lien_vu2'}) { $coul_lien_vu2 = "$FORM{'coul_lien_vu2'}"; } if ($FORM{'coul_lien_actif2'}) { $coul_lien_actif2 = "$FORM{'coul_lien_actif2'}"; } if ($FORM{'coul_bbslien2'}) { $coul_bbslien2 = "$FORM{'coul_bbslien2'}"; } if ($FORM{'coul_bbslien_vu2'}) { $coul_bbslien_vu2 = "$FORM{'coul_bbslien_vu2'}"; } if ($FORM{'coul_bbslien_actif2'}) { $coul_bbslien_actif2 = "$FORM{'coul_bbslien_actif2'}"; } if ($FORM{'taille_standard2'}) { $taille_standard2 = "$FORM{'taille_standard2'}"; } if ($FORM{'taille_petite2'}) { $taille_petite2 = "$FORM{'taille_petite2'}"; } if ($FORM{'taille_grande2'}) { $taille_grande2 = "$FORM{'taille_grande2'}"; } if ($FORM{'taille_stitre2'}) { $taille_stitre2 = "$FORM{'taille_stitre2'}"; } if ($FORM{'taille_titre2'}) { $taille_titre2 = "$FORM{'taille_titre2'}"; } if ($FORM{'img2'}) { $img2 = "$FORM{'img2'}"; } if ($FORM{'imgtitre2'}) { $imgtitre2 = "$FORM{'imgtitre2'}"; } if ($FORM{'link2'}) { $link2 = "$FORM{'link2'}"; } if ($FORM{'linktitre2'}) { $linktitre2 = "$FORM{'linktitre2'}"; } if ($FORM{'compt2'}) { $compt2 = "$FORM{'compt2'}"; } if ($FORM{'bbs2'}) { $bbs2 = "$FORM{'bbs2'}"; } if ($FORM{'bbsretour2'}) { $bbsretour2 = "$FORM{'bbsretour2'}"; } if ($FORM{'forumtitre2'}) { $forumtitre2 = "$FORM{'forumtitre2'}"; } if ($FORM{'rep2'}) { $rep2 = "$FORM{'rep2'}"; } if ($FORM{'teletitre2'}) { $teletitre2 = "$FORM{'teletitre2'}"; } if ($FORM{'reptitre2'}) { $reptitre2 = "$FORM{'reptitre2'}"; } if ($FORM{'repclassement2'}) { $repclassement2 = "$FORM{'repclassement2'}"; } if ($FORM{'repaidehp2'}) { $repaidehp2 = "$FORM{'repaidehp2'}"; } if ($FORM{'repaidebp2'}) { $repaidebp2 = "$FORM{'repaidebp2'}"; $repaidebp2 =~ s/\n/
/g; } if ($FORM{'rep_ico2'}) { $rep_ico2 = "$FORM{'rep_ico2'}"; } if ($FORM{'code_html2'}) { $code_html2 = "$FORM{'code_html2'}"; } if ($FORM{'code_resoohtml2'}) { $code_resoohtml2 = "$FORM{'code_resoohtml2'}"; } if ($FORM{'resooclick2'}) { $resooclick2 = "$FORM{'resooclick2'}"; } 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 "$fontstitre\n"; print "Vous êtes en mode \"Super Administrateur\":
\n"; print "$finfontstitre
\n"; 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"; } } &page_pied; } ######## verification mot de passe ######## sub verify { open(MAIN,"$private/$util.su") || &erreurpass; @main =
; foreach $main_line (@main) { $passcrypt = &resoocrypt($pass); if ($main_line =~ /^$passcrypt$/) { 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; print "
\n"; print "\n"; ######## configuration du site #################################################### print ""; print "\n"; print ""; ######## URL / titre / adresse email ############################################## print ""; print "\n"; print ""; print "\n"; } else { print " VALUE=\"$domain\">\n"; } print ""; $title =~ s/\"/\"\;/g; print "\n"; print ""; print "\n"; print ""; print "\n"; ######## charte graphique ########################################################## print ""; print "\n"; print ""; print "\n"; print ""; print "\n"; print ""; print "\n"; print ""; print "\n"; print ""; print "\n"; print ""; print "\n"; print ""; print "\n"; if (!$couleur_cad){$couleur_cad = $couleur_col;} print ""; print "\n"; print ""; print "\n"; ######## style de caractères ####################################################### print ""; print "\n"; print ""; print "\n"; print ""; print "\n"; print ""; print "\n"; print ""; print "\n"; print ""; print "\n"; print ""; print "\n"; print ""; print "\n"; print ""; print "\n"; print ""; print "\n"; print ""; print "\n"; print ""; print "\n"; print ""; print "\n"; print ""; print "\n"; print ""; print "\n"; print ""; print "\n"; print ""; print "\n"; print ""; print "\n"; print ""; print "\n"; ######## options affichage ######################################################### print ""; print "\n"; print ""; print "\n"; print ""; print "\n"; print ""; print "\n"; print ""; print "\n"; ######## options rubriques ######################################################### print ""; print "\n"; print ""; print "\n"; $imgtitre =~ s/\"/\"\;/g; print "\n"; print ""; print "\n"; $linktitre =~ s/\"/\"\;/g; print "\n"; print ""; print "\n"; $forumtitre =~ s/\"/\"\;/g; print "\n"; print "\n"; print "\n"; print "\n"; print "\n"; print ""; print "\n"; $teletitre =~ s/\"/\"\;/g; print "\n"; print "\n"; $repaidehp =~ s/\"/\"\;/g; print "\n"; print "\n"; $repaidebp =~ s/\"/\"\;/g; $repaidebp =~ s/
/\n/g; print "\n"; print "\n"; print "\n"; print "\n"; print "\n"; &hidden; print "\n"; print "\n"; print ""; print "\n"; print "\n"; print "\n"; print "\n"; &hidden; print "\n"; print "\n"; print "\n"; print "
$fontstitre Configuration du site: \"$domain\" $finfontstitre

$fontstitre URL perso, titre et adresse email: $finfontstitre

$font URL perso: $finfont

$font Titre: $finfont

$font Email principal: $finfont

$font Email administrateur: $finfont

$fontstitre Charte graphique: $finfontstitre

$font Marge haut de page: $finfont

$font Bandeau du site: $finfont"; opendir (BANDEAU, $dir_img); @BANDEAU=grep(/\.(gif|jpg|png)$/i, readdir BANDEAU); print "\n"; close (BANDEAU); print "

$font Couleur fond bandeau: $finfont "; } else{ print " VALUE=\"transparent\">"; } print "Exemple

$font Image de fond: $finfont"; opendir (FOND, $dir_fond); @FOND=grep(!/^\.\.?$/, readdir FOND); print "\n"; close (FOND); print "

$font Couleur fond: $finfont Exemple

$font Couleur colonne: $finfont Exemple

$font Couleur cellule: $finfont Exemple

$font Couleur cadre: $finfont Exemple

$font Répertoire lettrines: $finfont"; $dir_l = "$dir_img/lettr"; opendir (LETT, $dir_l); @LETT=grep(!/^\.\.?$/, readdir LETT); print "\n"; close (LETT); print "
$font(actuellement : $lettr)$finfont"; print "

$fontstitre Style de caractères: $finfontstitre

$font Police \"standard\": $finfont Exemple de texte

$font Police par défaut: $finfont Exemple de texte

$font Couleur texte \"standard\": $finfont Exemple de texte

$font Couleur texte \"cell.\": $finfont Exemple de texte

$font Couleur texte \"col.\": $finfont Exemple de texte

$font Couleur texte \"band.\": $finfont Exemple de texte

$font Couleur texte \"cadre\": $finfont Exemple de texte

$font Couleur texte \"b\": $finfont Exemple de texte

$font Couleur texte \"c\": $finfont Exemple de texte

$font Couleur texte \"d\": $finfont Exemple de texte

$font Couleur texte \"lien\": $finfont Exemple de texte

$font Couleur texte \"lien vu\": $finfont Exemple de texte

$font Couleur texte \"lien actif\": $finfont Exemple de texte

$font Taille standard: $finfont$font 1 \n"; print " 2 \n"; print " 3 \n"; print " 4 $finfontExemple de texte

$font Taille petite: $finfont$font 1 \n"; print " 2 \n"; print " 3 \n"; print " 4 $finfontExemple de texte

$font Taille grande: $finfont$font 2 \n"; print " 3 \n"; print " 4 \n"; print " 5 $finfontExemple de texte

$font Taille sous-titre: $finfont$font 3 \n"; print " 4 \n"; print " 5 \n"; print " 6 $finfontExemple de texte

$font Taille titre: $finfont$font 3 \n"; print " 4 \n"; print " 5 \n"; print " 6 $finfontExemple

$fontstitre Options affichage: $finfontstitre

$font Compteur visite: $finfont$font oui (page index) \n"; print " oui (toute page) \n"; print " non $finfont

$font Code html: $finfont$font oui (page article) \n"; print " non $finfont

$font Code Resoohtml: $finfont$font oui \n"; print " non $finfont

$font Resooclick: $finfont$font oui (page index) \n"; print " non $finfont

$fontstitre Options rubriques: $finfontstitre

$font Page image : $finfont$font oui (page accueil) \n"; print " oui (toute page) \n"; print " non $finfont
$font Titre page image: $finfont

$font Page liens : $finfont$font oui (page index) \n"; print " non $finfont
$font Titre page liens: $finfont

$font Lien forum: $finfont$font oui (page index) \n"; print " oui (toute page) \n"; print " non $finfont
$font Titre page forum: $finfont
$font URL de retour externe: $finfont
$font Couleur lien: $finfont (exemple)//(par defaut)
$font Couleur lien vu: $finfont (exemple)//(par defaut)
$font Couleur lien actif: $finfont (exemple)//(par defaut)

$font Page téléchargement: $finfont$font oui \n"; print " non $finfont
$font Titre de la page: $finfont
$font Classement fichiers: $finfont\n"; print "\n"; print "
$font Aide haut de page: $finfont
$font Sous Titre: $finfont
$font Aide bas de page: $finfont
$font Utiliser icones: $finfont$font oui \n"; print " non $finfont


\n"; print "\n"; &page_pied; } ######## 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 == "4" ) { print "Oups ! Erreur...\n"; } else { print "Page configuration (1)\n"; } } else { print "Saisie du mot de passe $fontstitre(super-admin)$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) # action = 2 ###(modification) # action = 3 ###(suppression) # action = 4 (erreur) # action = 5 ###(creation admin) # action = 6 ###(suppression admin) # action = 7 ###(creation super admin) # action = 8 ###(suppression super admin) # action = 9 (config) # action = 10 ###(stat) sub action { ✓ &page_tete; print "$fontgrande\n"; if ($action == "9" ) { %champs=('urlperso2', 'urlperso','title2', 'title', 'email2', 'email', 'admin2', 'admin', 'marge_haut2', 'marge_haut', 'bandeau2', 'bandeau', 'couleur_bandeau2', 'couleur_bandeau', 'image_fond2', 'image_fond', 'couleur_fond2', 'couleur_fond', 'couleur_col2', 'couleur_col', 'couleur_cell2', 'couleur_cell', 'lettr2', 'lettr', 'police12', 'police1', 'police22', 'police2', 'couleur2', 'couleur', 'couleurb2', 'couleurb', 'couleurc2', 'couleurc', 'couleurd2', 'couleurd', 'coul_lien2', 'coul_lien', 'coul_lien_vu2', 'coul_lien_vu', 'coul_cad2', 'coul_cad', 'coul_cel2', 'coul_cel', 'coul_col2', 'coul_col', 'coul_ban2', 'coul_ban', 'coul_lien_actif2', 'coul_lien_actif', 'taille_standard2', 'taille_standard', 'taille_petite2', 'taille_petite', 'taille_grande2', 'taille_grande', 'taille_stitre2', 'taille_stitre', 'taille_titre2', 'taille_titre', 'img2', 'img', 'imgtitre2', 'imgtitre', 'link2', 'link', 'linktitre2', 'linktitre', 'compt2', 'compt', 'bbs2', 'bbs', 'bbsretour2', 'bbsretour', 'rep2', 'rep', 'reptitre2', 'reptitre', 'repclassement2', 'repclassement', 'repaidehp2', 'repaidehp', 'repaidebp2', 'repaidebp', 'code_html2', 'code_html', 'resooclick2', 'resooclick', 'coul_bbslien2', 'coul_bbslien', 'coul_bbslien_vu2', 'coul_bbslien_vu', 'coul_bbslien_actif2', 'coul_bbslien_actif', 'couleur_cad2', 'couleur_cad', 'forumtitre2', 'forumtitre', 'teletitre2', 'teletitre', 'rep_ico2', 'rep_ico', 'code_resoohtml2', 'code_resoohtml'); open (CNF, "resoocnf.pl") || &badcheck; @cnf = ; close (CNF); open (CNF, ">resoocnf.pl") || &badcheck2; foreach $line (@cnf) { print CNF "$line"; last if ($line =~ /\#EDIT/); } print CNF "\n"; foreach $champs (sort keys %champs){ print CNF "\$$champs{$champs} \= \"$$champs\"\;\n"; } print CNF "\n"; print CNF "1\;\n"; close (CNF); } if ($action == "4") { print "Erreur: $error.

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

\n"; print "$finfont\n"; } else { print "Mise à jour configuration ...OK \!

\n"; } print "
\n"; print "
\n"; &hidden; print "\n"; print "\n"; print "\n"; print "
\n"; print "
\n"; print "
\n"; print "
\n"; if ($page) { print "\n"; } print "\n"; print "\n"; 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 == "9") { $email2 =~ s/\@/\\\@/g; $admin2 =~ s/\@/\\\@/g; if (($link2 == "2") and (($link == "1") or !($link))) { $link_idx = "$dir_txt/link.idx"; $link_txt = "$dir_txt/link.lst"; if (!-e "$link_idx") { ## creer le fichier idx open(LINK,">$dir_txt/link.idx") || die $!; print LINK "$linktitre2\n"; print LINK "$defautretour\n"; print LINK "\n\n\n\n\n\n\n"; print LINK "1\n"; close(LINK); ## creer le fichier txt open(LINK,">$dir_txt/link.txt") || die $!; print LINK "Voir l'aide ci-dessous..."; close(LINK); } } } } sub badcheck { $error = "Fichier resoocnf.pl absent..."; $action = "4"; } sub badcheck2 { $error = "Impossible d'écrire dans le fichier resoocnf.pl..."; $action = "4"; }