我有一个register.php页面。我通过表单将数据发送到php_register.php文件。此文件检查表单是否有效(电子邮件是真实的和这样的事情)。我希望php_register.php能完成他的工作并在无效格式的情况下发送给客户端寄回register.php文件:
header("Location: register.php");
我希望php_register.php将其他数据发送到register.php。在我的情况下,我想发送输入上出错的地方。我可以这样做:
header("Location: register.php?error=5");
通过register.php $_GET['error']
我可以显示正确的输出。我想要做的是同样的事情,但改为获取方法,使用post方法(不涉及任何形式)?
我该怎么办?
答案 0 :(得分:3)
长期和短期是你不能。互联网不是这样的。老实说,如果愿意,浏览器甚至可以忽略header
(这就是header
应该毫无例外地跟随die
,exit
或其他一些功能的原因。强制终止剧本。)。
您可以将值存储在$_SESSION
中,或者您可以将POST发送到表单所在的同一页面(这是大多数框架处理此问题的方式),但您无法告诉浏览器“提交此内容”在其他地方张贴。“
答案 1 :(得分:0)
使用会话,例如 php_register.php :
// start the session
session_start();
// Email check (do a more robust check of course)
if($_POST['email'] == "")
{
$_SESSION['error'] = "Please enter an email address."
header("Location: register.php");
die();
}
然后在 register.php
// start session
session_start();
if(isset($_SESSION['error']))
{
echo $_SESSION['error'];
// unset now so it doesn't show again
unset($_SESSION['error']);
}