, license Art Libre, www.artlibre.org // v0.2.21 $balises_interdites = array("\\0",$texte); $texte = eregi_replace("(^|[ \t\r\n])([_a-z0-9-]+(\.[_a-z0-9-]+)*@[a-z0-9-]+(\.[a-z0-9-]+)+)", "\\0", $texte); $texte = ereg_replace("(^|[ \t\r\n])(([A-Z][a-z]+){2,})","\\1\\2",$texte); $texte = nl2br($texte); $texte = eregi_replace("<(/?[a-z]+)","<\\1",$texte); $texte = str_replace(""",'"',$texte); $texte = str_replace(">",">",$texte); $texte = str_replace($GLOBALS[balises_interdites],"<BALISE INTERDITE",$texte); return $texte; } function parser_page($page) { if(!file_exists($GLOBALS[fichier]."_pages/".$page)) return FALSE; $fp = @fopen($GLOBALS[fichier]."_pages/".$page,"r"); if(!$fp) return FALSE; $out = fread($fp,4096*1024); fclose($fp); $deb = strpos($out,"") + 6; $fin = strpos($out,"")-6; $rec[date] = substr($out,$deb,$fin); $deb = strpos($out,"") + 7; $rec[modif] = substr($out,$deb,3); $deb = strpos($out,"") + 4; $fin = strpos($out,"")- $deb; $rec[ip] = substr($out,$deb,$fin); $pos = strpos($out,"\n\n") + 2; $rec[texte] = substr($out,$pos); return $rec; } function sauve_page($page,$rec) { $out = "{$rec[date]}\n"; $out.= "{$rec[modif]}\n"; $out.= "{$rec[ip]}\n\n"; $out.= stripslashes($rec[texte]); $fp = @fopen($GLOBALS[fichier]."_pages/".$page,"w"); if(!$fp) return FALSE; fputs($fp,$out); fclose($fp); return TRUE; } function afficher($page) { $template = << #TITRE
#TITRE

#TEXTE
Dernière màj le #DATE - Retour page d'accueil
ENDOFFILE; $rec = parser_page($page); if($rec === FALSE) { $rec[texte] = "Décrivez ".$page." en appuyant sur le bouton éditer."; $rec[date] = time(); } $template = str_replace("#TITRE",$page,$template); $template = str_replace("#DATE",date("d/m/Y H:i",$rec[date]),$template); $template = str_replace("#TEXTE",filtre($rec[texte]),$template); echo $template; } function editer($page) { if(!ereg("^([A-Z][a-z]+){2,}$",$page)) header("location: ./PageDaccueil"); $template = << #TITRE
Modification de #TITRE


Retour à la page d'accueil
ENDOFFILE; $rec = parser_page($page); if($rec === FALSE) $rec[texte] = "Décrivez ".$page." ici."; if(($rec[modif] == "oui") && ($rec[date] > time()-3600) && ($ip <> $rec[ip])) { echo "Cette page est déjà en cours de modification."; exit; } if($rec === TRUE) { $rec[modif] = "oui"; $rec[ip] = getenv("REMOTE_ADDR"); $rec[date] = time(); sauve_page($page,$rec); } 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"); $template = str_replace("#TITRE",$page,$template); $template = str_replace("#TEXTE",$rec[texte],$template); echo $template; } function enregistrer($page,$texte) { $rec[date] = time(); $rec[ip] = getenv("REMOTE_ADDR"); $rec[modif] = "non"; $rec[texte] = htmlentities(stripslashes($texte)); sauve_page($page,$rec); header("location: ./".$page); } function raz($page) { if(!ereg("^([A-Z][a-z]+){2,}$",$page)) header("location: ./PageDaccueil"); $rec = parser_page($page); if($rec === TRUE) { $rec[modif] = "non"; sauve_page($rec); } header("location: ./".$page); } $path = getenv("PATH_INFO"); if(substr($path,0,1) <> "/") header("location: ".$fichier."/"); if(strpos($path,"editer~")) editer(substr($path,8)); elseif(strpos($path,"raz~")) raz(substr($path,4)); elseif(isset($HTTP_POST_VARS[enregistrer]) && !empty($HTTP_POST_VARS[texte])) enregistrer($HTTP_POST_VARS[enregistrer],$HTTP_POST_VARS[texte]); else { if(empty($HTTP_GET_VARS[page])) $page = substr($path,1); if(empty($page)) $page = "PageDaccueil"; if(!ereg("^([A-Z][a-z]+){2,}$",$page) && !empty($page)) header("location: ./PageDaccueil"); afficher($page); } ?>