Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- Вопрос. Есть файл установки CMS. Установлен локальный сервер - OpenServer. В установках сервера стоит версия PHP-5.2 Всё работает исправно, движок устанавливается, но, когда я изменяю в настройках сервера версию на PHP-5.5, то установка движка проходит, но перестают создаваться таблицы в базе данных. Прошу обратить внимание, что, если версия PHP-5.2, то я меняю строку: $pass_admin = password_hash($pass_admin, PASSWORD_BCRYPT); на $pass_admin = md5($pass_admin); т.к. функция password_hash не доступна в старых версиях PHP. Помогите решить проблему...
- ___________________________
- <?php
- /*
- Назначение: Установка cms
- Файл: install.php
- */
- session_start();
- header("Content-type: text/html; charset=utf-8");
- ini_set( 'display_errors', true );
- ini_set( 'html_errors', false );
- error_reporting('E_ALL');
- define( 'ROOT_DIR', dirname(__FILE__) );
- define( 'ENGINE_DIR', ROOT_DIR . '/engine' );
- define( 'LANG_DIR', ROOT_DIR . '/languages' );
- // проверяем, имеются ли языковые переменные. Если нет - создаем их.
- if ( !isset($_SESSION["lang"]) ){
- if ( !isset($_COOKIE["lang"]) ){ // проверяем язык браузера, объявляем языковые переменные.
- $langs = explode( '-',$_SERVER['HTTP_ACCEPT_LANGUAGE'] );
- $lang = preg_replace('/;.*$/','',$langs[0]);
- $lang = preg_replace('/[^a-zA-Z_\-]/','',$lang);
- $cookie_set = setcookie ("lan", $lang, time()+900);
- $_SESSION["lang"] = $lang;
- }else{
- $_SESSION["lang"] = $_COOKIE["lang"];
- }
- }
- // подключаем словарь для PHP-скриптов
- if ( $_SESSION["lang"] == 'ru' ){
- require_once( LANG_DIR . '/ru/russian.lng' );
- require_once( LANG_DIR . '/ru/errors.lng' );
- $js_lang = 'ru';
- }else{
- require_once( LANG_DIR . '/en/english.lng' );
- require_once( LANG_DIR . '/en/errors.lng' );
- $js_lang = 'en';
- }
- $msg_error = "";
- //проверка данных формы
- if( isset($_POST['submit_install']) ){
- if( file_exists( ENGINE_DIR . '/functions.php' )){
- require_once( ENGINE_DIR . '/functions.php' );
- if( !empty($_POST['db_name']) ){
- $db_name = clear_data($_POST['db_name']);
- }else{
- $msg_error .= $error['db_name'];
- }
- if( !empty($_POST['db_user']) ){
- $db_user = clear_data($_POST['db_user']);
- }else{
- $msg_error .= $error['error_db_user'];
- }
- if( !empty($_POST['db_pass']) && !empty($_POST['db_pass_confirm']) && $_POST['db_pass'] === $_POST['db_pass_confirm'] ){
- $db_pass = clear_data($_POST['db_pass']);
- $db_pass_confirm = clear_data($_POST['db_pass_confirm']);
- }else{
- $msg_error .= $error['error_db_pass'];
- }
- if( !empty($_POST['db_host']) ){
- $db_host = clear_data($_POST['db_host']);
- }else{
- $msg_error .= $error['error_db_host'];
- }
- if( preg_match("/([\w\-]+\@[\w\-]+\.[\w\-]+)/", $_POST['email_admin']) ){
- $email_admin = $_POST['email_admin'];
- }else{
- $msg_error .= $error['error_email_admin'];
- }
- if( !empty($_POST['pass_admin']) && !empty($_POST['pass_confirm']) && $_POST['pass_admin'] === $_POST['pass_confirm'] ){
- $pass_admin = clear_data($_POST['pass_admin']);
- $pass_admin = password_hash($pass_admin, PASSWORD_BCRYPT);
- $pass_confirm = clear_data($_POST['pass_confirm']);
- }else{
- $msg_error .= $error['error_pass_do_not_match'];
- }
- }else{
- $msg_error .= $error['error_file_functions'];
- }
- /** если ошибок не обнаружено **/
- if( $msg_error == "" ){
- $dbconfig = <<<HTML
- <?php
- /** Данные для подключения к базе данных **/
- define ("DBHOST", "$db_host");
- define ("DBNAME", "$db_name");
- define ("DBUSER", "$db_user");
- define ("DBPASS", "$db_pass");
- \$db = new DB();
- ?>
- HTML;
- $url = preg_replace( "'/install.php'", "", $_SERVER['HTTP_REFERER']);
- $url = preg_replace( "'\?(.*)'", "", $url);
- if(substr("$url", -1) == "/"){ $url = substr($url, 0, -1); }
- $url = str_replace( "$", "$", $url );
- /** файл конфигураций **/
- $configs = <<<HTML
- <?php
- //System Configurations / конфигурация
- \$config = array(
- 'home_title' => "TamBuild",
- 'http_home_url' => "$url",
- 'charset' => "utf-8",
- 'language' => "$js_lang",
- 'description' => "Демонстрационная страница TamBuild",
- 'keywords' => "TamBuild, PHP движок",
- 'skin' => "default"
- );
- ?>
- HTML;
- /** создаём файл для доступа к БД **/
- $file_dbconf = ENGINE_DIR . "/dbconfig.php";
- if( file_put_contents($file_dbconf, $dbconfig) ){
- @chmod( ENGINE_DIR . "/dbconfig.php", 0666 );
- }else{
- $msg_error .= $error['error_creat_file_dbcong'];
- }
- $file_conf = ENGINE_DIR . "/config.php";
- if(file_put_contents($file_conf, $configs)){
- @chmod( ENGINE_DIR."/config.php", 0666 );
- }else{
- $msg_error .= $error['error_creat_file_config'];
- }
- /** создание таблиц в БД **/
- $sql = array();
- $sql[] = "CREATE TABLE IF NOT EXISTS `admin` (
- `id` int(11) NOT NULL AUTO_INCREMENT,
- `email_admin` varchar(20) NOT NULL,
- `pass_admin` varchar(32) NOT NULL,
- PRIMARY KEY (`id`)
- ) ENGINE=InnoDB DEFAULT CHARSET=utf8 AUTO_INCREMENT=1;";
- $sql[] = "CREATE TABLE IF NOT EXISTS `users` (
- `id` int(11) NOT NULL AUTO_INCREMENT,
- `email` varchar(20) NOT NULL,
- `pass` varchar(32) NOT NULL,
- `date` datetime NOT NULL,
- PRIMARY KEY (`id`)
- ) ENGINE=InnoDB DEFAULT CHARSET=utf8 AUTO_INCREMENT=1;";
- $sql[] = "CREATE TABLE IF NOT EXISTS `pages` (
- `id` int(11) NOT NULL AUTO_INCREMENT,
- `title` varchar(255) NOT NULL,
- `meta_d` varchar(255) NOT NULL,
- `meta_k` varchar(255) NOT NULL,
- `header_text` varchar(255) NOT NULL,
- `text` text NOT NULL,
- `author` varchar(155) NOT NULL,
- `date` datetime NOT NULL,
- PRIMARY KEY (`id`)
- ) ENGINE=InnoDB DEFAULT CHARSET=utf8 AUTO_INCREMENT=2 ;";
- $sql[] = "INSERT INTO `admin` VALUES (NULL, '$email_admin', '$pass_admin');";
- $sql[] = "INSERT INTO `pages` (`id`, `title`, `meta_d`, `meta_k`, `header_text`, `text`, `author`, `date`) VALUES
- (1, 'Приветствие', 'приветствие', 'приветствие', 'Спасибо за использование продукта TamBuild', 'Мы надеемся, что данный продукт будет удобен и полезен для Вас!', 'Администратор', '2013-07-30 00:00:00');";
- require_once( ENGINE_DIR . "/classes/mysqli.class.php" );
- require_once( ENGINE_DIR . "/dbconfig.php" );
- $result = $db->connect(DBHOST, DBUSER, DBPASS, DBNAME);
- if($result){
- foreach( $sql as $table ){
- mysqli_query($result, $table);
- }
- echo $message['install_complete'];
- header("Location: " . $_SERVER["PHP_SELF"]);
- exit();
- }else{
- $msg_error .= $error['error_db_connect'];
- }
- }
- }
- ?>
- <html>
- <head>
- <title><?php echo $message['title']; ?></title>
- </head>
- <body>
- <h1><?php echo $message['install_cms']; ?></h1>
- <!--форма выбора языка установки-->
- <form action="change_language.php" method="post">
- <?php echo $message['choose_lang']; ?>
- <select name="language" onChange="javascript:submit();">
- <option value="en" <?php if ($_SESSION["lang"] != 'ru') { echo 'selected="selected"';}?>>English</option>
- <option value="ru" <?php if ($_SESSION["lang"] == 'ru') { echo 'selected="selected"';}?>>Русский</option>
- </select>
- </form>
- <h2><?php echo $message['db_info']; ?> <a href=""><?php echo $message['instructions_for_install']; ?></a></h2>
- <!--форма установки движка-->
- <?php echo ($msg_error != '') ? '<h2>'.$message['check_input_data'].' '.$msg_error.'</h2>' : ''; ?>
- <form action="install.php" method="post">
- <label><?php echo $message['db_name']; ?></label><br />
- <input type="text" name="db_name" required /><br />
- <label><?php echo $message['db_user']; ?></label><br />
- <input type="text" name="db_user" value="admin" required /><br />
- <label><?php echo $message['db_pass']; ?></label><br />
- <input type="password" name="db_pass" required /><br />
- <label><?php echo $message['db_pass_confirm']; ?></label><br />
- <input type="password" name="db_pass_confirm" required /><br />
- <label><?php echo $message['db_host']; ?></label><br />
- <input type="text" name="db_host" value="localhost" required /><br />
- <h2><?php echo $message['control_panel']; ?></h2>
- <label><?php echo $message['email_admin']; ?></label><br />
- <input type="text" name="email_admin" required /><br />
- <label><?php echo $message['pass_admin']; ?></label><br />
- <input type="password" name="pass_admin" required /><br />
- <label><?php echo $message['pass_confirm']; ?></label><br />
- <input type="password" name="pass_confirm" required /><br />
- <input type="submit" name="submit_install" value="<?php echo $message['submit_install']; ?>" />
- </form>
- </body>
- </html>
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement