Your IP : 216.73.216.229


Current Path : /home/photograt/gerard-clavet-photos.com/AutreJML4/SauveDec22/STIP/supportwiki/
Upload File :
Current File : /home/photograt/gerard-clavet-photos.com/AutreJML4/SauveDec22/STIP/supportwiki/stipindex.php3

<?php

/* ##################### A propos de WIKIPLAM version MySql ################ */ 
/* WikiPlam ! Informations sur le concept de Wiki : http://c2.com/cgi/wiki   */ 
/* Copyright � 2002 Pierre Lamelin (lamelin.com - p220.free.fr/wiki)         */ 
/* Copyleft attitude : ce script est libre, vous pouvez le redistribuer      */ 
/* et/ou le modifier selon les termes de la Licence Art Libre (artlibre.org) */ 
/* Merci a BohwaZ (http://bohwaz.lautre.net) pour ses idees et sa sympathie  */ 

/* ########################## Configuration de WIKIPLAM #################### */ 
$host= "cm.ac-amiens.fr";       // Le serveur MySql ("localhost" ou "sql.free.fr"...) 
$user= "REstipgc02";            // Le login de connexion a MySql 
$pass= "cbdmwjbn3k";                // Le mot de passe de connexion a MySql 
$database= "stip";        // Le nom de la base (tres souvent identique au login) 
$tablewiki= "wikistip";      // Nom que vous voulez donner a la table de la base 

$pagewiki= "stipindex.php3";  // Nom de ce fichier (n'oubliez pas de le changer le cas echeant !) 
$lienlogo= "logo_wikiplam.png";  // Chemin (absolu ou relatif) vers le logo du haut de la page 
$pagesoff = array( "stipindex.php3");  // Liste des pages dont vous voulez empecher les modifs (obligatoire pour WikiListe). Les s�parer par des virgules. 

/* ######################################################################### */ 


/* Les variables $skin["haut"] et $skin["bas"] sont egalement modifiables si  */ 
/* elles conservent les 4 variables ecrites en majuscule (voir ci-dessous).   */ 

/* --------------------- Debut du skin (haut) --------------------- */ 
/* Note : "haut" contient 3 variables: #SELF, #TITRE et #PHRASE */ 

$skin[ "haut"]= "<!DOCTYPE html PUBLIC \"-//W3C//DTD HTML 4.01 Transitional//EN\">

