gpt4 book ai didi

php - 更改 SESSION 变量值

转载 作者:塔克拉玛干 更新时间:2023-11-03 06:06:41 24 4
gpt4 key购买 nike

一段时间以来,我一直在尝试解决这个问题,这让我抓狂。基本上我有一个针对美国和加拿大用户的表格。在加拿大用户的表单底部有一个链接,将用户定向到 can-sesssion.php,其中包含:

<?php
if (isset($_SESSION['can'])) {
session_start();
session_destroy();
session_unset();
session_start();
$_SESSION['can'] = 2;
}
else {
session_start();
$_SESSION['can'] = 1;
}
header('Location: '. $_SERVER['HTTP_REFERER'] . '');
?>

基本上,如果他们单击该链接,它会设置 $_SESSION['can'] = 1。现在有另一个选项,如果他们单击该链接,它会将他们带回此页面,并且应该销毁 session 并设置了一个新值(好吧,这就是它应该做的)。问题是,我已经打印出 $_SESSION['can'],并且在转到该页面后它仍然保留旧值。有没有更好的方法来做到这一点,或者我的代码有问题?感谢您的帮助。

最佳答案

这是你写的:

if (isset($_SESSION['can'])) {
session_start();

session_start 是读取与用户的 PHPSESSID cookie 关联的 session 文件并填充 $_SESSION 的函数,因此您正在尝试在它有任何值之前从数组中读取。

在检查 $_SESSION['can'] 是否有值之前,您需要调用 session_start

您也不需要为了更改值而销毁和创建新 session 。

<?php
session_start();
if (isset($_SESSION['can'])) {
$_SESSION['can'] = 2;
} else {
$_SESSION['can'] = 1;
}
header('Location: '. $_SERVER['HTTP_REFERER'] . '');
?>

关于php - 更改 SESSION 变量值,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/6999049/

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