質問編集履歴
3
コードを変更しました
title
CHANGED
File without changes
|
body
CHANGED
@@ -62,16 +62,18 @@
|
|
62
62
|
exit();
|
63
63
|
}
|
64
64
|
|
65
|
+
$hash = "password_hash($_POST["password"], PASSWORD_DEFAULT)";
|
66
|
+
|
67
|
+
|
65
68
|
require_once("dbconnect.php");
|
66
69
|
$sql = "SELECT * FROM users WHERE username=:username";
|
67
70
|
$stmt = $pdo->prepare($sql);
|
68
71
|
$stmt->bindValue(":username", $_POST["username"], PDO::PARAM_STR);
|
69
|
-
$stmt->bindValue(":password", $_POST["password"], PDO::PARAM_STR);
|
70
72
|
$stmt->execute();
|
71
73
|
$row = $stmt->fetch(PDO::FETCH_ASSOC);
|
72
74
|
|
73
75
|
//入力情報がDB内に登録されているか確認
|
74
|
-
if(empty($row["username"])){
|
76
|
+
if(empty($row["username"]),password_verify($_POST['password'], $hash['password'])){
|
75
77
|
//認証失敗
|
76
78
|
header("Location: login.php?err=2");
|
77
79
|
exit();
|
@@ -85,6 +87,7 @@
|
|
85
87
|
header("Location: mypage.php");
|
86
88
|
}
|
87
89
|
?>
|
90
|
+
|
88
91
|
```
|
89
92
|
コード上から、新規登録ページ → その処理 → ログインフォームの処理 になっています。
|
90
93
|
|
2
更新
title
CHANGED
File without changes
|
body
CHANGED
@@ -63,7 +63,7 @@
|
|
63
63
|
}
|
64
64
|
|
65
65
|
require_once("dbconnect.php");
|
66
|
-
$sql = "SELECT * FROM users WHERE username=:username
|
66
|
+
$sql = "SELECT * FROM users WHERE username=:username";
|
67
67
|
$stmt = $pdo->prepare($sql);
|
68
68
|
$stmt->bindValue(":username", $_POST["username"], PDO::PARAM_STR);
|
69
69
|
$stmt->bindValue(":password", $_POST["password"], PDO::PARAM_STR);
|
1
usernameだけ認証するようにしました
title
CHANGED
File without changes
|
body
CHANGED
@@ -66,15 +66,14 @@
|
|
66
66
|
$sql = "SELECT * FROM users WHERE username=:username AND password=:password";
|
67
67
|
$stmt = $pdo->prepare($sql);
|
68
68
|
$stmt->bindValue(":username", $_POST["username"], PDO::PARAM_STR);
|
69
|
-
$stmt->bindValue(":password",
|
69
|
+
$stmt->bindValue(":password", $_POST["password"], PDO::PARAM_STR);
|
70
70
|
$stmt->execute();
|
71
71
|
$row = $stmt->fetch(PDO::FETCH_ASSOC);
|
72
72
|
|
73
73
|
//入力情報がDB内に登録されているか確認
|
74
|
-
if(empty($row["username"])
|
74
|
+
if(empty($row["username"])){
|
75
75
|
//認証失敗
|
76
76
|
header("Location: login.php?err=2");
|
77
|
-
echo "ユーザ名又はパスワードが間違っています。";
|
78
77
|
exit();
|
79
78
|
//session情報がある時はマイページヘリダイレクト
|
80
79
|
if(isset($_SESSION["login"])){
|
@@ -95,6 +94,8 @@
|
|
95
94
|
|
96
95
|
パスワードをハッシュ化したほうが良いと指摘されましたので、hashしたパスワードを登録する処理をかきました。(コード2つ目)
|
97
96
|
|
98
|
-
|
97
|
+
データベースに登録しているusernameが正しければ認証したいのですが、
|
98
|
+
|
99
|
-
ハッシュ化され
|
99
|
+
なぜかハッシュ化されている情報だけ、ログインできない状況です。
|
100
|
+
ハッシュ化されていない情報のユーザーネームとパスワードを入力したら、ログインできます。
|
100
|
-
|
101
|
+
この違いはどこがおかしいのでそゆか。。??
|