提示コードですが参考サイトと同じようにコードを真似たのですが以下の警告文が表示されて上手く値を取得できません。どうやってデーターベースの一致している値を取得するのでしょうか?
Warning: Undefined array key "password" in /opt/lampp/htdocs/sample/loginCheck.php on line 35 Deprecated: password_verify(): Passing null to parameter #2 ($hash) of type string is deprecated in /opt/lampp/htdocs/sample/loginCheck.php on line 35
参考サイト: https://qiita.com/MasaKu_n/items/51552aa0331f3ae90dae
<!DOCTYPE html> <html lang=ja> <head> <meta charset="utf-8"> <link rel="stylesheet" href="style.css"> <title>send</title> </head> <body> <?php ini_set("display_errors",1); error_reporting(E_ALL); ?> <?php try { $password = password_hash($_POST["password"],PASSWORD_DEFAULT); $id = $_POST["id"]; $dsn = 'mysql:dbname=Bulletin_Board;host=localhost;charset=utf8'; $dbh = new PDO($dsn,"root",""); $dbh->setAttribute(PDO::ATTR_ERRMODE,PDO::ERRMODE_EXCEPTION); $sql = 'SELECT name FROM Account WHERE ID = :id;'; $stmt = $dbh->prepare($sql); $stmt->bindParam(':id', $_POST['id']); //$stmt->bindParam(':password', $password); $stmt->execute(); $result = $stmt->fetch(); if(password_verify($_POST["password"],$result['password']) == true) { echo true; } else { echo false; } } catch(PDOException $e) { die($e->getMessage()); } ?> </body> </html>
回答2件
あなたの回答
tips
プレビュー