忍者ブログ

からすまる日誌 mySQL

授業ノートのまとめ

応用(21) データをphpからまとめて登録

×

[PR]上記の広告は3ヶ月以上新規記事投稿のないブログに表示されています。新しい記事を書く事で広告が消えます。

応用(21) データをphpからまとめて登録

実技(データモデリング演習)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";
 
PR

コメント

ただいまコメントを受けつけておりません。

プロフィール

HN:
karasumaru
性別:
非公開

P R