这毫无意义。它适用于本地主机,但不适用于我的服务器。
在提交表单之前,如果我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.php 上 var_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/