使用表单时PHP标头不会重定向

时间:2010-01-20 15:23:45

标签: php forms redirect header

我正在使用PHP脚本进行表单验证。我最初在2007年编写了这段代码,但现在它停止了工作,我一直在试图找出原因。

以下是代码:

<?php
$error_msg = '';

// Only Validate Form when it is submitted
if (isset($formSubmit)) {
   if (!isset($_SESSION["First_Name"])) {
     $get_mbr_id = urlencode ($_POST["GetMbrID"]);
     $_SESSION["MemberID"] = $get_mbr_id;
     }

   if (!headers_sent()) {
     header ("Location: mywebsite.com");
     exit (0);
     }
}

if (isset($formExit)) {
  if (!headers_sent()) {
    header ('Location: mywebsiteexit.com');
    exit (0);
    }
}
?>
<html><head></head><body>
<form name="select_action" method="POST" action="select_action">
<br>
<center>
<input type="submit" name="formSubmit" value="Next">
<input type="reset" name="fieldReset" value="Reset">
<input type="submit" name="formExit" value="Cancel">
</center>
</form></body></html>

如果存在HTML表单代码,则标题重定向不起作用。

但是,如果我删除HTML表单代码,请将if(isset(formSubmit))语句更改为if(!isset(formSubmit)),然后标题重定向将起作用。

我无法弄清楚导致header()重定向不会发生的表单代码发生了什么。

任何帮助将不胜感激!

2 个答案:

答案 0 :(得分:3)

您必须在$ _POST超全局中检查帖子数据。 Register_globals已关闭。

if (isset($_POST['formSubmit'])) {
//etc.

答案 1 :(得分:0)

100%使用之前,顶部没有空行