这是我提交按钮的代码。一旦提交给mysql的数据,我希望它重定向到page.html。
<form name="gender."; action="<?php echo $_SERVER['PHP_SELF']; ?>" method="post" >
我添加了
<?php
header("location:page.html");
exit; }
<?
到我的表单页面的顶部。但是它只是加载page.html而不是在单击提交按钮后加载。
答案 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;
}
?>
你能修改这样的代码吗?