gpt4 book ai didi

php - $_SESSION 仅在页面重新加载后读取

转载 作者:行者123 更新时间:2023-11-30 21:58:32 24 4
gpt4 key购买 nike

我最近正在尝试解决一些关于 Session 的问题,现在我需要帮助才能使用 XAMPP 获得一个小页面。

我使用 4 个页面进行测试:
1) index.php是用户填写ID和PW的页面。
2) logon.php 检查数据库中的匹配条目并将 einter 重定向到 index.phpprofile.php
3) profil.php 回显所有相关的用户数据
4) logout.php

测试 1:现在作为用户,我执行以下操作:我从 index.php 开始并输入我的 ID 和 PW。假设我的 ID 是 1234。登录说我很好并将我重定向到 profil.php,显示用户 1234 的数据。现在我可以注销, session 被删除,一切似乎都很好。

测试 2:作为新用户,我从 index.php 开始,但现在我的 ID 是 5678。logon.php 告诉我一切正常,并将我重定向到profil.php,但它显示了第一次登录 (1234) 的数据。我也可以移动到其他页面并返回到 profil.php,但在我刷新页面(F5 或 CTRL + SHIFT + R)之前,数据将始终用于用户 1234。现在无论哪种方式,它都会显示正确的 5678 数据。我可以注销,Session 将再次被销毁。

这是我处理 session 的方式:

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>

您是否已经看出我哪里出了问题,或者您是否需要更多信息?在此先感谢所有试图提供帮助的人!

最佳答案

我实际上在缓存问题中找到了解决方案。我在标题中使用了这段代码:

<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 版本可以正常工作,从而解决了我的问题。非常感谢您的想法和意见!

关于php - $_SESSION 仅在页面重新加载后读取,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/44240490/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com