質問編集履歴

2

事態の進捗

2020/11/29 03:24

投稿

lnavi.bex810vh
lnavi.bex810vh

スコア12

test CHANGED
@@ -1 +1 @@
1
- ブール型配列の値として処理されてしまう
1
+ $_POST配列が変数に代入できない
test CHANGED
@@ -1,14 +1,38 @@
1
1
  php7.4、mysql8にてユーザ認証を実現したいのですが、
2
2
 
3
- $member_mail=$rec['member_mail'];  (B箇所)
4
-
5
- のところで、登録しているメールアドレスを入力した場合は正常に動作するのですが、登録していないメールアドレスの場合、以下のように動作してしまいます。いろいろ調べて、取得した配列がブールの場合に発生することが多いNoticeということ、またはphp7.4に上がると頻発するという事までは分かりましたが、同様のことを行うほかのスクリプトではNoticeは発生しません。どうしてこうなるのかわからず困っております。PDO::PARAM_STRで直接指定しても動作は変わりませんでした。
3
+ 進捗があったので書き換えいたします。$recがbool(false)になる前の行でvar_dump($_POST['user_mail']);を実行するとnullが返ってくることがわかりました。psyshでデバッグすると以下ようになります。簡単に言うと変数に$_POSTの値がどういうわけか代入できないのです。
6
4
 
7
5
  ーーーーーーーーーーーーーーーーーーーーーーーーーーーーーーーーーーーーーーーーーーーーーーーーーー
8
6
 
9
- Notice: Trying to access array offset on value of type bool in C:\xampp\htdocs\asobi\mem_login_check.php on line 32
7
+ c:\xampp\htdocs>psysh asobi/mem_login_check.php
10
8
 
9
+ Psy Shell v0.10.4 (PHP 7.4.11 — cli) by Justin Hileman
10
+
11
+ <!DOCTYPE html>
12
+
13
+ <html>
14
+
15
+ <head><meta charset=UTF-8>
16
+
17
+ <title>ログインチェック</title>
18
+
19
+ </head>
20
+
21
+ <body>
22
+
23
+ array(0) {
24
+
25
+ }
26
+
27
+ PHP Notice: Undefined index: user_mail in C:/xampp/htdocs/asobi/mem_login_check.php on line 9
28
+
29
+ PHP Notice: Undefined index: user_pass in C:/xampp/htdocs/asobi/mem_login_check.php on line 10
30
+
31
+ PHP Notice: Trying to access array offset on value of type bool in C:/xampp/htdocs/asobi/mem_login_check.php on line 33
32
+
11
- メールアドレスが見つかりせん
33
+ メールアドレスが一致しした</body>
34
+
35
+ </html>>>>
12
36
 
13
37
  ーーーーーーーーーーーーーーーーーーーーーーーーーーーーーーーーーーーーーーーーーーーーーーーーーー
14
38
 
@@ -28,19 +52,17 @@
28
52
 
29
53
  <?php
30
54
 
55
+ var_dump($_POST);
56
+
31
- include_once('../common/common.php');
57
+ $user_mail=$_POST['user_mail'];
58
+
59
+ $user_pass=$_POST['user_pass'];
32
60
 
33
61
 
34
62
 
35
- $post=sanitize($_POST);
63
+ //var_dump($_POST['user_mail']);
36
64
 
37
-
38
-
39
- $user_mail=$post['user_mail'];
40
-
41
- $user_pass=$post['user_pass'];
65
+ //var_dump($_POST['user_pass']);
42
-
43
-
44
66
 
45
67
 
46
68
 
@@ -66,17 +88,21 @@
66
88
 
67
89
  $stmh=$dbh->prepare($sql);
68
90
 
69
- //$stmh->bindValue(':member_mail',$_POST['user_mail'],PDO::PARAM_STR);
70
-
71
91
  $data[]=$user_mail;
72
92
 
73
93
  $stmh->execute($data);
94
+
95
+
74
96
 
75
97
  $rec=$stmh->fetch(PDO::FETCH_ASSOC);
76
98
 
77
99
 
78
100
 
101
+ //var_dump($rec);//<=DBオブジェクトの結果
102
+
103
+
104
+
79
- **$member_mail=$rec['member_mail'];**
105
+ $member_mail=$rec['member_mail'];
80
106
 
81
107
 
82
108
 

1

誤字

2020/11/29 03:24

投稿

lnavi.bex810vh
lnavi.bex810vh

スコア12

test CHANGED
File without changes
test CHANGED
@@ -2,7 +2,7 @@
2
2
 
3
3
  $member_mail=$rec['member_mail'];  (Bの箇所)
4
4
 
5
- のところで、登録していないメールアドレスを入力した場合は正常に動作するのですが、登録していないメールアドレスの場合、以下のように動作してしまいます。いろいろ調べて、取得した配列がブールの場合に発生することが多いNoticeということ、またはphp7.4に上がると頻発するという事までは分かりましたが、同様のことを行うほかのスクリプトではNoticeは発生しません。どうしてこうなるのかわからず困っております。PDO::PARAM_STRで直接指定しても動作は変わりませんでした。
5
+ のところで、登録していメールアドレスを入力した場合は正常に動作するのですが、登録していないメールアドレスの場合、以下のように動作してしまいます。いろいろ調べて、取得した配列がブールの場合に発生することが多いNoticeということ、またはphp7.4に上がると頻発するという事までは分かりましたが、同様のことを行うほかのスクリプトではNoticeは発生しません。どうしてこうなるのかわからず困っております。PDO::PARAM_STRで直接指定しても動作は変わりませんでした。
6
6
 
7
7
  ーーーーーーーーーーーーーーーーーーーーーーーーーーーーーーーーーーーーーーーーーーーーーーーーーー
8
8