auth.phpのつづき
またエラーがでたが今度は自分で解決した
$stmt=$pdo->prepare($sql);
の一行がまるっと抜けていた。
どうしてPHPだけこうも凡ミスをするんだろう?
--->auth.php
<?php
session_start();
if(empty($_POST["id"]) || empty($_POST["password"])){
header("Location: login.php");
exit();
}
require_once("config.php");
$sql="SELECT * FROM members WHERE id=:id";
$stmt=$pdo->prepare($sql);
$stmt->bindValue(":id",$_POST["id"],PDO::PARAM_INT);
$stmt->execute();
//取り出しただけなのでfetchする
$row=$stmt->fetch(PDO::FETCH_ASSOC);
//ハッシュ済みと送られてきたpassの比較
if(password_verify($_POST["password"],$row["password"])){
//認証成功
$_SESSION["login"]=true;
$_SESSION["m_name"]=$row["m_name"];
header("Location: mypage.php");
exit();
}else{
//認証失敗
$_SESSION=[];//全消し
header("Location: login.php");
exit();
}
?>
--->mypage.php
<?php
session_start();
if(empty($_SESSION["login"])){
header("Location: login.php");
exit();
}
?>
<!DOCTYPE html>
<html lang="ja">
<head>
<meta charset="utf-8">
<title>マイページ</title>
<link rel="stylesheet" href="css/style.css">
</head>
<body>
<div id="container">
<h1><?php echo htmlspecialchars($_SESSION["m_name"],ENT_QUOTES); ?>の受信トレイ</h1>
</div>
<script src="js/script.js"></script>
</body>
</html>
ではログインページで
idに1
passにdoradoraと入力
エラーが突き止められないときは:
すべてheaderを止めること
exit("case1");とか打ち込むこと
mypageで自分あてのメールをみたり、新たにメールを送ったりしたい
db mailsに1件ダミーを入れる
挿入で行う
ではmypageで以下のものを表示させるSELECT文は?:
件名
送信者
時間
新しいのが上