Textes 1.4b - Forum gratuit en PHP3/MySQL basé sur celui d'altern.org # ============================================================================= # # Ce forum a été écrit par Valentin Lacambre pour Altern.org # License: copyleft, GPL, http://www.april.org/gnu/gpl_french.html V. Lacambre # # Modifications: - Plam (220@chez.com) # - BohwaZ (zero@tilt.eu.org) # - Jérémy Audry (grandpa@altern.org) # - Micémoa (micemoa@altern.org) # - Guillaume (gjamet@altern.org) # # Plus d'infos, documentation, forum des utilisateurs, etc. sur : # http://pretextes.apinc.org ou par e-mail : grandpa@altern.org # ============================================================================= header("Expires: Mon, 26 Jul 1997 05:00:00 GMT"); header("Last-Modified: " . gmdate("D, d M Y H:i:s") . " GMT"); header("Cache-Control: no-cache, must-revalidate"); header("Pragma: no-cache"); # Chronomètre de génération de la page : initialisation # =============================================== function getmicrotime(){ list($usec, $sec) = explode(" ",microtime()); return ((float)$usec + (float)$sec); } $time_start = getmicrotime(); # Définit les variables "d'environnement" pour PHP4 (pour rendre le script compatible avec le register_globals sur "off") if(isset($_SERVER['PHP_SELF'])){ $env_php_self = basename($_SERVER['PHP_SELF']); // convertit la variable d'environnement pour free.fr $env_php_ver = $_SERVER['SERVER_SOFTWARE']; $env_query_string = $_SERVER['QUERY_STRING']; } # Définit les variables "d'environnement" pour PHP3 else{ $env_php_self = basename($PHP_SELF); // convertit la variable d'environement pour free.fr $env_php_ver = $SERVER_SOFTWARE; $env_query_string = $QUERY_STRING; } # Détecte le format d'extension des fichiers # ================================================== $dir=opendir('.'); while ($file = readdir($dir)) { ereg("pretextes\.classe\.(php|php3)", $file, $temp); #if ( ereg("(pretextes.plugin.*)", $file, $plugin) ) { #@include("$plugin[1]"); #} } $extension = $temp[1]; closedir($dir); # Réupération des paramètres du forum # ================================================== include ("pretextes.preferences.".$extension); # Identification du visiteur (adresse IP et nom de la machine cliente) # =============================================== if(getenv(HTTP_X_FORWARDED_FOR)){$ip = getenv(HTTP_X_FORWARDED_FOR);} else{$ip = getenv(REMOTE_ADDR);} $ipl = gethostbyaddr($ip); # Compteur de visites # =============================================== $ip3 = getenv(REMOTE_ADDR); $fp = @fopen("$compteur","r+"); $nbvisites = @fgets($fp,10); $nbvisites++; @fseek($fp,0); @fputs($fp,$nbvisites); @fclose($fp); # Connexion à la table # ================================================== $lien = mysql_connect("$host", "$user", "$pass"); mysql_select_db("$bdd",$lien); include("pretextes.lang.".$langue.".".$extension); # Charge le fichier de langue include("pretextes.classe.".$extension); # Charge la classe # Initialise $debut if(!isset($debut) || empty($debut) || !ereg("[0-9]", $debut)){$debut=0;} if(!isset($page) || empty($page)){$page=1;} $pretxt = new Pretextes; # Initialise la classe $pretxt->pass_or_die($passit, $forumpassword, $env_php_self); $pretxt->quit_admin($env_query_string); $pretxt->postage($table, $postage, $cdsujet, $cdmail, $cdtxt, $cdnom, $premier, $lecture, $refresh, $env_php_self, $ip, $decalage); $pretxt->efface_msg($effacer, $passforum, $forumpassword, $env_php_self, $delete, $table); $pretxt->admin_table($table, $env_query_string, $env_php_self); $pretxt->erreur_recherche($recherche, $env_php_self, $lecture); $pretxt->debut_html($nomforum, $nlink, $alink, $vlink, $bgcolor, $table_bgcolor, $txt_color, $filinfobgcolor, $titresbgcolor, $filtxtbgcolor, $extension); # Début de la section "Introduction" # ================================================== echo("\n"; ?>
cellules_recherche($env_php_self, $table_bgcolor, $_cellules_recherche, $lecture, $colspan="0", $recherche, $col_head); ?>
retour_message($message, $_retour_message); ?>

'.$_retour_message[8].'

