提交后 PHP session 丢失

标签 php session

这毫无意义。它适用于本地主机,但不适用于我的服务器。

在提交表单之前,如果我var_dump() $_SESSION 它会检索到以下内容:

array(2) { ["email"]=> string(40) "082b6eff9db5019e6a28f586a679b7f72fab27f4" ["id"]=> int(5) }

表格是这样的:

<form method='POST' action='response.php?type=add_customer'>
    <input type='text' name='customer'/>
    <input type='submit' value='add'/>
</form>

如果我在 response.phpvar_dump() $_SESSION 我得到:array(0) { }

if(!isset($_SESSION)){ session_start(); }
var_dump($_SESSION);

这怎么可能?

因为它在本地主机上工作但在我的服务器上不工作..这可能是 php.ini 问题吗?如果是,是什么?

编辑 (1):将我的代码更改为此(在 response.php 中):

session_start();

if(isset($_REQUEST['type'])){
    switch ($_REQUEST['type']){
       case 'add_customer': 
        var_dump($_SESSION);
        break;
    }
}

继续不工作。它检索一个空数组。

编辑 (2):已解决。 如果有人可以向我解释为什么会这样:

session_start();
var_dump($_SESSION); // doesn't work
print_r($_SESSION); // doesn't work
echo $_SESSION['id']; // works

我很感激。因为问题是这样的。

最佳答案

session_start();作为 <?php 之后的第一件事每页顶部的标签是您想要的 $_SESSION数据持久化

关于提交后 PHP session 丢失,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/21477792/

相关文章:

php - 将第一个数据库的一列复制到 MySQL 中的第二个数据库中

PHP 在 WHERE 子句中使用 $_SESSION ['user' ] 插入 MySQL 数据库

PHP 垃圾收集说明

oracle - 浏览器关闭时防止单用户多登录

php - MySQL连接2个表但重命名列,因为它们具有相同的名称

php - 具有多对一关系的单表继承 (STI)

php - 获取下一个和上一个记录按非唯一字段排序

php - 提高服务器验证中的密码安全性

PHP - session_unset 是否取消注册 $_SESSION 变量?

PHP session 上传进度为空