表題の件の通りPHPでパスワードをハッシュ化すると500エラーが起こってしまします。
どなたか原因を教えていただけませんでしょうか?
該当コードは下記create_user.phpです。
<?php $dsn = 'mysql:dbname=xxxxxx'; $user = 'xxxxxx'; $password = 'xxxxxx'; try{ $dbh = new PDO($dsn, $user, $password); $password = 'test_password'; $hash_password = password_hash($password,PASSWORD_DEFAULT); $name = 'test_name'; $mail = 'test_mail5'; $sql = 'INSERT INTO test_tb (password,name,mail) VALUES(:password,:name,:mail)'; $stmt = $dbh->prepare($sql); $stmt->bindParam(':password',$password); $stmt->bindParam(':name',$name); $stmt->bindParam(':mail',$mail); $stmt->execute(); header('Location:main.php'); exit(); }catch (PDOException $e){ print('Error:'.$e->getMessage()); die(); } ?>
上記のコードをphp create_user.phpで実行すると問題なく値もデータベースに入ってきます。しかし上記のコードを別ページの送信フォームから飛んでくると500エラーを返します。フォームのページregist.phpは下記のとおりです。
<!DOCTYPE html> <html> <head> <meta charset="UTF-8"> <title>ユーザ情報の登録画面</title> </head> <body> <p>ユーザ情報</p> <form action="create_user.php" method="post"> <!--<input type="text" name="xxx"><br>--> <!--<input type="text" name="xxx">--> <input type="submit" value="送信"> </form> </body> </html>
試しにハッシュ化しているコードを一行コメントアウトしたらブラウザからでも正常に遷移してデータベースにデータも入りました。
なぜブラウザから遷移して実行するとエラーになってしまうのでしょうか?
phpのバージョンは5.6.40です。
どなたかご回答のほどよろしくお願いいたします。
回答1件
あなたの回答
tips
プレビュー