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); $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; }else{ header("Location: setup_uwuzu_db.php"); exit; } $db_php = true; }else{ $db_php = false; } if(!(empty($_POST['btn_submit']))){ $DataBase_Name = safetext($_POST['db_name']); $DataBase_User = safetext($_POST['db_user']); $DataBase_Pass = safetext($_POST['db_pass']); $DataBase_Host = safetext($_POST['db_host']); $Encryption_KEY = safetext(hash("sha3-512", bin2hex(random_bytes(64)))); try { $option = array( PDO::ATTR_ERRMODE => PDO::ERRMODE_EXCEPTION, PDO::MYSQL_ATTR_MULTI_STATEMENTS => false ); $pdo = new PDO('mysql:charset=utf8mb4;dbname='.$DataBase_Name.';host='.$DataBase_Host , $DataBase_User, $DataBase_Pass, $option); } catch(PDOException $e) { $error_message[] = "データベースに接続できませんでした。\n設定は間違っていませんか?"; } if(empty($error_message)){ $DB_Settings = " "; //設定上書き $file = fopen('../db.php', 'w'); $data = $DB_Settings; fputs($file, $data); fclose($file); header("Location: setup_uwuzu_db.php"); exit; } } // データベースの接続を閉じる $pdo = null; ?>
・
db.phpのセットアップを行います。
db.phpはuwuzuがデータベースへ接続するための設定ファイルです。
これが設定されていないとuwuzuはデータベースに接続できません。