OSDN Git Service

install.phpに対する修正
authorreine <kawati49@gmail.com>
Thu, 15 Mar 2012 14:22:44 +0000 (23:22 +0900)
committersakamocchi <o-takashi@sakamocchi.jp>
Thu, 15 Mar 2012 14:22:44 +0000 (23:22 +0900)
* FIX:管理者ユーザIDに英字大文字が使用出来なくなっていたのを修正
* CHANGE:データベース名にハイフンを使用できるように修正

install/index.php
install/locales/en_Latn_US.UTF-8.php
install/locales/ja_Jpan_JP.UTF-8.php

index c55cffd..c34edf8 100644 (file)
@@ -19,6 +19,9 @@
  * @version $Id$
  */
 
+/* global values initialize */
+$CONF = array();
+
 /* reporting all errors for support */
 error_reporting(E_ALL);
 
@@ -348,7 +351,7 @@ function show_database_setting_form($isPostback)
        {
                echo '<span class="err">', _ERROR21, '</span>';
        }
-       elseif ( $mysql_version < $minimum_mysql_version )
+       elseif ( version_compare($mysql_version, $minimum_mysql_version, '<') )
        {
                echo '<span class="err">', sprintf(_ERROR20 , $minimum_mysql_version), '</span>';
        }
@@ -519,7 +522,7 @@ function show_detail_setting_form($isPostback)
                                <li>MySQL:
 <?php
        echo ($mysql_version == '0.0.0') ? _ERROR21 : $mysql_version;
-       if ( $mysql_version < $minimum_mysql_version )
+       if ( version_compare($mysql_version, $minimum_mysql_version, '<') )
        {
                echo '<span class="err">', sprintf(_ERROR20 , $minimum_mysql_version), '</span>';
        }
@@ -739,6 +742,7 @@ function show_install_complete_form()
                if ( array_key_exists('config_data', $_SESSION) )
                {
                        echo '<span class="err">', _INST_TEXT4, '</span>';
+                       // FIXME: textareaにしてJavascriptでコピーできたらいい?
 ?>
 <pre><code><?php echo htmlentities($_SESSION['config_data'], null, i18n::get_current_charset() ) ?></code></pre>
 <?php
@@ -828,7 +832,7 @@ function do_install()
        /*
         * 3. try to create database if needed
         */
-       if ( !sql_query('CREATE DATABASE IF NOT EXISTS ' . $MYSQL_DATABASE) )
+       if ( !sql_query('CREATE DATABASE IF NOT EXISTS `' . $MYSQL_DATABASE . '`') )
        {
                $errors[] = _ERROR12 . ': ' . sql_error();
        }
@@ -916,21 +920,13 @@ function do_install()
         * 6. put needed records
         */
        /* push first post */
-       $query = "INSERT INTO %s VALUES (1, '%s', '%s', '%s', 1, 1, '2005-08-15 11:04:26', 0, 0, 0, 1, 0, 1)";
-       $query = sprintf($query, tableName('nucleus_item'), _1ST_POST_TITLE, _1ST_POST, _1ST_POST2);
+       $query = "INSERT INTO %s VALUES (1, '%s', '%s', '%s', 1, 1, '%s', 0, 0, 0, 1, 0, 1)";
+       $query = sprintf($query, tableName('nucleus_item'), _1ST_POST_TITLE, _1ST_POST, _1ST_POST2, i18n::formatted_datetime('mysql', time()));
        if ( !sql_query($query) )
        {
                $errors[] = _ERROR15 . ' (<small>' . $newpost . '</small>): ' . sql_error();
        }
 
-       /* update datetime for this first post */
-       $query = "UPDATE %s SET itime = '%s' WHERE inumber = 1";
-       $query = sprintf($query, tableName('nucleus_item'), date('Y-m-d H:i:s',time()));
-       if ( !sql_query($query) )
-       {
-               $errors[] = _ERROR18 . ': ' . sql_error();
-       }
-
        /* push configurations */
        array_merge($errors, updateConfig('IndexURL', $param->IndexURL));
        array_merge($errors, updateConfig('AdminURL', $param->AdminURL));
@@ -1022,7 +1018,7 @@ function do_install()
        /*
         * 8. Write config file ourselves (if possible)
         */
-       $config_data = '<' . '?php' . "\n\n";
+       $config_data = '<' . '?php' . "\n";
        $config_data .= "// mySQL connection information\n";
        $config_data .= "\$MYSQL_HOST = '" . $MYSQL_HOST . "';\n";
        $config_data .= "\$MYSQL_USER = '" . $MYSQL_USER . "';\n";
@@ -1497,7 +1493,13 @@ class PARAM_MANAGER
                {
                        $errors[] = sprintf(_ERROR1, _DB_FIELD2);
                }
-
+               
+               if ( $this->mysql_user != ''
+                       && !preg_match('/^[[:alnum:]_-]+$/i', $this->mysql_user) )
+               {
+                       $errors[] = sprintf(_ERROR2, _DB_FIELD2);
+               }
+               
                if ( $this->mysql_password == '' )
                {
                        $errors[] = sprintf(_ERROR1, _DB_FIELD3);
@@ -1509,13 +1511,13 @@ class PARAM_MANAGER
                }
 
                if ( $this->mysql_database != ''
-                       && !preg_match('/^\w+$/', $this->mysql_database) )
+                       && !preg_match('/^[[:alnum:]_-]+$/i', $this->mysql_database) )
                {
                        $errors[] = sprintf(_ERROR2, _DB_FIELD4);
                }
 
                if ( $this->mysql_tablePrefix != ''
-                       && !preg_match('/^\w+$/', $this->mysql_tablePrefix) )
+                       && !preg_match('/^[[:alnum:]_-]+$/i', $this->mysql_tablePrefix) )
                {
                        $errors[] = sprintf(_ERROR2, _DB_FIELD5);
                }
