Le script doit avoir le droit d\'écrire dans le répertoire où il est situé."); } if(!function_exists("gzinflate")) { die("Votre version de PHP doit avoir la ZLIB pour utiliser ce script."); } if(!function_exists("file_put_contents")) { function file_put_contents($file,$contents) { $fp = @fopen($file,"wb"); if(!$fp) return false; fputs($fp,$contents); fclose($fp); return true; } } echo "

Merci de patienter pendant la décompression de WikiKubbe...

";
flush();

$tar_md5 = "@TAR_MD5";
$archive_md5 = "@ARCHIVE_MD5";

$tar_content = "@TAR_CONTENT";
$archive_content = "@ARCHIVE_CONTENT";

$tar_file = base64_decode($tar_content);
$tar_file = gzinflate($tar_file);

if(md5($tar_file) != $tar_md5) {
	die("Problème: le fichier de l\'utilitaire d\'archive est corrompu.");
}

if(!@file_put_contents("tar.class.php",$tar_file)) {
	die("Erreur: impossible de créer le fichier class.tar.php");
}

$archive_file = base64_decode($archive_content);

if(md5($archive_file) != $archive_md5) {
    die("Problème: le fichier de l\'archive est corrompu.");
}

if(!@file_put_contents("wikikubbe.tar.gz",$archive_file)) {
    die("Erreur: impossible de créer le fichier wikikubbe.tar.gz");
}

require "tar.class.php";

$tar = new tar();

if(!$tar->openTar("wikikubbe.tar.gz",FALSE)) {
	die("Impossible d\'ouvrir le fichier wikikubbe.tar.gz");
}

if($tar->numDirectories > 0)
{
    foreach($tar->directories as $id => $information)
    {
    	if(!@mkdir($information[\'name\'])) {
    		die("Impossible de créer le répertoire \'".$information[\'name\']."\'.");
    	}
    }
}

if($tar->numFiles > 0)
{
    foreach($tar->files as $id => $file)
    {
    	if(!@file_put_contents($file[\'name\'],$file[\'file\'])) {
    		die("Impossible de crer le fichier \'".$file[\'file\']."\'");
    	}
    }
}

echo \'

L\\\'installation s\\\'est bien déroulée.

\'; if(!@unlink("tar.class.php") || !@unlink("wikikubbe.tar.gz") || !@unlink("wikikubbe-installer.php")) { echo \'

Cependant au moins un des fichiers utilisés à l\\\'installation n\\\'a pas pu être supprimé. Ainsi vous devrez supprimer vous-même les fichiers suivants: tar.class.php, wikikubbe.tar.gz, wikikubbe-installer.php.

\'; } echo \'

Cliquez ici pour accéder à votre wiki

\'; ?>'; // Generate TAR file require 'tar.class.php'; $tar = new tar(); $forbidden = array(".","..",".svn","config.inc.php","wikikubbe-installer.php","make-installer.php","_data",".htaccess"); function appendFiles($dir) { $fdir = opendir($dir); while($file = readdir($fdir)) { if(in_array($file,$GLOBALS['forbidden'])) continue; if(is_dir($dir.$file)) { $GLOBALS['tar']->addDirectory($dir.$file); appendFiles($dir.$file."/"); } else $GLOBALS['tar']->addFile($dir.$file); } closedir($fdir); } appendFiles("./"); $tar->toTar("wtmp.tgz",TRUE); unset($tar); $archive_file = file_get_contents("wtmp.tgz"); $archive_md5 = md5($archive_file); $archive_file = base64_encode($archive_file); $tar_file = file_get_contents("tar.class.php"); $tar_md5 = md5($tar_file); $tar_file = gzdeflate($tar_file,9); $tar_file = base64_encode($tar_file); $out = $outcontent; $out = str_replace('@TAR_MD5',$tar_md5,$out); $out = str_replace('@ARCHIVE_MD5',$archive_md5,$out); $out = str_replace('@TAR_CONTENT',$tar_file,$out); $out = str_replace('@ARCHIVE_CONTENT',$archive_file,$out); file_put_contents('wikikubbe-installer.php',$out); unlink("wtmp.tgz"); echo "

Done

"; echo "
";

print_r(htmlspecialchars($out));

?>