发布到数据库后的PHP重定向

时间:2012-04-11 17:07:19

标签: php sql redirect

我正在使用此代码...

<?php
if (isset($_POST['submitButton'])) { 
mysql_query("UPDATE notes SET Note=('$_POST[note]')
WHERE UserID='19'");

mysql_close($con);
header('Location: editrem3.htm'); //clears POST
}
?>

如何在用户点击提交并且数据已发布后重定向页面?

3 个答案:

答案 0 :(得分:2)

首先,确保通过if() echo块中的if()内的某些内容进入header()条件。

如果它工作正常,请确保在header()执行之前您已发送NOTHING。因为当你在PHP文件中使用echo时,在此之前不得有任何其他输出语句。因此,请检查之前的任何HTML代码或header()

然后,如果您确定exit()正在执行,但仍然没有重定向,请确保目标文件存在。

额外:在header()重定向后,务必立即添加{{1}}。否则代码将继续执行并可以显示您的敏感数据。

答案 1 :(得分:1)

使用文件的相对路径可能会导致问题。尝试使用完整路径(也可能在if {}之外更有意义)。

PHP可能能够解析相对路径,但the w3 spec explicitly states to use absolute URIs

编辑:详细说明,将相对路径移交给浏览器以进行重定向正在玩火。浏览器可能会认为它知道它在您网站的层次结构中的位置,但它实际上可能位于不同的位置。

此外,如果您没有获得404页面或类似内容,那么相对路径可能可能不是您的问题,但它可能会在以后的路上帮助您

答案 2 :(得分:0)

使用元重定向,类似

<meta http-equiv="refresh" content="0; url=http://example.com/">

但你可以做类似

的事情
<meta http-equiv="refresh" content="0; url=index.php">

与我合作