<html>
<head><title>Wiki: #TITRE</title>
<meta http-equiv=\"Content-Type\" content=\"text/html; charset=iso-8859-1\">
<style type=\"text/css\"><!--
table       {border: thin solid black;}
td          {padding: 12pt;}
body,td,a   {font-family: arial,sans-serif;}
a           {color: #000088; text-decoration: underline;}
a:hover     {color: red; text-decoration: none;}
//-->
</style></head>

<body bgcolor=\"#FFFFFF\">
     <a href=\"#SELF\"><img src=\"$lienlogo\" alt=\"logo\" border=0></a>
     <center>
     <table width=\"95%\" bgcolor=\"#EEEEEE\">
     <tr>
      <td><center><h1>#PHRASE #TITRE</h1></center>
      <p>";

/* --------------------- Fin du skin (haut) --------------------- */ 


/* ---------------------- D�but du skin (bas) ---------------------- */ 
/* Note : "bas" contient 2 variables: #FORM (INDISPENSABLE) et #SELF */ 

$skin[ "bas"]= "
    #FORM
    <font size=\"-1\">Retour � <a href=\"#SELF?FrontPage\"><font color=\"red\">FrontPage</font></a> |
    <a href=\"#SELF?WikiListe\">WikiListe</a> des pages</font>
      </td>
     </tr>
    </table>
    </center>
</body>
</html>";

/* ----------------------- Fin du skin (bas) ----------------------- */ 


/* ---------------------- D�but des fonctions ---------------------- */ 

function crea_table() {
global $database,$tablewiki;
$ins= "CREATE TABLE $tablewiki (name VARCHAR (255) not null , text TEXT , date VARCHAR (12) , ip VARCHAR (255) , PRIMARY KEY (name))";
$result = mysql_query($ins);
Return $result;
}


function madate($date) {
$date=substr($date,4,2). "/".substr($date,2,2). "/".substr($date,0,2). " ".substr($date,6,2). ":".substr($date,8,2). ":".substr($date,10,2);
return $date;
}


function dans_tablo($elem,$array_t) { 
for ($i=0; $i < count($array_t); $i++) { 
    if ($array_t[$i] == $elem) { return true; } 
    } 
return false; 
}


function getlongip() {
if (getenv(HTTP_X_FORWARDED_FOR))
        { $ipe=getenv(HTTP_X_FORWARDED_FOR); } 
   else { $ipe=getenv(REMOTE_ADDR); } 
return gethostbyaddr($ipe);
}


function mysql_table_exists($table,$db){ 
$tables=mysql_list_tables($db); 
while (list($temp)=mysql_fetch_array($tables)) { 
                if ($temp == $table) { return 1; }
                } 
return 0; 
}


function affichewikiliste() {
global $tablewiki;
$list =  "'''Derni�res modifications :'''\n\n";
$ins =  "SELECT name, date, ip FROM $tablewiki ORDER BY date DESC";
$TableRep=mysql_query($ins);
if ($TableRep>0) { 
    while (list($name, $date, $ip) = mysql_fetch_row ($TableRep)) {
        $list .= $name. " ..... ".madate($date). " ..... ".$ip. "\n";
        }
    $count = mysql_num_rows($TableRep);
    $list .=  "\nTotal Wiki : '''".$count. " pages'''";
    } else {
    $list =  "Erreur de lecture MySql";
    }
echo format_html($list);
}


function affichewiki($name) {
global $editmode,$pagewiki,$tablewiki;
$ins =  "SELECT * FROM $tablewiki where (name='$name')";
$TableRep=mysql_query($ins);
if ($TableRep>0) {
        $text = @mysql_result($TableRep, 0,  "text");   // Le @ �vite le display d'erreur si la page est vide 
        $text = stripslashes($text);
        } else {
        $text =  "Erreur de lecture MySql";
        }
if ($text ==  "") {
        $text =  "D�crivez $name en cliquant sur le bouton.";
        }
if ($editmode !=  "edit") {       // Affiche $text normalement pour les modes normal et done 
        if ($name ==  "WikiListe") {      // Attention cas particulier WikiListe 
              affichewikiliste();
              } else {
              echo format_html($text);
              }
        } else {                 // Affiche $text dans sa boite d'edition pour le mode edit 
              echo  "
            <form method=\"post\" action=\"".$pagewiki. "\">
            <input type=\"hidden\" name=\"editmode\" value=\"done\">
            <input type=\"hidden\" name=\"name\" value=\"".$name. "\">
            <textarea rows=18 cols=70 name=\"text\" style=\"width:100%\"
             wrap=virtual>".$text. "</textarea><br>
            <input type=\"submit\" value=\"Enregistrer\"><input name=\"r\" type=\"reset\" value=\"Reset\">
            </form>
        <a href=\"".$pagewiki. "?ModeDemploi\">ModeDemploi</a> : astuces pour l'�dition";
        }
}


function postwiki($name,$text) {
global $pagewiki,$tablewiki;
$date = date( "ymdHis");                  // date pour l'enregistrement dans MySql 
$ddate = date( "d M Y - H:i");            // date pour le tag <d> qu'on affiche 
$text = str_replace( "<d>", $ddate, $text);
$ip = getlongip();
$text = htmlspecialchars(addslashes($text));
$ins =  "REPLACE INTO $tablewiki (name,text,date,ip) VALUES ('$name','$text','$date','$ip')";
$res = mysql_query($ins);
}


function affichehaut() {                 // remplace les variables en MAJUSCULE 
global $name,$skin,$editmode,$pagewiki;
$skin[ "haut"] = ereg_replace( "#TITRE", $name, $skin[ "haut"]);
$skin[ "haut"] = ereg_replace( "#SELF", $pagewiki, $skin[ "haut"]);
if ($editmode ==  "") {
      echo ereg_replace( "#PHRASE",  "Wiki:", $skin[ "haut"]);
      } elseif ($editmode ==  "edit") {
      echo ereg_replace( "#PHRASE",  "Edition de", $skin[ "haut"]);
      } else {
      echo ereg_replace( "#PHRASE",  "Merci d'avoir �dit�", $skin[ "haut"]);
      }
}


function affichebas() {                  // remplace les variables en MAJUSCULE 
global $name,$skin,$editmode,$pagewiki,$pagesoff;
if ($editmode ==  "edit") {               // Mode edition : rien a afficher en bas 
      $rempl= "
       <p><hr noshade size=1>";
      } else {
      if ((dans_tablo($name,$pagesoff)) == true) {   // Autres modes : cas ou l'on ne veut pas que les pages soient modifiables 
                $rempl= "<p><hr noshade size=1>Page non modifiable<p>\n";
                } else {                           // Autres modes : mode par defaut. 
                $rempl= "
       <p><hr noshade size=1>
       <form method=\"post\" action=\"#SELF\">
       <input type=\"submit\" value=\"Editer la Page\">
       <input type=\"hidden\" name=\"name\" value=\"".$name. "\">
       <input type=\"hidden\" name=\"editmode\" value=\"edit\">
       </form>"; }
       }
$skin[ "bas"] = ereg_replace( "#FORM",$rempl,$skin[ "bas"]);
echo ereg_replace( "#SELF",$pagewiki,$skin[ "bas"]);
}


function format_html($text) {            // Affiche $text selon les caract�ristiques Wiki  
global $pagewiki;
$text = ereg_replace( "'''(('?[^\n'])*)'''",  "<b>\\1</b>", $text);
$text = ereg_replace( "''(('?[^\n'])*)''",  "<i>\\1</i>", $text);
$text = ereg_replace( "([[:space:];<>'\(]|^)(([A-Z][a-z���������]+){2,})([[:space:].,!?&<>\)]|$)",
                      "\\1<a href=\"".$pagewiki. "?\\2\">\\2</a>\\4", $text);
$text = eregi_replace( "([[:space:];<>\(]|^)([[:alnum:]]+)://([^[:space:]]*)([[:alnum:]#?/=])([[:space:].,&<>\)]|$)",
                       "\\1<a href=\"\\2://\\3\\4\" target=\"_blank\">\\2://\\3\\4</a>\\5", $text);
$text = eregi_replace( "([_a-z0-9-]+(\.[_a-z0-9-]+)*@[a-z0-9-]+(\.[a-z0-9-]+)+)",
                       "<a href=\"mailto:\\1\">\\1</a>", $text);
$text = ereg_replace( "\[http://([^[:space:]]*)([[:alnum:]#?/&=])\]",
                      "<img src=\"http://\\1\\2\" alt=\"http://\\1\\2\">", $text);
$text = ereg_replace( "%%(([A-Z][a-z���������]+){2,})%%",  "\\1", $text);
$text = ereg_replace( "\n[ ]+([[:print:]���������]+)",  "\n<tt>&nbsp;&nbsp;\\1</tt>", $text);
$text = ereg_replace( "\n\*[ ]+([[:print:]���������]+)",  "<ul><li>\\1</li></ul>", $text);
$text = ereg_replace( "\n---(-)*",  "<hr noshade size=1>", $text);
$text = ereg_replace( "\n",  "<br>\n", $text);
return $text;
}

/* --------------------- Fin des fonctions --------------------- */ 


/* ----------------------- D�but du code ----------------------- */ 


if ($name ==  "")       $name = $argv[0];         // On choppe le nom de la page dans l'URL : le mot apres le "?" 
if ($name ==  "")       $name =  "FrontPage";

$conx = mysql_connect($host,$user,$pass);        // Connexion a la base SQL 
if ($conx) {
      mysql_select_db($database,$conx);
      if (mysql_table_exists( "$tablewiki",$database) > 0) {        // V�rification de l'existence de la table $tablewiki 
              if ($editmode !=  "done") {
                    affichehaut();
                    affichewiki($name);
                    affichebas();
                    } else {
                    postwiki($name,$text);
                    affichehaut();
                    affichewiki($name);
                    affichebas(); 
                    }
              } else {                           // Cr�ation de la table $tablewiki si elle n'existe pas 
                    $rep=crea_table();
                    if ($rep>0) {
                          echo  "<BR>Table MySql $tablewiki cr��e, rechargez � pr�sent la page pour faire fonctionner votre Wiki.";
                          } else {
                          echo  "Erreur : cr�ation de la table MySql $tablewiki impossible.";
                          }
                    }
      mysql_close($conx);
      } else {
      echo  "Connexion impossible. V�rifiez les serveur/login/pass de connexion � MySql dans le script.";
      }

/* ------------------------ Fin du code ------------------------ */ 

?>