教師がログインしているかどうかを確認するコードを以下に示します。セッションを通じて教師のログイン状態を確認するための $_SESSION 変数は
member.php
スクリプト内にあります。
<?php
session_start();
include('member.php');
include('teachername.php');
...
if ((isset($username)) && (isset($userid))){
...
}else{
echo "Please Login to Access this Page | <a href='./teacherlogin.php'>Login</a>";
}
?>
セッションの有効期限が切れている場合は、Please Login to Access this Page
正しいメッセージが表示されます。しかし、私が抱えている問題は、セッションの有効期限が切れると、$_SESSION
このページにセッションがあるため、このページに未定義の変数の通知が表示され始めることです。
ただし、セッションの有効期限が切れた後、すべてのページに通知が表示されるわけではありません。ユーザーがログアウトを確認する必要があるページにのみ表示されます。コードに表示include(teachername.php)
されるログアウト コードは次のとおりです。
<?php
...
echo "Logged In: <b>{$_SESSION['teacherforename']} {$_SESSION['teachersurname']}</b> | <a id='teachlogout' href='./teacherlogout.php'>Logout</a>";
echo "<br/><a id='resetlink' href='./resetpass.php'>Reset Your Password</a>";
?>
ユーザーがLogout
リンクをクリックすると、以下の処理が実行session_destroy()
されます。
<?php
if ((isset($username)) && (isset($userid))){
session_destroy();
echo "You have been Logged Out | <a href='./home.php'>Home</a>";
}
else {
echo "You are Not Logged In";
}
?>
私が求めているのは、一部のページでセッションが期限切れになったときに、ユーザーがログアウトする前に確認する必要があるこれらのページに配置した確認のために、セッション変数を破棄しないことです。未定義のセッション変数エラーを示す問題はすべてこれらのページにありますが、他の php スクリプトには、セッションが終了してもこの問題はありません。
以下は、ログアウトを確認するためのコードです。
$(function() {
function logoutHandler() {
return confirm("You are currently creating an Assessment, are you sure you want to logout?" + "\n" + "(Your current assessment details will be lost)" + "\n");
}
$('#teachlogout').click(logoutHandler);
#teachlogout
ログアウトリンクのIDです