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, $options); } catch(PDOException $e) { // 接続エラーのときエラー内容を取得する $error_message[] = 'データベース接続エラー: ' . $e->getMessage(); } if( !empty($_POST['btn_submit']) ) { $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, $options); require_once 'authcode/GoogleAuthenticator.php'; $result = $dbh->prepare("SELECT authcode,loginid,username FROM account WHERE userid = :userid"); $result->bindValue(':userid', $userid); // SQL実行 $result->execute(); if($result->rowCount() > 0) { $row = $result->fetch(); $tousercode = $row["authcode"]; $chkauthcode = new PHPGangsta_GoogleAuthenticator(); $userauthcode = $_POST['usercode']; if(empty($userauthcode)){ $error_message[] = "コードを入力してください。"; }else{ $discrepancy = 2; $checkResult = $chkauthcode->verifyCode($tousercode, $userauthcode, $discrepancy); if ($checkResult) { $_SESSION['admin_login'] = true; $_SESSION['userid'] = $userid; $_SESSION['loginid'] = $row["loginid"]; $_SESSION['username'] = $row["username"]; $_SESSION['password'] = ""; // リダイレクト先のURLへ転送する $url = '/home'; header('Location: ' . $url, true, 303); // すべての出力を終了 exit; }else { $error_message[] = '二段階認証が出来ませんでした。再度お試しください。'; } } }else{ $error_message[] = 'データの取得が出来ませんでした。再度お試しください。'; } } // データベースの接続を閉じる $pdo = null; ?> ログイン - <?php echo file_get_contents($servernamefile);?>

二段階認証

二段階認証コードを入力してください。

二段階認証コード

6桁のコードを入力してください。