2012-02-07 33 views
0

这是我的提交按钮代码。一旦数据提交给MySQL我希望它重定向到page.html。单击提交按钮后表单上的标题(位置)不起作用

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

我已经加入

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

到我的表单页面的最顶端。但是,点击提交按钮后,它只是加载page.html而非加载。

+0

另外,表单标签中的分号是什么? – 2012-02-07 01:58:02

+0

对不起,错过打字 – Jacob 2012-02-07 02:04:59

回答

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; 
} 
?> 
+0

好的我改变了

....我将脚本添加到页面的顶部,没有空格。结果:页面加载了表单,但是在提交时它没有提交到mysql,也没有进入page.html。 :s – Jacob 2012-02-07 02:02:04

+0

因为您需要向我们展示您对帖子数据的处理方式。你能更新你的问题与您的PHP后处理的整个内容? – 2012-02-07 02:06:31

+0

为什么在你的表单标签中有';'?或者在name属性中有'.'?无论如何,MySQL的东西需要在if(isset(...)和'header()'之间,如果你想正确处理的话。至于为什么它没有重定向,submit按钮应该是如下:''或类似的东西。重要的部分是'name =“submit”',它被发送到'$ _POST'作为密钥名称。 – Grexis 2012-02-07 02:08:16

0

你必须添加的条件之前头检查数据是否提交。 如:

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

另外,如果你要使用的提交表单,你需要将它张贴在page.php文件。 ,因为此代码将在不保存表单数据的任何地方的情况下重定向页面。

0

我的主要疑虑是,您的PHP设置为压制警告和错误。在php.ini文件中打开它们,看看该消息是什么。

多半会说沿着像线的东西“因为已经在线路输出某某HTML头不能被发送......”

的PHP听到功能不能正常工作,如果有任何输出已从页面回应。

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

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

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

} 



?> 

你能修改代码吗?