我创建了一个成员页面,用于检查是否已登录,其中包括一个注销按钮 - 请参见下面的代码。开发函数“DBLoggedin()”的代码是从站点“ http://www.phpro.org/tutorials/Basic-Login-Authentication-with-PHP-and-MySQL.html - 登录测试部分复制的用户”。
第一次登录后,带有以下代码的会员页面在我加载时总是有效。然后当我刷新此页面时,它似乎丢失了会话 ID 信息,因为它报告“您必须登录才能访问此页面”。但是,当我在下面的代码中使用 session_destroy() 删除“按钮 onclick”行时,成员页面总是可以正常工作。
我应该如何在下面的代码中实现注销功能,以便刷新页面不会破坏会话信息?或者刷新时破坏会话信息的代码中是否存在另一个错误?
请您的帮助。先感谢您
会员页面代码:
<?php
/*** begin the session ***/
session_start();
//! include lib after session_start()
include 'test_ecis_lib_pdo.php';
/*** mysql hostname ***/
$mysql_hostname = 'localhost';
/*** mysql username ***/
$mysql_username = 'root';
/*** mysql password ***/
$mysql_password = 'xxxxx';
/*** database name ***/
$mysql_dbname = 'xxxx';
if(DBLoggedin($mysql_hostname, $mysql_username, $mysql_password,$mysql_dbname))
{
echo "<br> still logged in";
}
else
{
echo "<br> you are not authorised to access this page";
echo "<br error: ".$message;
}
?>
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN"
"http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
<meta http-equiv="Content-Type" content="text/html; charset=UTF-8" />
<title>Members Only Page</title>
</head>
<body>
<h2><?php echo $message; ?></h2>
<button onclick="<?php Logout();?>"> Logout</button>
</body>
</html>