こんにちは、前回の「送信の続きからデータベース接続」に引き続き
今回は、ログイン処理からページ遷移をやっていこうと思います。
これは、前回までのです。
ログイン処理からページ遷移まで、ログイン処理その3「PHP」
今日は、
前回のログイン処理が完了後のページなので
前回までのプログラムは前回の確認をお願いします。
<?php
session_start();
?>
<!DOCTYPE html>
<html lang=“ja”>
<head>
<meta charset=“UTF-8”>
<title>Document</title>
</head>
<body>
<h2>ログイン状況</h2>
<hr>
<?php
まず、新規のとんだページにはこのように書きます。
こちらでは、初めに
<?php
session_start();
?>
セッションの処理をしています。
絶対に忘れないようにしましょう!
次に
if(isset($_SESSION[‘OK’])){ }
こちらの処理をしていきます。
前回、僕のプログラムでは「OK」もセッションで
サーバに保存しているのでそのデータがあれば処理を開始する感じです。
この中に
<form action=”” method=”POST”>
<input type=”hidden” name=”hid” value=”hid”>
<input type=”submit” value=”ログアウト”>
</form>’;
こちらを入力しました。
ログアウトボタンの作成ですね。
PHPの中に書きましたが、
外に書いてもOKです。
else{
echo “ログインしていません</br></br>”;
echo ‘<a href=”login.php”>Login画面へ</a>’;
}
遅くなりましたが、先ほどのセッションで「OK」が読み取れなかったときの
処理です。
次に下のようなのを書きます。
if(isset($_POST[‘hid’])){
$_SESSION=array();
if(isset($_COOKIE[session_name()])){
setcookie(session_name(),”,time()–3600,‘/’);
} session_destroy();
header(“Location:ログアウトのページ.php”);
exit();
}
一応、こっちの処理は
先ほど作ったフォームのログアウトボタンを
押したときの処理になります。
セッション変数を破棄して、
cookieセッションIDを破棄、セッションを破棄しています。
セッション変数の破棄はusen()でもよいです!
time()でもよいでのですが念のために-3600と
ガバット削除します。
ログイン後の画面のまとめ
<?php
session_start();
?>
<!DOCTYPE html>
<html lang=“ja”>
<head>
<meta charset=“UTF-8”>
<title>Document</title>
</head>
<body>
<h2>ログイン状況</h2>
<hr>
<?php
if(isset($_SESSION[‘OK’])){
echo “現在ログイン中です。”,“</br></br>”;
echo “ID : “,$_SESSION[‘id’],“</br>”,“名前 : “,$_SESSION[‘name’],“</br>”;
echo ‘<br>
<form action=”” method=”POST”>
<input type=”hidden” name=”hid” value=”hid”>
<input type=”submit” value=”ログアウト”>
</form>’;
}else{
echo “ログインしていません</br></br>”;
echo ‘<a href=”login.php”>Login画面へ</a>’;
}
if(isset($_POST[‘hid’])){
$_SESSION=array();
if(isset($_COOKIE[session_name()])){
setcookie(session_name(),”,time()–3600,‘/’);
} session_destroy();
header(“Location:ログアウトのページ.php”);
exit();
}
?>
</body>
</html>
次は、ログアウトしたときのページです。
<?php
session_start();
?>
<!DOCTYPE html>
<html lang=“ja”>
<head>
<meta charset=“UTF-8”>
<title>ログアウト</title>
</head>
<body>
<h2>ログイン状況</h2>
<hr>
<?php
if(isset($_SESSION[‘OK’])){
echo “ログアウト失敗”;
}else{
echo “LOGOUTしました。</br></br>”;
echo ‘<a href=”ログイン画面.php”>Login画面へ</a>’;
}
?>
</body>
</html>
シンプルですね!
一応、セッションが破棄されたかの確認をしています。
セッションが破棄されていたらログアウト成功
OKが保存されていたり、読み取ったらならログアウトは失敗という訳です。
これで完結です!!
その1~その4までありましたが
最後の方は駆け足だったので
分かりにくかったと思いますが、すみません。。
僕自身この記事を書くことで理解できたことや、
まだまだ分からないのもあるので
これからもきちんと取り組みたいと思いました!
それでは、ありがとうございました!!
コメント