我喜欢一个 if/else 语句,它检查用户是否仍然登录,否则显示消息说他们需要登录。这包括在会话过期的情况下。现在我在 else 语句中还有一个 mysqli 代码,它将执行查询以删除属于已登录用户和所在位置的表中的任何行Session_Complete
和Session
表。现在这不起作用,这真的很明显,因为显然会话已经过期,这意味着老师没有登录,因为他们的详细信息在会话过期时已被破坏,因此它无法识别哪个老师已登录,因此查询无法删除行。TeacherId
Session_Complete
0
所以我的问题是,如果有人试图解决相同的问题,如果用户由于会话到期而注销,则执行查询,那么你将如何做到这一点,以便在会话之前已经过期它会 somehpw 得到TeacherId, $userid
已经登录的老师的,所以它可以在查询中使用,同时显示用户需要登录的消息?
以下是当前的 if/else 语句:
if ((isset($username)) && (isset($userid))){ //checks the logged in teacher's username and userid
//whole page code here
}else{
echo "Please Login to Access this Page | <a href='./teacherlogin.php'>Login</a>";
$incomplete = 0;
$deletesession = " DELETE session, session_complete FROM Session AS session
LEFT JOIN Session_Complete AS session_complete
ON session_complete.SessionId = session.SessionId
WHERE (session.TeacherId = ? AND Complete = ?) ";
if (!$delete = $mysqli->prepare($deletesession)) {
// Handle errors with prepare operation here
}
//Dont pass data directly to bind_param store it in a variable
$delete->bind_param("ii",$userid, $incomplete);
$delete->execute();
if ($delete->errno) {
// Handle query error here
}
$delete->close();
}
?>