0

我有一个文本区域,我试图在提交表单之前验证是否有人填写。我正在用 PHP 完成我所有的验证服务器端。

我有两个想法。任何一个:

1) 将表单提交给自身并让字段在同一页面上验证自己,然后重定向到表单将更新我的数据库的页面。我遇到的问题是,由于它是向自己发布的,一旦页面重定向,我就无法使用 POST 值,因为它们不再有效。

2)所以我想我只是在第二页(表单最初设置为发布到的页面)上进行验证。这是该页面的代码,其中“描述”是文本区域的名称:

session_start();
if(!$_POST['description']){
echo "<script>alert(\"Please fill out all fields\");</script>";
header("location:post_job.php");
}

然后它重定向回正在填写表单的页面。我得到了这个错误:

Warning: Cannot modify header information - headers already sent by (output started at siteinfo/site/checkjob.php:4) in siteinfo/site/checkjob.php on line 5

第五行是标题行(所以第四行显然是回声行)。我不明白为什么它会产生那个错误,因为我还没有发送标题。任何帮助将不胜感激。谢谢!

4

2 回答 2

1

尝试这个

session_start();
if(!$_POST['description']){
echo "<script>alert(\"Please fill out all fields\");";
echo "window.location.href='post_job.php';";
echo "</script>";
}

尽管我必须添加您打算显示信息的方式不是很好。在提交表单之前通过 Ajax 或 javascript 进行验证是一个很好的方法。保持这种方式作为备用计划,以防客户端系统上的 javascript 被禁用。

于 2012-11-08T06:39:41.527 回答
0

带有标签的回显将输出发送到浏览器。请改用您首选的 JavaScript 在脚本标记中重定向的方式。

于 2012-11-08T06:39:04.713 回答