0, 'path' => '/', 'domain' => '', 'secure' => true, 'httponly' => true, 'samesite' => 'Lax' ]); session_start(); // 変数の初期化 $current_date = null; $message_array = array(); $error_message = array(); $pdo = null; $stmt = null; $res = null; $option = null; if(!(empty(DB_NAME) && empty(DB_HOST) && empty(DB_USER) && empty(DB_PASS))){ try { $option = array( PDO::ATTR_ERRMODE => PDO::ERRMODE_EXCEPTION, PDO::MYSQL_ATTR_MULTI_STATEMENTS => false ); $pdo = new PDO('mysql:charset=utf8mb4;dbname='.DB_NAME.';host='.DB_HOST , DB_USER, DB_PASS, $option); } catch(PDOException $e) { // 接続エラーのときエラー内容を取得する $error_message[] = $e->getMessage(); } if(empty($error_message)){ $stmt = $pdo->prepare(" SELECT COUNT(*) FROM information_schema.tables WHERE table_schema = :schema AND table_name = :table LIMIT 1 "); $stmt->execute([ ':schema' => DB_NAME, ':table' => "ipblock", ]); $exists = $stmt->fetchColumn() > 0; if ($exists) { blockedIP($_SERVER['REMOTE_ADDR']); } } $aduser = "yes"; $options = array( // SQL実行失敗時に例外をスルー PDO::ATTR_ERRMODE => PDO::ERRMODE_EXCEPTION, // デフォルトフェッチモードを連想配列形式に設定 PDO::ATTR_DEFAULT_FETCH_MODE => PDO::FETCH_ASSOC, // バッファードクエリを使う(一度に結果セットを全て取得し、サーバー負荷を軽減) // SELECTで得た結果に対してもrowCountメソッドを使えるようにする PDO::MYSQL_ATTR_USE_BUFFERED_QUERY => true, ); $dbh = new PDO('mysql:charset=utf8mb4;dbname='.DB_NAME.';host='.DB_HOST , DB_USER, DB_PASS, $option); try{ $table_query = $dbh->prepare('SELECT 1 FROM role LIMIT 1;'); $table_query->execute(); $table_result = $table_query->fetch(); if($table_result > 0){ $query = $dbh->prepare('SELECT * FROM account WHERE admin = :adminuser limit 1'); $query->execute(array(':adminuser' => $aduser)); $result2 = $query->fetch(); if($result2 > 0){ header("Location: ../login.php"); exit; } header("Location: addadmin.php"); exit; } } catch(PDOException $e) { } $db_php = true; }else{ $db_php = false; } if(!(empty($_POST['btn_submit']))){ $sqlfile = "../uwuzu_database.sql"; $sqldata = file_get_contents($sqlfile); if ($sqldata === false) { $error_message[] = "SQLファイルの読み込みに失敗しました。"; exit(); } if(empty($error_message)){ try { $option = array( PDO::ATTR_ERRMODE, PDO::ERRMODE_EXCEPTION ); $pdo = new PDO('mysql:charset=utf8mb4;dbname='.DB_NAME.';host='.DB_HOST , DB_USER, DB_PASS, $option); $pdo->exec($sqldata); $db_setup = true; $role_sql = "insert into role (rolename, roleauth, rolecolor, roleidname) VALUES ('凍結済み', 'ice', 'CCCCCC', 'ice'); insert into role (rolename, roleauth, rolecolor, roleidname) VALUES ('公式', 'official', 'CCCCCC', 'official'); insert into role (rolename, roleauth, rolecolor, roleidname) VALUES ('ゆーざー', 'user', 'CCCCCC', 'user');"; $pdo->exec($role_sql); $role_setup = true; } catch (PDOException $e) { $error_message[] = 'SQL実行エラー: ' . $e->getMessage(); } if(empty($error_message)){ header("Location: addadmin.php"); exit; } } } // データベースの接続を閉じる $pdo = null; ?> データベースのセットアップ - <?php echo safetext($serversettings["serverinfo"]["server_name"]);?>

データベースのセットアップ

データベースのセットアップを行います。
データベース内にテーブルというデータを保存する場所と必須ロールを作成します!
作成にあたり、uwuzuにデフォルトで同梱されているuwuzu_database.sqlというファイルを使用します。
このファイルに悪質な命令などが含まれているとあなたのサーバーが死んでしまうおそれがあります!

uwuzuをuwuzuの公式ダウンロードページ(Github)からダウンロードしているならおそらく安全かと思われますが、
uwuzu_database.sqlが安全なことを確認したうえで以下のデータベースのセットアップを実行してください。

また、このセットアップには時間がかかる事があります!
処理が終わるまで再起動などはせずに、そのままお待ち下さい!

データベースのセットアップが完了すると、管理者アカウントの登録へ進みます。