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(isset($_SESSION['admin_login']) && $_SESSION['admin_login'] === true && isset($_COOKIE['loginid']) && isset($_SESSION['userid'])) { $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); $acck = $dbh->prepare("SELECT userid, loginid FROM account WHERE userid = :userid"); $acck->bindValue(':userid', $_SESSION['userid']); $acck->execute(); $acck_data = $acck->fetch(); if(!empty($acck_data)){ if($_COOKIE['loginid'] === $acck_data["loginid"] && $_SESSION['userid'] === $acck_data["userid"] ){ header("Location: home/index.php"); exit; } } } elseif (isset($_COOKIE['admin_login']) && $_COOKIE['admin_login'] == true && isset($_COOKIE['loginid']) && isset($_COOKIE['userid'])) { $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); $acck = $dbh->prepare("SELECT userid, loginid FROM account WHERE userid = :userid"); $acck->bindValue(':userid', $_COOKIE['userid']); $acck->execute(); $acck_data = $acck->fetch(); if(!empty($acck_data)){ if($_COOKIE['loginid'] === $acck_data["loginid"] && $_COOKIE['userid'] === $acck_data["userid"] ){ header("Location: home/index.php"); exit; } } } if( !empty($_POST['btn_submit']) ) { $userid = htmlentities($_POST['userid']); $password = htmlentities($_POST['password']); if(!empty(H_CAPTCHA_ONOFF && H_CAPTCHA_ONOFF == "true")){ if(isset($_POST['h-captcha-response'])){ $hcaptcha_token = htmlentities($_POST['h-captcha-response']); if($hcaptcha_token){ $captcha_data = [ 'secret' => htmlentities(H_CAPTCHA_SEAC_KEY), 'response' => $hcaptcha_token, 'sitekey' => htmlentities(H_CAPTCHA_SITE_KEY) ]; $options = [ 'http' => [ 'method'=> 'POST', 'header'=> 'Content-Type: application/x-www-form-urlencoded', 'content' => http_build_query($captcha_data, '', '&') ] ]; $hCaptcha_result = json_decode(file_get_contents('https://hcaptcha.com/siteverify', false, stream_context_create($options)),true); if(!($hCaptcha_result["success"] == true)){ $error_message[] = "hCaptchaであなたが人間である確認ができませんでした。(ERROR)"; } }else{ $error_message[] = "hCaptchaであなたが人間である確認ができませんでした。(ERROR)"; } }else{ $error_message[] = "hCaptchaであなたが人間である確認ができませんでした。(ERROR)"; } } if(!empty(CF_TURNSTILE_ONOFF && CF_TURNSTILE_ONOFF == "true")){ if(isset($_POST['cf-turnstile-response'])){ $CF_Turnstile_token = htmlentities($_POST['cf-turnstile-response']); if($CF_Turnstile_token){ $CF_Turnstile_data = [ 'secret' => htmlentities(CF_TURNSTILE_SEAC_KEY), 'response' => $CF_Turnstile_token ]; $CF_Turnstile_options = [ 'http' => [ 'method'=> 'POST', 'header'=> 'Content-Type: application/x-www-form-urlencoded', 'content' => http_build_query($CF_Turnstile_data, '', '&') ] ]; $CF_Turnstile_result = json_decode(file_get_contents('https://challenges.cloudflare.com/turnstile/v0/siteverify', false, stream_context_create($CF_Turnstile_options)),true); if(!($CF_Turnstile_result["success"] == true)){ $error_message[] = "CloudflareTurnstileであなたが人間である確認ができませんでした。(ERROR)"; } }else{ $error_message[] = "CloudflareTurnstileであなたが人間である確認ができませんでした。(ERROR)"; } }else{ $error_message[] = "CloudflareTurnstileであなたが人間である確認ができませんでした。(ERROR)"; } } $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); $result = $dbh->prepare("SELECT userid, password, loginid, authcode FROM account WHERE userid = :userid"); $result->bindValue(':userid', $userid); // SQL実行 $result->execute(); // ... (前略) // IDの入力チェック if( empty($userid) ) { $error_message[] = 'ユーザーIDを入力してください。(USERID_INPUT_PLEASE)'; } else { if(!(preg_match("/^[a-zA-Z0-9_]+$/", $userid))){ $error_message[] = "IDは半角英数字で入力してください。(「_」は使用可能です。)(USERID_DONT_USE_WORD)"; } if( empty($password) ) { $error_message[] = 'パスワードを入力してください。(PASSWORD_INPUT_PLEASE)'; } if(empty($error_message)){ if($result->rowCount() > 0) { $row = $result->fetch(); // ここでデータベースから取得した値を $row に代入する if($row["userid"] == $userid){ if(password_verify($password,$row["password"])){ if(empty($row["authcode"])){ $_SESSION['admin_login'] = true; $_SESSION['userid'] = $userid; $_SESSION['loginid'] = $row["loginid"]; // リダイレクト先のURLへ転送する $url = 'check.php'; header('Location: ' . $url, true, 303); // すべての出力を終了 exit; }else{ $_SESSION['userid'] = $userid; $url = 'authlogin.php'; header('Location: ' . $url, true, 303); // すべての出力を終了 exit; } } else{ $error_message[] = 'IDまたはパスワードが違います(PASS_AND_ID_CHIGAUYANKE)'; } }else{ $error_message[] = 'IDまたはパスワードが違います(PASS_AND_ID_CHIGAUYANKE)'; } } else { $error_message[] = 'IDまたはパスワードが違います(PASS_AND_ID_CHIGAUYANKE)'; } } } } // データベースの接続を閉じる $pdo = null; ?> "> にログイン"> "> "> "/> ログイン - <?php echo htmlspecialchars($serversettings["serverinfo"]["server_name"], ENT_QUOTES, 'UTF-8');?>

ログイン

IDとパスワードを入力してください!

パスワードを表示する

人間だと思いますが一応お伺いします...
人間ですか?
人間の場合はチェックボックスにチェックしてください!