message) write_pathes_file($env); if(!$env->message) write_config_file($env); if(!$env->message) init_db($env); if(!$env->message) install_db($env); if(!$env->message) clear_pun_cache($env); if(!$env->message) { _redirect ( $env, "../index.php", "Le site a été installé" ); } } } function write_pathes_file($env) { if(!is_dir("../pathes.php") && is_writable("../pathes.php")) { if(($pathes_content = @file_get_contents("dist/pathes.php")) !== false) { if($h_pathes = fopen("../pathes.php", 'w')) { if ( fwrite ( $h_pathes, str_replace ( array("[config_file]"), array($_POST["config_file"]), $pathes_content ) ) ) { } else $env->message .= "
impossible d'écrire dans pathes.php"; fclose($h_pathes); } else $env->message .= "
impossible d'écrire dans pathes.php"; } else $env->message .= "
impossible de lire le fichier install/dist/pathes.php" ."
vérifiez que vous avez bien uploadé tous les fichiers"; } else $env->message .= "
le fichier pathes.php n'est pas accessible en écriture"; } function write_config_file($env) { if(!is_dir("../config.php") && is_writable("../config.php")) { if(($config_content = @file_get_contents("dist/config.php")) !== false) { if($h_config = fopen("../config.php", 'w')) { $web_path = ""; $v_path = explode("/", $_SERVER["SCRIPT_NAME"]); for($i = 0; $i < (count($v_path) - 2); $i++) $web_path .= $v_path[$i]."/"; if ( fwrite ( $h_config, str_replace ( array ( "[db_type]", "[db_host]", "[db_base]", "[db_user]", "[db_password]", "[db_prefix]", "[web_path]", "[site_name]" ), array ( $_POST["db_type"], $_POST["db_hote"], $_POST["db_base"], $_POST["db_user"], $_POST["db_password"], $_POST["db_prefix"], $web_path, $_POST["site_name"] ), $config_content ) ) ) { } else $env->message .= "
impossible d'écrire dans config.php"; fclose($h_config); } else $env->message .= "
impossible d'écrire dans config.php"; } else $env->message .= "
impossible de lire le fichier install/dist/config.php" ."
vérifiez que vous avez bien uploadé tous les fichiers"; } else $env->message .= "
le fichier config.php n'est pas accessible en écriture"; } function init_db($env) { switch($_POST["db_type"]) { case 'mysql': require "../punbb/include/dblayer/mysql.php"; break; case 'mysqli': require PUN_ROOT.'include/dblayer/mysqli.php'; break; case 'pgsql': require PUN_ROOT.'include/dblayer/pgsql.php'; break; case 'sqlite': require PUN_ROOT.'include/dblayer/sqlite.php'; break; default: $env->message = "'".$_POST["db_type"]."' n'est pas un type de base de donnĂ©es valable."; break; } if(!$env->message) { $env->db = new DBLayer($_POST["db_host"], $_POST["db_user"], $_POST["db_password"], $_POST["db_base"], $_POST["db_prefix"], false); require "../app/data/sql.php"; require "../app/data/data.php"; $env->data = new data(new sql($env->db, "#--", $_POST["db_prefix"]), $env); } } function install_db($env) { try { if(($sql = file_get_contents("dist/sql/init.sql")) !== false) { if($sql) try { $env->data->sql->query($sql); if(($sql = file_get_contents("dist/sql/raz.sql")) !== false) { if($sql) try { $sql = str_replace("[prefix]", $_POST["db_prefix"], $sql); $v_sql = explode("# --", $sql); foreach($v_sql as $_sql) if($_sql) $env->data->sql->query($_sql); if(($sql = file_get_contents("dist/sql/tables.sql")) !== false) { if($sql) try { $sql = str_replace("[prefix]", $_POST["db_prefix"], $sql); $v_sql = explode("# --", $sql); foreach($v_sql as $_sql) if($_sql) $env->data->sql->query($_sql); if(($sql = file_get_contents("dist/sql/content.sql")) !== false) { if($sql) try { $punbb_url = "http://".$_SERVER["SERVER_NAME"]; $v_path = explode("/", $_SERVER["SCRIPT_NAME"]); $path = ""; for($i = 1; $i < (count($v_path) - 2); $i++) $path .= "/".$v_path[$i]; $punbb_url .= $path."/punbb"; $sql = str_replace ( array ( "[prefix]", "[site_name]", "[email_admin]", "[pun_url]" ), array ( $_POST["db_prefix"], $_POST["site_name"], $_POST["email_admin"], $punbb_url ), $sql ); $v_sql = explode("# --", $sql); foreach($v_sql as $_sql) if($_sql) $env->data->sql->query($_sql); } catch(Exception $_e) { $env->message = "Impossible d'executer les requetes du fichier content.sql
" ."erreur sur la requete: ".$_sql; return; } } else $env->message .= "
impossible de lire le fichier install/dist/sql/content.sql" ."
vérifiez que vous avez bien uploadé tous les fichiers"; } catch(Exception $_e) { $env->message = "Impossible d'executer les requetes du fichier tables.sql"; return; } } else $env->message .= "
impossible de lire le fichier install/dist/sql/tables.sql" ."
vérifiez que vous avez bien uploadé tous les fichiers"; } catch(Exception $_e) { $env->message = "Impossible d'executer les requetes du fichier raz.sql"; return; } } else $env->message .= "
impossible de lire le fichier install/dist/sql/raz.sql" ."
vérifiez que vous avez bien uploadé tous les fichiers"; } catch(Exception $_e) { $env->message = "Impossible d'executer les requetes du fichier init.sql"; return; } } else $env->message .= "
impossible de lire le fichier install/dist/sql/init.sql" ."
vérifiez que vous avez bien uploadé tous les fichiers"; } catch(Exception $_e) { $env->message .= "
impossible d'accéder à la base de données"; } } function clear_pun_cache() { if(is_dir("../punbb/cache/") && ($dh = opendir("../punbb/cache/"))) { while(($file = readdir($dh)) !== false) if(strpos($file, "cache_") === 0 && $file !== "cache_smilies.php") @unlink("../punbb/cache/".$file); closedir($dh); } } ?>