実技(データモデリング演習)8
またエラーが出ました
Parse error: syntax error, unexpected '>' in C:\xampp\htdocs\php\makino\intra_mail\make_members.php on line 17
require_once("config.php");
$sql="INSERT INTO members(m_name,password) VALUES(:m_name,:password)";//プレースホルダ
$stmt=$pdo->prepare($sql);
foreach($members as $key=>$val){
$v = password_hash($val,PASSWORD_DEFAULT);
echo "<p>{$v}</p>";
}
INSERT文の"の閉じ忘れ(2度目)
例によってエラーが出ている行は違うところ。(echo "<p>{$v}</p>";)
次にエラーが出たら必ずINSERT文の"の最後を確認。
--->make_members.php
<?php
$members = [
"どらえもん"=>"doradora",
"のび太" =>"nobinobi",
"静香" =>"sizusizu",
"ジャイアン"=>"jaijai",
"スネ夫" =>"sunesune"
];
//print_r ($members);
require_once("config.php");
$sql="INSERT INTO members(m_name,password) VALUES(:m_name,:password)";//プレースホルダ
$stmt=$pdo->prepare($sql);
foreach($members as $key=>$val){
$v = password_hash($val,PASSWORD_DEFAULT);//passwordをハッシュ
//echo "<p>{$v}</p>";
$stmt->bindValue(":m_name",$key,PDO::PARAM_STR);//キーの方をバインド
$stmt->bindValue(":password",$v,PDO::PARAM_STR);//hashしたpassをバインド
$stmt->execute();
}
?>
1回だけ実行する
→入った
ではこのプログラムはもう使わない
ログインページ login.php
<!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>認証</h1>
<form method="post" action="auth.php">
<table>
<tr>
<th><label for="id">ID</label></th>
<td><input type="text" name="id" id="id"></td>
</tr>
<tr>
<th><label for="password">パスワード</label></th>
<td><input type="password" name="password" id="password"></td>
</table>
<p><button type="submit">認証</button></p>
</form>
</div>
<script src="js/script.js"></script>
</body>
</html>
認証ページ auth.php
をつくる。
同じIDをまず取り出し、
プレーンなパスワードとハッシュされたのをパスワードベリファイで比較。
$sql="SELECT * FROM members WHERE id=:id";