我的程序基本上是一个表单。用户按下提交按钮后,程序会输入错误检查(因此我无法使用表单中的action元素来调用新程序)。错误检查后,我使用header("Location: url")
调用另一个程序。
问题是我丢失了所有会话数据。我将session_start()
作为两个程序中的第一行,我使用$_SESSION['variable name']
命名一些变量。我的表单使用POST方法。
我的POST变量在用户按下提交后存在,但在header()
调用后也会丢失 - 以及我的$_SESSION['']
变量。我的session_id对于两个程序都是相同的。我在session_write_close()
声明之前尝试header()
- 仍然丢失了数据。
如何保存我的可变数据?
答案 0 :(得分:1)
在使用标题之前,请将$ _POST的内容存入$ _SESSION变量。 如果您从第1页开始,则不会保存$ _POST变量 - > 2 - > 3,它们从第1页发送到第2页,就是它。
或第二个选项:当您执行标题时,您可以将帖子的内容放入网址中,以执行以下操作:
header("Location: http://www.example.com/index.php?name=".$_POST['name']);
当您登陆页面后的标题后,您可以使用:
$name = $_GET['name'];
你会得到这个名字。
编辑:修复我的英语:)
答案 1 :(得分:0)
当您分配这些会话变量时...尝试在没有标题的同一页面上回显它们并看到它们被正确分配。
并确保在标题调用后立即使用exit()。如果不这样做,它会在重定向后仍然运行脚本的其余部分。它可能正在重置会话变量,因为$ _POST将为空。
让我知道它是否有效