"); fclose($fd); } # Là, on va chercher les informations dans le fichier data_photos. S'il # n'existe pas, on le crée. if (is_file("data_photos.php")) { include "data_photos.php"; } else { write_dat(); }; $mini_px= $mini_sz . "px"; # La fonction qui permet de construire le tableau des commentaires triés # par date. Elle utilise cmp comme comparateur. function cmp ($a,$b) { return (1-strcmp($a['date'],$b['date'])); } function set_commbis() { $commbis=array(); global $comments; foreach ($comments as $nom => $tab) { foreach ($tab as $id=>$comm) { $commbis[]=array( 'auteur' => $comm['auteur'], 'text' => $comm['text'], 'date' => $comm['date'], 'nom' => $nom, 'id' => $id); } } usort($commbis,"cmp"); $GLOBALS['commbis'] = $commbis; } # Une fontion pour construire la table des photos. On l'utilise à deux # endroits distincts. function set_table () { global $rep_photo,$regexp; $table=array(); if (!is_dir($rep_photo)) { // On ne trouve pas les photos (la louuuze !) print "
Impossible de trouver le dossier \"$rep_photo\"
"; print "Veuillez vérifier votre configuration.
"; } else { // Là, on les a. C'est good, a priori. # L'objectif est ici de remplire la table $table avec les noms des # photos # qui existent. On utilise pour ça la regexp $handle = opendir($rep_photo); while (false !== ($file = readdir($handle))) { $seen=0; if (@is_file($rep_photo.$file)) { // On a trouvé un vrai fichier # On doit maintenant regarder si oui ou non la regexp correspond ou # pas. $seen dit si on a déjà choisi de garder le fichier. foreach (explode(' ',$regexp) as $key=>$value) { if (false !== strpos($file,$value) && $seen==0) { $seen=1; $table[]=$file; } } } } # Et ensuite, on range tout. closedir($handle); sort($table); $GLOBALS['table'] = $table ; } } # On vérifie que le répertoire contenant les miniatures existe. Si non, on # le crée. if (!is_dir($rep_mini)) { mkdir($rep_mini); } # Pour la connexion à l'administration. Si on demande la déconnexion, on # vire le cookie. if (isset($_GET['deco'])) { setcookie('login'); unset($_COOKIE['login']); } # Dans la même veine, il faut prévoir une manière d'envoyer un cookie # pour dire si la personne veut ou non utiliser du javascript. Par # défaut, c'est la variable 'java' qui va nous dire ça. Par défaut, on # l'utilise (je me suis pas fait chier pour rien). $java='true'; if ($_POST['java']=='false' || $_COOKIE['java']=='false') { setcookie('java','false'); $java='false'; } if ($_POST['java']=='true') { setcookie('java','true'); $java='true'; } # Et pour en finir avec ça, on définit la variable $poster, qui contient # le nom de la personne pour les commentaires. Parce que c'est bien # pratique, oui parfaitement. $poster='Nom' ; // valeur par défaut if (isset ($_POST['nom'])) { $_SESSION['poster']=$_POST['nom']; } if (isset ($_SESSION['poster'])) { $poster=$_SESSION['poster']; } # On regarde si la personne demande une connexion avant toute chose. Dans # ce cas, il faudra honorer sa demande, ce qui se traduit par un envoi de # cookie. On en profite également pour prendre le cookie s'il existe. if ($_POST['action']=='login' && $cr=$_POST['pass2']) {//mot de passe envoyé $cr=crypt($cr,$cr); //on hache le tout (avec des pruneaux) setcookie('login',$cr); $_COOKIE['login'] = $cr ; } if (isset($_COOKIE['login']) && $_COOKIE['login'] != "") { $cr=$_COOKIE['login']; } # Et enfin, on teste l'authentification... if (isset($cr)) { if ($cr!=$pass) { setcookie('login'); header('HTTP/1.x 403 Unauthorized'); setcookie('login'); print (" Mot de passe erroné. Revenir"); exit ; } else { $auth=1; } } else { $auth=0; } # Ensuite, on imprime les entêtes... c'est ici qu'on modifie la /*************************************************************************** **************************************************************************** ** ____ ____ __ ____ _____ _ _ _____ _ _____ ___ ___ _ _ ** ** | _ \| _ \ _/_/_/ ___|| ____| \ | |_ _|/ \|_ _|_ _/ _ \| \ | | ** ** | |_) | |_) | ____\___ \| _| | \| | | | / _ \ | | | | | | | \| | ** ** | __/| _ <| _|_ ___) | |___| |\ | | |/ ___ \| | | | |_| | |\ | ** ** |_| |_| \_\_____|____/|_____|_| \_| |_/_/ \_\_| |___\___/|_| \_| ** ** ** **************************************************************************** ***************************************************************************/ print <<< __EOF__"
. $comm['date']
. "
"
. $comm['auteur']
. " : "
. stripslashes($comm['text'])
. "
Pas encore de commentaire
"; } set_table(); print "\n"; $page=floor((array_search($nom,$table))/($x_size*$y_size)); print "Revenir aux photos\n"; print "Page faite par Mouton, avec l'aide de 131, finie le 2006-01-21
Merci d'indiquer votre mot de passe pour accéder à l'interface de configuration
"; } else { //mec authentifié... On roule sur l'interface print "Bienvenue sur Gloupine, la machine de configuration de ce script. Si ce n'est pas fait, changez de mot de passe...
"; if ($i=$_POST['delete']) { //On vire un post $i='$comments'.stripslashes($i); eval("unset($i);if ($i) ksort($i);"); print "Le post est supprimé
"; $_POST['action']='set_config'; // On enverra les données, $_POST['data']=array(); // Mais on change pas grand chose } if ($_POST['action']=='set_config') { //Si on a demandé à revoir des trucs extract($_POST['data']); // On les récupère # Changement de mot de passe if (crypt($cr=$_POST['pass0'],$cr) == $pass // Si on a mis le bon && ($cr=$_POST['pass1'])==$_POST['pass2']) { //et deux fois le même $pass=crypt($cr,$cr); // alors on vire le mot de passe, print "Mot de passe changé
"; } write_dat(); // On écrit tout ce beau monde print "Modifications enregistrées
"; } print "(*) doit se terminer par un '/', '.' fait reférence au dossier
courant (celui où se trouve ce fichier), '..' au dossier parent.
Si vous placez ce fichier directement dans le repertoire où se trouve vos
photos, (ce que je conseille), \"Repertoire des photos\" vaudra donc './'
(**) contient la liste des noms de fichiers à prendre en compte. Pour chaque fichier dans le répertoire, le script regarde si le fichier contient un des mots de la liste. Si oui, il est affiché, sinon, il est laissé.
(***) décide si oui ou non on doit afficher le lien permettant d'accéder à l'interface de configuration et au re-calcul des miniatures de première page. Si le lien est effacé, on peut retrouver l'interface de configuration en tapant '?config' à la suite de 'fichier.php' dans l'url.
Si vous avez la moindre question, vous pouvez écrire à mouton@tourniaire.org
Commentaires
"; # Affichage de la table des commentaires. C'est encore très laid, # mais je changerai ça un jour.... set_commbis(); print "" . ((int)$num + 1) . " | \n\n" . "\n | \n\n" . $comm['date'] . " | " . $comm['auteur'] . " : " . htmlentities(substr(html_entity_decode($comm['text']),0,50)) . "... | \n
Page faite par Mouton, finie le 2006-01-21