Données incorrectes. Veuillez réessayer, ou utiliser l'installation manuelle."); } header("Location: ".$dir_base."ecrire/"); exit; } // // Si pas encore fait, afficher la page de presentation // if ($charger != 'oui') { debut_html("Téléchargement de SPIP"); echo "

Bienvenue dans la procédure d'installation automatique de SPIP."; echo "

Le système va d'abord vérifier les droits d'accès au répertoire courant, "; echo "puis lancer le téléchargement des données SPIP à l'intérieur de ce répertoire."; echo "

Veuillez appuyer sur le bouton suivant pour continuer."; echo "

"; echo "
"; echo ""; echo ">\">"; echo "
"; fin_html(); exit; } // // Gestion des droits d'acces // $ok = false; $self = basename($PHP_SELF); $uid = @fileowner('.'); $uid2 = @fileowner($self); $gid = @filegroup('.'); $gid2 = @filegroup($self); $perms = @fileperms($self); // Comparer l'appartenance d'un fichier cree par PHP // avec celle du script et du repertoire courant @rmdir('test'); @unlink('test'); // effacer au cas ou @touch('test'); if ($uid > 0 && $uid == $uid2 && @fileowner('test') == $uid) $chmod = 0700; else if ($gid > 0 && $gid == $gid2 && @filegroup('test') == $gid) $chmod = 0770; else $chmod = 0777; // Appliquer de plus les droits d'acces du script if ($perms > 0) { $perms = ($perms & 0777) | (($perms & 0444) >> 2); $chmod |= $perms; } @unlink('test'); //echo "uids: $uid, $uid2
gids: $gid, $gid2
chmod: ".(($chmod & (7 << 9)) >> 9).(($chmod & (7 << 6)) >> 6).(($chmod & (7 << 3)) >> 3).($chmod & 7)."
"; // Verifier que les valeurs sont correctes @mkdir('test', $chmod); @chmod('test', $chmod); $f = @fopen('test/test.php', 'w'); if ($f) { @fputs($f, ''); @fclose($f); @chmod('test/test.php', $chmod); include('test/test.php'); } @unlink('test/test.php'); @rmdir('test'); if (!$ok) { debut_html("Téléchargement de SPIP"); echo "
Préliminaire : "; echo "Régler les droits d'accès"; echo "

Le répertoire courant n'est pas accessible en écriture."; echo "

Pour y remédier, utilisez votre client FTP afin de régler les droits d'accès "; echo "à ce répertoire (répertoire d'installation de SPIP). "; echo "La procédure est expliquée en détail dans le guide d'installation. Au choix :
"; echo "

"; echo "

Une fois cette manipulation effectuée, vous pourrez recharger cette page "; echo "afin de commencer le téléchargement puis l'installation."; echo "

Si l'erreur persiste, vous devrez passer par la procédure d'installation classique "; echo "(téléchargement de tous les fichiers par FTP)."; fin_html(); exit; } // // Tenter le telechargement HTTP // $fichier = ".spip.bin"; if ($gz) $fichier .= ".gz"; $url = "http://www.spip.net/spip-dev/DISTRIB/$fichier"; // Tenter un chargement direct par fopen $http = @fopen($url, "rb"); if (!$http) { // En cas d'echec faire la requete HTTP a la main for ($i = 0; $i < 5; $i++) { $t = parse_url($url); $host = $t['host']; if (!($port = $t['port'])) $port = 80; if (!($path = $t['path'])) $path = "/"; $http = @fsockopen($host, $port); if (!$http) break; @fputs($http, "GET $path HTTP/1.1\nHost: $host\n\n"); $status = 0; $location = ''; // Passer les en-tetes (termines par une ligne vide) $s = trim(fgets($http, 16384)); if (ereg('^HTTP/[0-9]+\.[0-9]+ ([0-9]+)', $s, $r)) $status = $r[1]; while ($s = trim(fgets($http, 16384))) { if (ereg('^Location: (.*)', $s, $r)) { $location = $r[1]; } } if ($status != 200) { fclose($http); unset($http); } if ($status >= 300 AND $status < 400 AND $location) $url = $location; else break; } } $n = 0; if ($http) { // Sauver le fichier telecharge $f = fopen($fichier, "wb"); while (!feof($http)) { $bin = fread($http, 1024); fwrite($f, $bin); } fclose($f); fclose($http); // Passer a l'etape suivante (desarchivage) header("Location: spip_loader.php3?fichier=$fichier&hash=$hash&id_auteur=$id_auteur&chmod=$chmod"); exit; } die ("

Le chargement a échoué. Veuillez réessayer, ou utiliser l'installation manuelle.

"); ?>