ログイン画面【staff_login.php】
<form method="post" action="staff_login_check.php">
スタッフコード<br />
<input type="text" name="code" ><br />
パスワード<br />
<input type="password" name="pass"><br />
<br />
<input type="submit" value="ログイン">
</form>
正しいいログインかどうかチェックするファイル【staff_login_check.php】
<?php
try
{
$staff_code=$_POST['code'];
$staff_pass=$_POST['pass'];
$staff_code=htmlspecialchars($staff_code,ENT_QUOTES,'UTF-8');
$staff_pass=htmlspecialchars($staff_pass,ENT_QUOTES,'UTF-8');
$staff_pass=md5($staff_pass);//パスワードはDBにもmd5の状態で格納されているため
$dsn='mysql:dbname=shop;host=localhost;charset=utf8';
$user='root';
$password='';
$dbh=new PDO($dsn,$user,$password);
$dbh->setAttribute(PDO::ATTR_ERRMODE,PDO::ERRMODE_EXCEPTION);
//入力情報とDBの情報を照会
$sql='SELECT name FROM {テーブル名} WHERE code=? AND password=?';
$stmt=$dbh->prepare($sql);
$data[]=$staff_code;
$data[]=$staff_pass;
$stmt->execute($data);
$dbh=null;
$rec=$stmt->fetch(PDO::FETCH_ASSOC);
if($rec==false)
{
print 'スタッフコードかパスワードが間違っています。<br />';
print '<a href="staff_login.html"> 戻る</a>';
}
else
{
session_start();
$_SESSION['login']=1;
$_SESSION['staff_code']=$staff_code;
$_SESSION['staff_name']=$rec['name'];
header('Location:staff_top.php');
exit();
}
}
catch(Exception $e)
{
print 'ただいま障害により大変ご迷惑をお掛けしております。';
exit();
}
?>
ログインしないとは入れないページ全般の最初の行に書くコード
<?php
session_start();
session_regenerate_id(true);
if(isset($_SESSION['login'])==false)
{
print 'ログインされていません。<br />';
print '<a href="../staff_login/staff_login.html">ログイン画面へ</a>';
exit();
}
else
{
print $_SESSION['staff_name'];
print 'さんログイン中<br />';
print '<br />';
}
?>
ログアウトリンク
<a href="staff_logout.php">ログアウト</a>
ログアウト処理
<?php
session_start();
$_SESSION=array(); //セッション変数を空に
//cookieにセッションIDがあれば削除
if(isset($_COOKIE[session_name()])==true)
{
setcookie(session_name(),'',time()-42000,'/');
}
session_destroy(); //セッションを破棄
?>
コメントを残す