2012-04-11 84 views
4

我使用这个代码后...PHP重定向张贴到数据库

<?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 
} 
?> 

如何重定向页面用户点击后提交和数据已经公布?

+5

它不是按照你现在这样做的方式工作吗? – 2012-04-11 17:08:37

+0

uhhhhhhm不是那是干什么? – Rooster 2012-04-11 17:08:41

+0

不,它不重定向 – user990175 2012-04-11 17:09:35

回答

2

首先,请确保您在if()区块内输入if()条件echo

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

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

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

+0

我现在已经开始工作了。我没有在页面顶部的PHP代码,我在它前面有标签。所以现在好,谢谢。 – user990175 2012-04-11 18:44:11

+0

你是对的,如果你打电话给标题,你不能因为我们已经发送的标题,我想你应该在屏幕上有一些错误(因为他们没有被压制或者什么)。 – 2012-04-11 18:52:44

1

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

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

编辑:为了详细说明,递过一个相对路径开了一个浏览器重定向玩火。浏览器可能会认为它知道它在您网站的层次结构中的位置,但实际上它可能位于不同的位置。

另外,如果你没有得到一个404页面或类似的东西的时候,那么相对路径可能不是你的问题,但它可能会帮助你以后的道路

+0

实际上相对路径与PHP无关,它是客户端处理重定向的责任 – galymzhan 2012-04-11 18:01:24

+0

@galyymzhan - 各种浏览器对相对路径的解释可能不同,使得开发人员有责任尽可能地控制路径。如果你指的是我谈论PHP'解析路径',那么也许我对'解析'的使用是错误的 - 我的意思并不是这个意思。 – orourkek 2012-04-11 18:04:21

0

使用元重定向,东西像

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

,但你可以做这样的事情

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

正常工作与我