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']) ) { //$row['userid'] = "daichimarukn"; $userid = $_POST['userid']; $password = $_POST['password']; $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を入力してください。'; } else { if( empty($password) ) { $error_message[] = 'パスワードを入力してください。'; } else { 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またはパスワードが違います'; } }else{ $error_message[] = 'IDまたはパスワードが違います'; } } else { $error_message[] = 'IDまたはパスワードが違います'; } } } // ... (後略) } // データベースの接続を閉じる $pdo = null; ?> ログイン - <?php echo file_get_contents($servernamefile);?>

ログイン

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