* @version $Id$
*/
+/* global values initialize */
+$CONF = array();
+
/* reporting all errors for support */
error_reporting(E_ALL);
{
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>';
}
<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>';
}
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
/*
* 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();
}
* 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));
/*
* 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";
{
$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);
}
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);
}
{
$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;
}
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
\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
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
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
\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