PHP会议在它的最简单的,如果file_1.php包含问题与XAMPP
<?php
session_start();
$_SESSION["test_message"] = "Hello, world";
header("Location: http://localhost/file_2.php");
?>
和file_2.php包含
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01//EN""http://www.w3.org/TR/html4/strict.dtd">
<html>
<head>
</head>
<body>
<?php
if (!(isset($_SESSION["test_message"])))
echo "Test message is not set";
else
echo $_SESSION["test_message"];
var_dump($_SESSION);
session_destroy();
?>
</body>
</html>
结果是Test message is not set
和后续代码var_dump($ _ SESSION)返回null
- locally, with Xampp
。但是,如果我上传的那些相同的文件到付费的托管网站,它的工作原理,我看到
Hello, world
array
'test_message' => string 'Hello, world' (length=12)
当我看着PHPINFO XAMPP下,它显示Session Support enabled
。我究竟做错了什么?
在session_start();在file_2的顶部?为什么不是file_1的开始?这是会话开始的地方,它设置了fiel_2将检索的会话变量。 – Mawg 2010-07-13 08:58:33
它必须在两个脚本中。 session_start()不*初始化_new_会话,它启动php的会话处理机制,您必须在每个php实例中(至少)执行一次该操作,以便使用会话数据。新请求,php的新实例,新的session_start()。 – VolkerK 2010-07-13 09:01:05
好的,你们两个都这么说 - 我已经+1了。但它仍然不起作用 – Mawg 2010-07-13 09:06:43