这毫无意义.它适用于localhost,但不适用于我的服务器.
在提交表单之前,如果我在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);
这怎么可能?
因为它工作localhost但不在我的服务器..可能是一个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数据保持不变