teratail header banner
teratail header banner
質問するログイン新規登録

質問編集履歴

4

ソース修正

2019/05/08 14:08

投稿

512
512

スコア18

title CHANGED
File without changes
body CHANGED
@@ -33,7 +33,7 @@
33
33
  //DB接続
34
34
  $link = get_db_connect();
35
35
  //DBからログインデータを検索
36
- if (($data = get_user_id($link)) === NULL) {
36
+ if (($data = get_user_id($link)) === NULL) { //DBからログインデータを検索する関数
37
37
  $err_msg[] = 'ユーザーID取得失敗';
38
38
  }
39
39
  //DB接続解除

3

ソース修正

2019/05/08 14:08

投稿

512
512

スコア18

title CHANGED
File without changes
body CHANGED
@@ -15,10 +15,12 @@
15
15
  $err_msg = array(); //エラーメッセージ
16
16
  // セッション開始
17
17
  session_start();
18
+ //リクエストメソッドの値を確認
19
+ var_dump(get_request_method()); //$_SERVER['REQUEST_METHOD']を関数化しています
18
20
  //リクエストメソッドを取得
19
21
  if (get_request_method() === 'POST') {
20
22
  //ポストされたデータを取得
21
- $user_id = get_post_data('user_id');
23
+ $user_id = get_post_data('user_id'); //POST値を格納する関数です
22
24
  $psword = get_post_data('psword');
23
25
  // エラーメッセージ
24
26
  if (trim($user_id) === '') {

2

ソース修正

2019/05/08 13:59

投稿

512
512

スコア18

title CHANGED
File without changes
body CHANGED
@@ -31,7 +31,7 @@
31
31
  //DB接続
32
32
  $link = get_db_connect();
33
33
  //DBからログインデータを検索
34
- if (($data = get_user_id($link)) === '') {
34
+ if (($data = get_user_id($link)) === NULL) {
35
35
  $err_msg[] = 'ユーザーID取得失敗';
36
36
  }
37
37
  //DB接続解除

1

コードソースを追加しました

2019/05/08 13:17

投稿

512
512

スコア18

title CHANGED
File without changes
body CHANGED
@@ -4,13 +4,94 @@
4
4
  フォームを埋めてsubmitしても、リクエストメソッドがGETで返ってくる。
5
5
  また、空白のままsubmitすると、なぜかPOSTで返ってくる。
6
6
  ### コード
7
+ ・コントローラーファイル
7
- ```html
8
+ ```php
9
+ <?php
10
+ /*
11
+ * ログインページ
12
+ */
8
- <form class="form" method="post" action="./login.php">
13
+ require_once './include/const/const.php';
9
-  <input type="text" name="user_id" placeholder="ユーザーID">
10
-  <input type="password" name="psword" placeholder="パスワード">
11
-  <button class="login-btn">ログイン</button>
14
+ require_once './include/model/function.php';
15
+ $err_msg = array(); //エラーメッセージ
12
- </form>
16
+ // セッション開始
17
+ session_start();
18
+ //リクエストメソッドを取得
19
+ if (get_request_method() === 'POST') {
20
+ //ポストされたデータを取得
21
+ $user_id = get_post_data('user_id');
22
+ $psword = get_post_data('psword');
23
+ // エラーメッセージ
24
+ if (trim($user_id) === '') {
25
+ $err_msg[] = 'ユーザー名を入力してください';
26
+ }
27
+ if (trim($psword) === '') {
28
+ $err_msg[] = 'パスワードを入力してください';
29
+ }
30
+ if (count($err_msg) === 0) {
31
+ //DB接続
32
+ $link = get_db_connect();
33
+ //DBからログインデータを検索
34
+ if (($data = get_user_id($link)) === '') {
35
+ $err_msg[] = 'ユーザーID取得失敗';
36
+ }
37
+ //DB接続解除
38
+ close_db_connect($link);
39
+ // 登録データを取得できたか確認
40
+ if (isset($data[0]['user_id']) === TRUE) {
41
+ // セッション変数にuser_idを保存
42
+ $_SESSION['user_id'] = $data[0]['user_id'];
43
+ $_SESSION['user_name'] = $data[0]['user_name'];
44
+ // ログイン済みユーザーのホームページへリダイレクト
45
+ header('Location: index.php');
46
+ exit;
47
+ } else {
48
+ // ログイン失敗
49
+ $err_msg[] = 'ユーザーID、もしくはパスワードが違います。';
50
+ // ログインページへリダイレクト
51
+ header('Location: login.php');
52
+ exit;
53
+ }
54
+ }
55
+ }
56
+ include_once './include/view/login.php';
57
+ ?>
13
58
  ```
59
+ ・viewファイル
60
+ ```PHP
61
+ <!DOCTYPE HTML>
62
+ <html lang="ja">
63
+ <head>
64
+ <title>タイトル</title>
65
+ <meta charset="UTF-8">
66
+ <link rel="stylesheet" href="./page.css">
67
+ </head>
68
+ <body>
69
+ <header>
70
+ <div class="header-box">
71
+ <a href="./top.php" class="logo">タイトル</p>
72
+ <a href="./login.php" class="menu menu-btn">ログイン</a>
73
+ </div>
74
+ </header>
75
+ <main>
76
+ <div class="container">
77
+ <h1>ログイン</h1>
78
+ <?php foreach ($err_msg as $value) { ?>
79
+ <p class="err-msg"><?php echo $value; ?></p>
80
+ <?php } ?>
81
+ <form class="form" method="post">
82
+ <input type="text" name="user_id" placeholder="ユーザーID">
83
+ <input type="password" name="psword" placeholder="パスワード">
84
+ <button class="login-btn">ログイン</button>
85
+ </form>
86
+ <a class="return" href="./top.php">戻る</a>
87
+ </div>
88
+ </main>
89
+ <footer>
90
+ <p>テストページ</p>
91
+ </footer>
92
+ </body>
93
+ </html>
94
+ ```
14
95
  ### 調べたこと
15
96
  こちら(https://havelog.ayumusato.com/develop/others/e172-http-request-trans.html)のページの内容(遷移先のURLの末尾にスラッシュをつけていると、GETでリダイレクトされる)に近い問題だと思われるのですが、依然として原因不明のままです。
16
97