忍者ブログ

からすまる日誌 mySQL

授業ノートのまとめ

応用(10) ツイッターもどき(2)

×

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

応用(10) ツイッターもどき(2)

ログインの実現
 
auth.php
バインドバリューの3つの引数:
プレイスホルダーの名前
いれる値の名前
数値か文字か
 
password_verifyの引数:
渡されたプレーンなパスワード
ハッシュ済みのパス
これが一致すれば真だし、しなれけば偽になるのでそのままifの条件になる
 
またまたエラーがたくさん出ました
$stmt->bindValueがイコールになっていた。
出たエラーがこれ。確かにバインドバリューがおかしいなと言っておられる。 
  
Fatal error: Uncaught Error: Call to undefined function bindValue() in C:\xampp\htdocs\php\makino\twitter\auth.php:20 Stack trace: #0 {main} thrown in C:\xampp\htdocs\php\makino\twitter\auth.php on line 20
 
あとpostが小文字に一か所なっていた。
 
とりあえずここまで

--->auth.php 
 
<?php
session_start();
//評価するデータが来ているかいないか
if(empty($_POST["u_id"]) || empty($_POST["pass"])){
 header("Location: login.php");
 exit();
}
//DBへ接続
$user="root";
$dbpass="";
$host="localhost";
$dbname="twitter";
$dsn="mysql:host={$host};dbname={$dbname};charset=utf8";
$pdo=new PDO($dsn,$user,$dbpass);
//SQL文
$sql="SELECT * FROM users WHERE u_id=:u_id";//一回全部読んでくる
$stmt=$pdo->prepare($sql);//構文を焼く。こんがり。
$stmt->bindValue(":u_id",$_POST["u_id"],PDO::PARAM_STR);
$stmt->execute();
//FETCH 房をばらして連想配列にするために$rowに入れる
$row=$stmt->fetch(PDO::FETCH_ASSOC);//1件とりだし
//認証
if(password_verify($_POST["pass"],$row["pass"])){
 $_SESSION["login"] = true;
 $_SESSION["u_id"]=$row["u_id"];//=$_POST["u_id"]でも構わない
 $_SESSION["nickname"]=$row["nickname"];
 header("Location: index.php");//リダイレクト
 exit();
}else{
 $_SESSION["login"]=false;//ログイン失敗
 header("Location: login.php");
 exit();
}
?>
PR

コメント

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

プロフィール

HN:
karasumaru
性別:
非公開

P R