单击提交按钮后,表单上的标题(位置)不起作用

时间:2012-02-07 01:50:44

标签: php html

这是我提交按钮的代码。一旦提交给mysql的数据,我希望它重定向到page.html。

<form name="gender."; action="<?php echo $_SERVER['PHP_SELF']; ?>" method="post" >

我添加了

     <?php 
      header("location:page.html");     
    exit; } 
<?

到我的表单页面的顶部。但是它只是加载page.html而不是在单击提交按钮后加载。

4 个答案:

答案 0 :(得分:1)

1)请不要使用PHP_SELF,它很容易受到攻击。如果您希望操作是同一页面,请将其留空。

2)我假设header()位于页面顶部,因为它有效,无法控制它。

EDIT1 :根据以下评论中的问题进行扩展。

3)header()指令将浏览器转发到新页面并停止任何进一步处理。因此,在重定向之前,所有MySQL处理都应该完成。

4)$_POST数组从输入的name属性中获取关键名称,因此请确保您的<input type="submit" name="submitbtn" ...$_POST['submitbtn']匹配

<?php
if(isset($_POST['submit'])){
    // MySQL stuff goes here
    header("Location: page.html");
    exit;
}
?>

答案 1 :(得分:0)

您必须在标头之前添加条件以检查是否提交了数据。 例如:

if(isset($_POST['btnname'])
{header("location:page.html");
exit; // this is unnecessary
}

另外,如果您想使用表单提交,则需要在page.php上发布。 因为此代码将重定向页面而不保存表单的数据。

答案 2 :(得分:0)

我的主要怀疑是你的PHP设置为禁止警告和错误。在php.ini文件中打开它们,看看消息是什么。

最有可能的是它会说“html标题无法发送,因为已经输出了一行......”

如果页面已经回显了任何输出,则PHP听觉功能无效。

答案 3 :(得分:0)

<?php
ob_start();
error_reporting(E_ALL & ~E_NOTICE);

if(isset($_POST['button'])){

  header('Location:page.html');
  exit;

}



?>

你能修改这样的代码吗?