Textes, fichier d'installe ;o) function filtre($texte) { $texte = trim($texte); // On enlève les espaces au début et à la fin du texte $texte = htmlentities($texte); // on met les caractères spéciaux en codes HTML $texte = str_replace("\r\n","\n",$texte); // On transforme les CRLF en LF // On enlève le texte entre %% du texte pour qu'il ne soit pas traité $i = 0; while(ereg("%%(('?[^\n'])*)%%",$texte,$regs)) { $a = "%%".$regs[1]."%%"; $b = ""; $brut[$i] = $regs[1]; $texte = str_replace($a,$b,$texte); $i++; } // Traitement des listes à puce $texte = str_replace("\n\n- ","",$texte); $texte = str_replace("\n- ","
  • ",$texte); // Traitement des images: centrées, gauche ou droite et normales $texte = eregi_replace("<img\|center\|([^\n]*)>","
    Image
    ",$texte); $texte = eregi_replace("<img\|(right|left)\|([^\n]*)>","Image",$texte); $texte = eregi_replace("<img\|([^\n]*)>","Image",$texte); // Traitement des liens mail et Web/FTP $texte = eregi_replace("\[([^\n\[]*)->([[:alnum:]]+)://([^[:space:]]*)([[:alnum:]#?/&=])\]", "\\1", $texte); $texte = eregi_replace("\[([^\n\[]*)->([_a-z0-9-]+(\.[_a-z0-9-]+)*@[a-z0-9-]+(\.[a-z0-9-]+)+)\]", "\\1", $texte); $texte = eregi_replace("([ \n])([[:alnum:]]+)://([^[:space:]]*)([[:alnum:]#?/&=])([ \n])", "\\1\\2://\\3\\4\\5", $texte); $texte = eregi_replace("([ \n])([_a-z0-9-]+(\.[_a-z0-9-]+)*@[a-z0-9-]+(\.[a-z0-9-]+)+)([ \n])", "\\1\\2\\5", $texte); // Traitement des retours à la ligne $texte = str_replace("\n","
    ",$texte); $texte = "\n".$texte; // Mise en page $texte = str_replace("{{","",$texte); // en gras... $texte = str_replace("}}","",$texte); $texte = str_replace("{","",$texte); // en italique... $texte = str_replace("}","",$texte); $texte = str_replace("<<","«", $texte); // french quotes $texte = str_replace(">>","»", $texte); $texte = ereg_replace("
    ---(-)*", "
    ", $texte); // ligne de sépar // On remet le texte enlevé précédemment (entre %%) $i = 0; while($i < count($brut)) { $a = $brut[$i]; $b = ""; $texte = str_replace($b,$a,$texte); $i++; } return $texte; } function debut_html($titre = "Textes Installation") { 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"); echo ' '.htmlentities($titre).'


    '.htmlentities($titre).' '; } function fin_html() { echo "
    "; } function lire_short($f) { global $_fread; $bin = $_fread($f, 2); $res = unpack('na', $bin); return $res['a']; } function lire_long($f) { global $_fread; $bin = $_fread($f, 4); $res = unpack('Na', $bin); return $res['a']; } function lire_chaine($f) { global $_fread; $n = lire_long($f); if (!$n) return ''; return $_fread($f, $n); } // Tester si le fichier est un fichier de configuration // modifiable par le webmestre (squelettes, etc) function test_fichier_config($fichier) { // Squelettes // if (ereg("^[^/]*\.html$", $fichier)) return true; // Fichiers graphiques modifiables (racine du site) if (ereg("^[^/]*\.(gif|jpe?g|png)$", $fichier)) return true; // Fichiers .php3 dans le repertoire de base if (ereg("^([^/]*)\.php3$", $fichier, $regs)) { $racine = $regs[1]; if ($racine == 'inc-urls') return true; if (ereg("^(spip_|inc-)", $racine)) return false; return true; } return false; } // DECOMPRESSION des fichiers function unpacker_fichier($f) { global $dir_base; global $_fread; $chaine = $_fread($f, 4); // MARQUE DE FIN DU (NOM DU) FICHIER COMPRESSE NOM FICHIER ? if ($chaine != 'open') { return false; } while (($fichier = lire_chaine($f)) != '') { $n = lire_long($f); $chemin = "$dir_base$fichier"; if (!$n) { @mkdir($chemin, 0777); @chmod($chemin, 0777); //echo "
  • Dossier: $fichier"; } else { //echo "
  • Fichier: $fichier"; $bin = $_fread($f, $n); if (!(test_fichier_config($fichier) AND file_exists($chemin))) { $dest = fopen($chemin, "wb"); fwrite($dest, $bin, $n); fclose($dest); @chmod($chemin, 0777); } } } return true; } ////////////////// DEBUT ////////////////////// // Si une version est deja installee, exiger l'authentification FTP if (file_exists("index.php3") AND file_exists("forum_config.inc.php3")) { $ok = true; $charger = 'oui'; } // Tester si ZLib utilisable, Choisir mode gz ou f $php_version = explode('.', phpversion()); $php_version_maj = (int) $php_version[0]; $php_version_med = (int) $php_version[1]; if (ereg('([0-9]+)', $php_version[2], $match)) $php_version_min = (int) $match[1]; $flag_function_exists = ($php_version_maj > 3 OR $php_version_min >= 7); if ($flag_function_exists) $gz = function_exists("gzopen"); else $gz = false; if ($gz) { $_fwrite = gzwrite; $_fread = gzread; $_fopen = gzopen; $_fclose = gzclose; // echo "

    Utilise fonctions gz
    "; } else { $_fwrite = fwrite; $_fread = fread; $_fopen = fopen; $_fclose = fclose; // echo "

    Utilise fonctions f
    "; } // Si le fichier compressé est téléchargé, ok pour la DECOMPRESSION unpacker_ficher if ($fichier AND file_exists($fichier)) { $dir_base = ""; $f = $_fopen($fichier, "rb"); $ok = unpacker_fichier($f); $_fclose($f); debut_html("Téléchargement terminé"); echo "

    Cette premiè étape s'est déroulée sans problème..."; echo "

    Prochaine étape : Configuration MySQL"; die ("

    (Les fichiers ci-dessus ont été téléchargés via le fichier $fichier sur votre site. Bon forumage :o)"); exit; } // Si pas encore fait, afficher la page de presentation if ($charger != 'oui') { debut_html("Textes «Julika» 3 (Test)"); $texte = "Bienvenue dans l'installation du forum Textes «Julika» version 3. Cette version est une version destinée au test et au débugguage. Il peut subsister des bugs inconnus. Si vous trouvez un ou plusieurs bugs, merci de me contacter: zero@tilt.eu.org . La documentation est en cours de rédaction et est disponible ici: http://www.tilt.eu.org/pretextes/ {{Êtes-vous sûr de vouloir installer ce forum ?}}"; echo "

    ".filtre($texte)."
    "; echo "

    "; echo "
    "; echo ""; echo ""; echo "
    "; fin_html(); exit; } // Tester si ecriture possible dans ce dossier $ok = false; @mkdir('test', 0777); @chmod('test', 0777); $f = @fopen('test/test.php3', 'w'); if ($f) { @fputs($f, ''); @fclose($f); @chmod('test/test.php3', 0777); include('test/test.php3'); } @unlink('test/test.php3'); @rmdir('test'); // ECHEC CHMOD777 if (!$ok) { debut_html("Téléchargement impossible, dossier non accessible"); echo "
    Attention
    "; echo "

    Le dossier contenant ce fichier n'est pas accessible pour ce programme"; echo "

    - En FTP, clic-droit sur dossier, Attributs, tout cocher (CHMOD 777) -"; echo "

    Besoin d'aide ?"; fin_html(); exit; } // Telechargement HTTP du fichier compressé .bin ou .bin.gz // NOM FICHIER $fichier = ".pretextes3.bin"; if ($gz) $fichier .= ".gz"; // Sinon téléchargement direct par fopen ADRESSE SERVEUR $http = @fopen("http://www.tilt.eu.org/pretextes/$fichier", "rb"); if (!$http) { // En cas d'echec requete HTTP a la main ADRESSE SERVEUR $http = @fsockopen("www.tilt.eu.org", 80); @fputs($http, "GET /pretextes/$fichier HTTP/1.1\nHost: www.tilt.eu.org\n\n"); // Passer les en-tetes (termines par une ligne vide) while (!feof($http)) { $s = fgets($http, 16384); if (!trim($s)) break; } } $n = 0; if ($http) { // Enregistrer le fichier téléchargé $f = fopen($fichier, "wb"); while (!feof($http)) { $bin = fread($http, 1024); fwrite($f, $bin); } fclose($f); fclose($http); // Passer a l'etape suivante dans cette page: ( DECOMPRESSION en principe) // NOM FICHIER header("Location: install.php3?fichier=$fichier"); exit; } //ECHEC echo "

    Echec du telechargement ou de la decompression"; echo "

    Site interne"; echo "
    Site public"; // NOM FICHIER echo "
    Relancer cette page "; echo " (possibles blocages temporaires du serveur)"; die ("

    Terminé. Merci."); ?>