我正在努力解决最近关于Sessions的一些事情,现在我需要帮助才能使用XAMPP来创建一个小页面。
我使用4页进行测试:
1)index.php
是用户放置其ID和PW的页面
2)logon.php
检查数据库是否有匹配的条目,并将einter重定向到index.php
或profile.php
3)profil.php
回应所有相关的用户数据
4)logout.php
测试1:现在作为用户我执行以下操作:我从index.php开始并输入我的ID和PW。让我们说我的ID是1234. Logon说我很好,并将我重定向到profil.php,显示用户1234的数据。现在我可以注销,会话被删除,一切似乎都很好。
测试2:作为新用户,我从index.php
开始,但现在我的ID为5678. logon.php
告诉我一切正常,并将我重定向到profil.php
,但它显示了第一次登录时的数据(1234)。我也可以移动到其他页面并返回profil.php
,但在刷新页面(F5或CTRL + SHIFT + R)之前,数据将始终为用户1234。无论哪种方式现在它都说明了正确的5678数据。我可以退出,会话将再次被销毁。
以下是我处理会话的方式:
index.php
:
<?php
@session_start();
?>
logon.php
:
<?php
@session_start();
session_regenerate_id(true);
?>
profile.php
:
<?php
@session_start();
if(!isset($_SESSION['personal_id'])){
header('Location: /index.php');
exit;
}
?>
logout.php
:
<?php
@session_start();
$_SESSION = array();
setcookie( session_name(), "", time()-3600, session_save_path() );
session_destroy();
session_write_close();
?>
所有标题都如下所示:
<head>
<title>Scheffel Shoptime</title>
<link href="style.css" rel="stylesheet" type="text/css">
<meta http-equiv="content-type" content="text/html; charset=utf-8" />
<meta http-equiv="cache-control" content="max-age=0" />
<meta http-equiv="cache-control" content="no-cache" />
<meta http-equiv="expires" content="0" />
<meta http-equiv="expires" content="Tue, 01 Jan 1980 1:00:00 GMT" />
<meta http-equiv="pragma" content="no-cache" />
<meta http-equiv="Refresh" content="5;url=./index.php">
</head>
你能看到我哪里出错了,还是需要更多信息? 提前感谢所有试图提供帮助的人!
答案 0 :(得分:0)
我实际上在缓存问题中找到了解决方案。我在标题中使用了这段代码:
<meta http-equiv="cache-control" content="max-age=0" />
<meta http-equiv="cache-control" content="no-cache" />
<meta http-equiv="expires" content="0" />
<meta http-equiv="expires" content="Tue, 01 Jan 1980 1:00:00 GMT" />
<meta http-equiv="pragma" content="no-cache" />
并将其更改为:
<?php
header("Cache-Control: no-store, no-cache, must-revalidate, max-age=0");
header("Cache-Control: post-check=0, pre-check=0", false);
header("Pragma: no-cache");
?>
我不知道HTML版本的哪个部分是错误的,但PHP版本运行正常,从而解决了我的问题。非常感谢您的想法和意见!