Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/php/235.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
PHP上的奇怪会话问题_Php_Forms_Session_Post - Fatal编程技术网

PHP上的奇怪会话问题

PHP上的奇怪会话问题,php,forms,session,post,Php,Forms,Session,Post,我遇到了一个非常奇怪的会话问题,我在服务器上处理会话已经很长时间了,一切都很好。在发布此问题之前,我已经搜索并尝试了5个小时的大量更改 无论如何,$\u会话似乎没有正确更新。我有一个使用POST的表单,它会转到同一页面,当用户提交其保存在$\u会话中的信息时,我会做一些事情并更新会话变量。页面中的一切看起来都很好,因为完成后,我用新变量保存会话,然后执行var_转储($_session[“whatever”]);它显示了更新的数据。但是,当我再次提交带有新设置的表单,并在重新加载的页面中显示$\

我遇到了一个非常奇怪的会话问题,我在服务器上处理会话已经很长时间了,一切都很好。在发布此问题之前,我已经搜索并尝试了5个小时的大量更改

无论如何,$\u会话似乎没有正确更新。我有一个使用POST的表单,它会转到同一页面,当用户提交其保存在$\u会话中的信息时,我会做一些事情并更新会话变量。页面中的一切看起来都很好,因为完成后,我用新变量保存会话,然后执行var_转储($_session[“whatever”]);它显示了更新的数据。但是,当我再次提交带有新设置的表单,并在重新加载的页面中显示$\u会话的数据时,它仍然是旧数据

我的代码有点复杂,我做的不仅仅是保存数据,而是在这里恢复这种情况:

session_start();
var_dump($_SESSION["whatever"]);

if(isset($_POST["whatever"])){


 $_SESSION["whatever"]=$_POST["whatever"];

} else {

$_SESSION["whatever"] = FALSE;
}

var_dump($_SESSION["whatever"];
因此,下面的var_dump确实显示了表单中输入的新值,这意味着它已正确保存,但没有!因为当我再次输入表单时,第一个var转储应该与上一页中的最后一个var_转储具有相同的值,仍然显示原始值(FALSE)

有什么想法吗

更新:即使我转到一个新页面并只执行以下操作:

session_start();
var_dump($_SESSION["whatever"]);
它显示的是旧数据,而不是更新的数据

顺便说一句,我还有许多其他变量不在if/else语句中,它们确实保存正确,并且会话确实从上一页的其他值更新

新的更新:我使用jQuery来显示带有滑块和旋钮的表单,如果我去掉jQuery,一切都会很好!真奇怪!我在互联网上没见过这样的东西,有什么想法吗?

session\u start();
session_start();
var_dump($_SESSION["whatever"]);
if(isset($_POST["whatever"])){
    $_SESSION["whatever"]=$_POST["whatever"];
} else {
    // Check if there is a session variable set
    if (!isset($_SESSION['whatever'])) {
        // If the session variable isn't set, initialize it to false
        $_SESSION["whatever"] = FALSE;
    } else {
        // Set the $whatever variable to be the value of the session variable
        $whatever = $_SESSION['whatever'];
    }
}
var_dump($_SESSION["whatever"];


<!-- In the HTML -->
<input name="whatever" value="<?php echo $whatever ?>" type="text">
变量转储($_会话[“任意”]); 如果(isset($_POST[“whatever”])){ $_SESSION[“whatever”]=$_POST[“whatever”]; }否则{ //检查是否设置了会话变量 如果(!isset($\u会话['whatever'])){ //如果未设置会话变量,请将其初始化为false $\u SESSION[“whatever”]=FALSE; }否则{ //将$where变量设置为会话变量的值 $whatever=$_会话['whatever']; } } 变量转储($_会话[“任意”];
session_start();
变量转储($_会话[“任意”]);
如果(isset($_POST[“whatever”])){
$_SESSION[“whatever”]=$_POST[“whatever”];
}否则{
//检查是否设置了会话变量
如果(!isset($\u会话['whatever'])){
//如果未设置会话变量,请将其初始化为false
$\u SESSION[“whatever”]=FALSE;
}否则{
//将$where变量设置为会话变量的值
$whatever=$_会话['whatever'];
}
}
变量转储($_会话[“任意”];

我已经禁用了缓存:您可能尝试过命名会话,但忘记了更新所有页面或还原所有更改?您检查过服务器上的磁盘空间吗?我曾经在磁盘已满时观察到类似问题。谢谢,但是空间已经够多了,大约1 TB可用。我已经禁用了缓存:SHa您是否曾经尝试过命名会话,但忘记了更新所有页面或还原所有更改?您检查过服务器上的磁盘空间吗?我曾经在磁盘已满时发现类似问题。谢谢,但空间已经足够了,大约1 TB可用。我显然是在添加表单,这只是一个示例代码。我的意思是什么即使当我更新会话时,它在最后一个var_转储中正确显示,当我在重新加载的页面中检索会话时,它仍然显示旧会话,而不是更新的会话。我显然在添加一个表单,这只是一个示例代码。我的意思是,即使我更新会话时,它在最后一个var_转储中正确显示我在重新加载的页面中检索会话,它仍然显示旧会话,而不是更新的会话。