ログイン画面を作成しているのですが、
Trying to access array offset on value of type bool in
というエラーが出てきてしまい、原因を調べてみると
sqlに値が入っていないのではないかと思われます。
phpに詳しい方教えていただきますと幸いです。
コードは下記になります。
コード ****<?php $error=""; session_start(); try{ if (isset($_SESSION['userName'])){ header('location: user.php'); }else{ if(isset($_POST['e_mail'])){ $userName = $_POST['e_mail']; $userPassword =$_POST['password']; $dsn = 'mysql:dbname=samurai;host=localhost'; $user = 'root'; $password = ''; $dbh=new PDO ($dsn,$user,$password); $dbh->setAttribute(PDO::ATTR_ERRMODE, PDO::ERRMODE_EXCEPTION); $sql = 'SELECT * FROM `users` WHERE `e_mail`=? AND `password`=?'; $stmt = $dbh->prepare($sql); $stmt->execute(array($userName,$userPassword)); $result=$stmt->fetch(); var_dump($result); $userName=$result['name']; $category_id=$result['category']; if($userName) { $_SESSION['userName']= $result['name']; $_SESSION['first_name'] = $result['first_name']; $_SESSION['last_name'] = $result['last_name']; $_SESSION['password'] = $result['password']; $_SESSION['e_mail'] = $result['e_mail']; $_SESSION['telphone'] = $result['telphone']; $_SESSION["address1"]= $result["address1"]; $_SESSION["address2"]= $result["address2"]; $_SESSION["country"]= $result["country"]; $_SESSION["prefecture"]= $result["prefecture"]; $_SESSION["post"] = $result["post"]; $_SESSION["job"] = $result["job"]; $_SESSION["age"]= $result["age"]; $_SESSION["sex"]= $result["sex"]; $_SESSION["category"]=$result["category"];
こちらのコードにて
var_dump($result);
にてfalseの値が返ってきます。
なのでsqlに数値がうまく入っていないのかと思うのですが、
falseが返ってくる理由がわかりましたらご教授ください。
何卒よろしくお願いします。
回答2件
あなたの回答
tips
プレビュー