@@ -1546,7 +1548,7 @@ class PARAM_MANAGER
                {
                        $errors[] = sprintf(_ERROR1, _ADMIN_FIELD2);
                }
-               elseif ( !preg_match("/^[[:alnum:]]+[ [:alnum:]]*[[:alnum:]]+$/i", $this->user_name) )
+               elseif ( !preg_match("/^[[:alnum:]]+([ [:alnum:]]*[[:alnum:]]+)?$/i", $this->user_name) )
                {
                        $errors[] = _ERROR5;
                }
index 97c3635..0e456ce 100644 (file)
@@ -40,7 +40,7 @@ define('_DB_FIELD2_DESC',             '(alphabet, number, _, -)');
 define('_DB_FIELD3',                   'Password');\r
 define('_DB_FIELD3_DESC',              '(alphabet, number)');\r
 define('_DB_FIELD4',                   'Database');\r
-define('_DB_FIELD4_DESC',              '(alphabet, number, _)');\r
+define('_DB_FIELD4_DESC',              '(alphabet, number, _, -)');\r
 define('_DB_FIELD5',                   'Table Prefix');\r
 define('_DB_FIELD5_DESC',              'Don\'t usually set this.');\r
 \r
@@ -102,7 +102,7 @@ define('_INST_TEXT5',                       'Please make sure the <i>config.php</i> permissions if i
 \r
 // errors\r
 define('_ERROR1',                              '"%s" has not been entered.');\r
-define('_ERROR2',                              '"%s" character that can be used are A-Z, a-z ,0-9 and only _(underscore).');\r
+define('_ERROR2',                              '"%s" character that can be used are A-Z, a-z ,0-9, _ and -.');\r
 define('_ERROR3',                              'Could not connect to MySQL Server.');\r
 define('_ERROR4',                              'It contains characters that can not be used to "Blog Short Name". (Characters that can be used: a-z and 0-9, blank can not be used)');\r
 define('_ERROR5',                              'Contains characters that can not be used in "Login ID". (A-Z, a-z, 0-9 and the first and last non-blank characters that can be used)');\r
index a2a0b54..c276e36 100644 (file)
@@ -52,7 +52,7 @@ define('_DB_FIELD2_DESC',             '(半角英数 , _ , - )');
 define('_DB_FIELD3',                   'パスワード');\r
 define('_DB_FIELD3_DESC',              '(半角英数)');\r
 define('_DB_FIELD4',                   'データベース名');\r
-define('_DB_FIELD4_DESC',              '(半角英数 , _ )');\r
+define('_DB_FIELD4_DESC',              '(半角英数 , _ , - )');\r
 define('_DB_FIELD5',                   'プリフィックス');\r
 define('_DB_FIELD5_DESC',              '通常は空白で結構です');\r
 \r
@@ -61,7 +61,7 @@ define('_SIMPLE_NAVI2',                       'データベースの接続が確認できました
 define('_BLOG_HEADER',                 'ブログ設定');\r
 define('_BLOG_FIELD1',                 'ブログ名');\r
 define('_BLOG_FIELD2',                 'ブログ短縮名');\r
-define('_BLOG_FIELD2_DESC',            '(半角英数 , _ , - )');\r
+define('_BLOG_FIELD2_DESC',            '(半角英数小文字 , _ , - )');\r
 \r
 // admin settings\r
 define('_ADMIN_HEADER',                        '管理者の情報');\r
@@ -114,10 +114,10 @@ define('_INST_TEXT5',                     '<i>config.php</i>のパーミッションが"<span styl
 \r
 // errors\r
 define('_ERROR1',                              '"%s" が入力されていません。');\r
-define('_ERROR2',                              '"%s" に使用できる文字は A-Z、a-z、0-9 と _(アンダーバー)のみです。');\r
+define('_ERROR2',                              '"%s" に使用できる文字は半角の A-Z、a-z、0-9、_(アンダーライン)、-(ハイフン) のみです。');\r
 define('_ERROR3',                              'MySQL Serverに接続できませんでした。');\r
-define('_ERROR4',                              '"ã\83\96ã\83­ã\82°ã\81®ç\9f­ç¸®å\90\8d\95¥ç§°)" ã\81«ä½¿ç\94¨ã\81§ã\81\8dã\81ªã\81\84æ\96\87å­\97ã\81\8cå\90«ã\81¾ã\82\8cã\81¦ã\81\84ã\81¾ã\81\99ã\80\82(使ç\94¨ã\81§ã\81\8dã\82\8bæ\96\87å­\97ï¼\9aa-z ã\81¨ 0-9ã\80\82空ç\99½ã\81¯ä½¿ç\94¨ã\81§ã\81\8dã\81¾ã\81\9bã\82\93)');\r
-define('_ERROR5',                              '"ã\83­ã\82°ã\82¤ã\83³ID" ã\81«ä½¿ç\94¨ã\81§ã\81\8dã\81ªã\81\84æ\96\87å­\97ã\81\8cå\90«ã\81¾ã\82\8cã\81¦ã\81\84ã\81¾ã\81\99ã\80\82(使ç\94¨ã\81§ã\81\8dã\82\8bæ\96\87å­\97ï¼\9aA-Zã\80\81a-z ã\81¨ 0-9ã\80\81æ\9c\80å\88\9dã\81¨æ\9c\80å¾\8c以å¤\96ã\81®ç©ºç\99½)');\r
+define('_ERROR4',                              '"ã\83\96ã\83­ã\82°ã\81®ç\9f­ç¸®å\90\8d\95¥ç§°)" ã\81«ä½¿ç\94¨ã\81§ã\81\8dã\82\8bæ\96\87å­\97ã\81¯ a-zï¼\88å\8d\8aè§\92è\8b±å­\97å°\8fæ\96\87å­\97ï¼\89ã\81¨ 0-9 ã\81®ã\81¿ã\81§ã\81\99ã\80\82');\r
+define('_ERROR5',                              '"ã\83­ã\82°ã\82¤ã\83³ID" ã\81«ä½¿ç\94¨ã\81§ã\81\8dã\82\8bæ\96\87å­\97ã\81¯ A-Zã\80\81a-zã\80\810-9ï¼\88å\8d\8aè§\92è\8b±æ\95°ï¼\89ã\81®ã\81¿ã\81§ã\81\99ã\80\82ã\81\9fã\81 ã\81\97ã\80\81æ\9c\80å\88\9dã\81¨æ\9c\80å¾\8c以å¤\96ã\81§ã\81¯å\8d\8aè§\92ã\82¹ã\83\9aã\83¼ã\82¹ã\82\82使ç\94¨ã\81§ã\81\8dã\81¾ã\81\99ã\80\82');\r
 define('_ERROR6',                              '入力された二つのパスワードが一致しません。');\r
 define('_ERROR7',                              '"メールアドレス" が不正です。');\r
 \r