作っているもの
ユーザーIDとパスワードを照会する簡単なログインフォーム。
症状
フォームを埋めてsubmitしても、リクエストメソッドがGETで返ってくる。
また、空白のままsubmitすると、なぜかPOSTで返ってくる。
コード
・コントローラーファイル
php
1<?php 2/* 3* ログインページ 4*/ 5require_once './include/const/const.php'; 6require_once './include/model/function.php'; 7$err_msg = array(); //エラーメッセージ 8// セッション開始 9session_start(); 10//リクエストメソッドの値を確認 11var_dump(get_request_method()); //$_SERVER['REQUEST_METHOD']を関数化しています 12//リクエストメソッドを取得 13if (get_request_method() === 'POST') { 14 //ポストされたデータを取得 15 $user_id = get_post_data('user_id'); //POST値を格納する関数です 16 $psword = get_post_data('psword'); 17 // エラーメッセージ 18 if (trim($user_id) === '') { 19 $err_msg[] = 'ユーザー名を入力してください'; 20 } 21 if (trim($psword) === '') { 22 $err_msg[] = 'パスワードを入力してください'; 23 } 24 if (count($err_msg) === 0) { 25 //DB接続 26 $link = get_db_connect(); 27 //DBからログインデータを検索 28 if (($data = get_user_id($link)) === NULL) { //DBからログインデータを検索する関数 29 $err_msg[] = 'ユーザーID取得失敗'; 30 } 31 //DB接続解除 32 close_db_connect($link); 33 // 登録データを取得できたか確認 34 if (isset($data[0]['user_id']) === TRUE) { 35 // セッション変数にuser_idを保存 36 $_SESSION['user_id'] = $data[0]['user_id']; 37 $_SESSION['user_name'] = $data[0]['user_name']; 38 // ログイン済みユーザーのホームページへリダイレクト 39 header('Location: index.php'); 40 exit; 41 } else { 42 // ログイン失敗 43 $err_msg[] = 'ユーザーID、もしくはパスワードが違います。'; 44 // ログインページへリダイレクト 45 header('Location: login.php'); 46 exit; 47 } 48 } 49} 50include_once './include/view/login.php'; 51?>
・viewファイル
PHP
1<!DOCTYPE HTML> 2<html lang="ja"> 3<head> 4 <title>タイトル</title> 5 <meta charset="UTF-8"> 6 <link rel="stylesheet" href="./page.css"> 7</head> 8<body> 9 <header> 10 <div class="header-box"> 11 <a href="./top.php" class="logo">タイトル</p> 12 <a href="./login.php" class="menu menu-btn">ログイン</a> 13 </div> 14 </header> 15 <main> 16 <div class="container"> 17 <h1>ログイン</h1> 18<?php foreach ($err_msg as $value) { ?> 19<p class="err-msg"><?php echo $value; ?></p> 20<?php } ?> 21 <form class="form" method="post"> 22 <input type="text" name="user_id" placeholder="ユーザーID"> 23 <input type="password" name="psword" placeholder="パスワード"> 24 <button class="login-btn">ログイン</button> 25 </form> 26 <a class="return" href="./top.php">戻る</a> 27 </div> 28 </main> 29 <footer> 30 <p>テストページ</p> 31 </footer> 32</body> 33</html>
調べたこと
今まで作ってきたログインフォームは特に問題なかったので、突然このようなことになってしまい困っています。どなたかご教示お願いいたします。
回答1件
あなたの回答
tips
プレビュー