遷移先の設定~ログアウトまで、ログイン処理その4(完)「PHP」

 こんにちは、前回の「送信の続きからデータベース接続」に引き続き
今回は、ログイン処理からページ遷移をやっていこうと思います。
これは、前回までのです。
ログイン処理からページ遷移まで、ログイン処理その3「PHP」
今日は、
前回のログイン処理が完了後のページなので
前回までのプログラムは前回の確認をお願いします。
<?php
session_start();
?>

<!DOCTYPE html>
<html lang=“ja”>
<head>
    <meta charset=“UTF-8”>

    <title>Document</title>
</head>
<body>
<h2>ログイン状況</h2>
<hr>
<?php
?>

</body>
</html>

まず、新規のとんだページにはこのように書きます。
こちらでは、初めに
<?php
session_start();
?>

セッションの処理をしています。

絶対に忘れないようにしましょう!

次に
if(isset($_SESSION[‘OK’])){ }

こちらの処理をしていきます。
前回、僕のプログラムでは「OK」もセッションで
サーバに保存しているのでそのデータがあれば処理を開始する感じです。
この中に
echo ‘<br>
<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までありましたが
最後の方は駆け足だったので
分かりにくかったと思いますが、すみません。。
僕自身この記事を書くことで理解できたことや、
まだまだ分からないのもあるので
これからもきちんと取り組みたいと思いました!
それでは、ありがとうございました!!

 

運営者から皆様にお願い。

ご利用いただきありがとうございます。

コロナの影響もあり運営が厳しい状況です。
もしよろしければ、下記リンクから当ブログの応援をよろしくお願いいたします。

サポートはこちら


PHP
haseth-blogをフォローする
暇人のブログ

コメント

タイトルとURLをコピーしました