为什么$ _POST变量在PHP中保存到$ _SESSION有困难?

时间:2011-03-29 18:42:55

标签: php forms session post session-state

我将通过$ _POST提交的表单值保存为会话变量时遇到了一个非常奇怪的问题。

好的,所以我在第1页上有一个表单,提交到第2页。

在第2页上,我将所有Post变量设置为Session变量。

第3页我正在检索这些变量。

如果我写下这样的话,请在第2页上填写:

$_SESSION['fname'] = 'john';

工作正常。我可以在第3页找回它。

如果我写的话

$_SESSION['fname'] = $_POST['fname'];

第3页的会话变量为空白。

如果我做的话,甚至更奇怪:

$_SESSION['fname'] = $_POST['fname'].' Doe';

在第3页,我只看到了Doe。

以前由其他页面设置的会话变量在第3页也没问题。

我已经验证了帖子变量是在第2页设置的,此时我很茫然。我不是PHP会话专家或其他任何人,但我之前曾与他们合作过,并且没有看到过这样的事情。

有人有任何想法吗?

编辑:变量在会话中设置,在第3页只是空白。

3 个答案:

答案 0 :(得分:0)

这意味着帖子中的某些内容($_POST['name'])未设置;

尝试第2页的var_dump($_POST);也看看实际发布了什么

答案 1 :(得分:0)

我无法抗拒询问:您是否在第1页表格中检查了method="POST"而非GET

答案 2 :(得分:-1)

我认为问题是因为在写入SESSION数据时POST数据不可用。

您可以通过打开php.ini并确保在SESSION之前注册POST来修复它,这样,当您尝试编写SESSION数据时,POST可用。