'; } else{ $recherche = addslashes($recherche); $recherche_nom_sujet = htmlentities($recherche); if(isset($in_file) && !empty($in_file)){ switch($rt){ case "tt"; $_where = "(nom LIKE '%$recherche_nom_sujet%' OR sujet LIKE '%$recherche_nom_sujet%' OR email='%$recherche%' OR texte LIKE '%$recherche%')"; break; case "tx"; $_where = "(texte LIKE '%$recherche%')"; break; case "ps"; $_where = "(nom LIKE '%$recherche%')"; break; case "sg"; $_where = "(sujet LIKE '%$recherche%')"; break; } $query = "SELECT * FROM $table WHERE (premier='$in_file' OR id='$in_file') AND ".$_where." ORDER BY tempo DESC LIMIT $debut, $parpage"; $nb = mysql_query("SELECT id FROM $table WHERE (premier='$in_file' OR id='$in_file') AND ".$_where); $total_resultats = mysql_num_rows($nb); // nombre total de résultats } else{ switch($rt){ case "tt"; $_where = " nom LIKE '%$recherche_nom_sujet%' OR sujet LIKE '%$recherche_nom_sujet%' OR email='%$recherche%' OR texte LIKE '%$recherche%'"; break; case "tx"; $_where = "texte LIKE '%$recherche%'"; break; case "ps"; $_where = "nom LIKE '%$recherche_nom_sujet%'"; break; case "sg"; $_where = "sujet LIKE '%$recherche_nom_sujet%'"; break; } $query = "SELECT * FROM $table WHERE ".$_where." ORDER BY tempo DESC LIMIT $debut, $parpage"; $nb = mysql_query("SELECT id FROM $table WHERE ".$_where); $total_resultats = mysql_num_rows($nb); // nombre total de résultats } $result = mysql_query($query); $nb_resultats = mysql_num_rows($result); // nombre de résultats affichés par pages $pretxt->cellule_admin($passforum, $forumpassword, "3", $col_head, $env_php_self, $_cellule_admin); echo "\n"; $pretxt->header_table($_header_table, $col_head, $recherche); $nb = mysql_num_rows($result); $recherche_html = htmlentities($recherche); $pretxt->comptage_nb_reps($nb, $_comptage_nb_reps, $total_resultats, $table_bgcolor); $pretxt->cellule_retour (3, $table_bgcolor, $env_php_self, $_cellule_retour, $debut, $recherche, $page); $pretxt->affichage_liste($result, $table, $col1, $col2, $env_php_self, $af_heure, $debut, $recherche, $recherche_html, $lecture, $passforum, $forumpassword, $page); $pretxt->cellule_navigation (4, $table_bgcolor, $env_php_self, $pretxt->barre_nav($debut, $nb_resultats, $parpage, $total_resultats, $env_php_self, $_barre_nav, $recherche, $rt, $page)); if($passforum == md5($forumpassword)){ $pretxt->cellule_navigation(3, $table_bgcolor, $env_php_self, "\n $_cellule_retour[2]\n"); } echo "
"; if($passforum == md5($forumpassword)){ echo "\n"; } $pretxt->fin_html(); exit; } } # Début de la section "Administration" # ================================================== $pretxt->form_admin($env_query_string, $env_php_self, $tail_table, $align1, $_form_admin); if(isset($lecture)){ # Si lecture est défini on affiche le fil $query = "SELECT * FROM $table where id = $lecture"; $result = mysql_query($query,$lien); $lignes = mysql_num_rows($result); echo("\n"; $pretxt->cellule_admin($passforum, $forumpassword, "2", $col_head, $env_php_self, $_cellule_admin); $pretxt->cellule_retour (2, $table_bgcolor, $env_php_self, $_cellule_retour, $debut, $recherche, $page); $res = mysql_fetch_array($result); $pretxt->affichage_fil($res, $passforum, $forumpassword, $col1, $col2, $env_php_ver, $table_bgcolor, $lecture, $filinfobgcolor, $titresbgcolor, $filtxtbgcolor); $followsubject = $res[sujet]; $query = "SELECT * FROM $table where premier = $lecture ORDER BY id"; $result = mysql_query($query); if(mysql_num_rows($result) >= 1){ while($res = mysql_fetch_array($result)){ $pretxt->affichage_fil($res, $passforum, $forumpassword, $col1, $col2, $env_php_ver, $table_bgcolor, $lecture, $filinfobgcolor, $titresbgcolor, $filtxtbgcolor); } } $pretxt->cellule_retour (2, $table_bgcolor, $env_php_self, $_cellule_retour, $debut, $recherche, $page); echo"\n
"; if($passforum == md5($forumpassword)){ echo "\n"; } mysql_free_result($result); // $premier= $lecture; } else{ # Si $lecture n'est pas défini, on affiche la liste des messages $query = "SELECT * FROM $table where premier='0' ORDER BY tempo DESC LIMIT $debut,$parpage"; $result = mysql_query($query); $nb_resultats = mysql_num_rows($result); // nombre de résultats affichés par pages $nb = mysql_query("SELECT id FROM $table where premier='0'"); $total_resultats = mysql_num_rows($nb); // nombre total de résultats $req_nb_reps = mysql_query("SELECT premier FROM $table where premier='$aff_messages->id'"); $nb_reps = mysql_num_rows($req_nb_reps); echo "\n"; $pretxt->header_table($_header_table, $col_head, $recherche); $pretxt->cellule_admin($passforum, $forumpassword, "4", $col_head, $env_php_self, $_cellule_admin); $pretxt->affichage_liste($result, $table, $col1, $col2, $env_php_self, $af_heure, $debut, $recherche, $recherche_html, $lecture, $passforum, $forumpassword, $page); $pretxt->cellule_navigation (4, $table_bgcolor, $env_php_self, $pretxt->barre_nav($debut, $nb_resultats, $parpage, $total_resultats, $env_php_self, $_barre_nav, $recherche, $rt, $page)); if($passforum == md5($forumpassword)){ $pretxt->cellule_navigation (4, $table_bgcolor, $env_php_self, "$_cellule_retour[2]"); } echo "
\n"; if($passforum == md5($forumpassword)){ echo "\n"; } } $pretxt->form_message($fige, $passforum, $forumpassword, $env_php_self, $tail_msg, $align2, $col_head, $col_msg, $lecture, $followsubject, $_form_message, $coo_nom, $coo_mail, $coo_sign); # Compteur de hits : affichage # =============================================== echo '
'.$nbvisites.'
'; # Chronomètre de génération de la page : Calcul et affichage # =============================================== $time = (round((getmicrotime()-$time_start)*100))/100; echo "Page générée en $time seconde(s) par "; echo gethostbyaddr('127.0.0.1'); echo ".
\n"; # Affichage du pied de page # =============================================== $pretxt->fin_html(); exit; ?>