質問編集履歴

2

発生している問題・エラーメッセージ を修正

2022/09/28 07:14

投稿

hitonoko
hitonoko

score42

test CHANGED
File without changes
test CHANGED
@@ -9,7 +9,7 @@
9
9
  ### 発生している問題・エラーメッセージ
10
10
 
11
11
  ```
12
- Warning: Trying to access array offset on value of type bool
12
+ Warning: Trying to access array offset on value of type bool in C:\xampp\htdocs\practice2\login.php on line 47
13
13
  ```
14
14
  「bool型の値で配列オフセットにアクセスしようとしています」とのことですがこの状況で何をするべきなのかわかりません。
15
15
  ### 該当のソースコード

1

文法の修正 47行目の条件修正

2022/09/28 07:03

投稿

hitonoko
hitonoko

score42

test CHANGED
File without changes
test CHANGED
@@ -22,6 +22,7 @@
22
22
  PDO::ATTR_ERRMODE => PDO::ERRMODE_EXCEPTION,
23
23
  PDO::ATTR_DEFAULT_FETCH_MODE => PDO::FETCH_ASSOC,
24
24
  ]);
25
+ //接続
25
26
  }
26
27
  catch(PDOExeption $e){
27
28
  exit('データベースエラー');
@@ -31,10 +32,12 @@
31
32
  session_regenerate_id(TRUE);
32
33
  header("Location: calendar2.php");
33
34
  exit();
35
+ //ログイン状態の場合ログイン後のページにリダイレクト
34
36
  }
35
37
 
36
38
  if(count($_POST) === 0){
37
39
  $message = "";
40
+ //postされて来なかったとき
38
41
  }
39
42
 
40
43
  else{
@@ -50,14 +53,15 @@
50
53
 
51
54
  else{
52
55
  try{
53
- $mail = $_POST["mail"];
54
- $stmt = $pdo ->query("SELECT * FROM log_in WHERE mail = '$mail'");
56
+ $stmt = $pdo ->prepare('SELECT * FROM log_in WHERE mail = ?');
57
+ $stmt -> bindParam(1, $_POST["mail"], PDO::PARAM_STR, 10);
58
+ $stmt -> execute();
55
59
  $result = $stmt ->fetch(PDO::FETCH_ASSOC);
56
60
  }
57
61
  catch(PDOException $e){
58
62
  exit('データベースエラー');
59
63
  }
60
- if(password_verify($mail, $result["pass"])){
64
+ if($_POST['pass'] == $result['pass']){
61
65
  session_regenerate_id(TRUE);
62
66
  $_SESSION["login"] = $_POST["mail"];
63
67
  header("Location: calendar2.php");
@@ -71,12 +75,14 @@
71
75
  $message =htmlspecialchars($message);
72
76
  ?>
73
77
 
78
+
79
+
74
80
  <html>
75
81
  <form action="login.php" method="post">
76
82
  <p><?php echo $message ?></p>
77
- mail <input type="text" name="mail"></input>
83
+ mail <input type="text" name="mail">
78
- pass <input type="password" name="pass"></input>
84
+ pass <input type="password" name="pass">
79
- <input type="submit" name="submit" value ="ログイン"></input>
85
+ <input type="submit" name="submit" value ="ログイン">
80
86
  </form>
81
87
  </html>
82
88
  ```