更新数据库后使用标头重定向

时间:2014-04-23 23:29:34

标签: php

我需要帮助重定向使用标题。

我的代码:

<?php

if($fname != "") {
    $query = mysql_query("UPDATE customer_address SET first_name='$fname',last_name='$lname',company='$company',company_id='$company_id',
                                address_1='$address_1',address_2='$address_2',city='$city',county='$county', post_code='$postcode',country='$country'
                                            WHERE address_id='$editThisId';");

    if($query==true) {
        header('Location: address.php');
    } else {
        echo "Update Error!";
    }
}

我收到以下错误:

  

警告:无法修改标头信息 - 已在C:\ xampp \ htdocs \ eula \ edit-address.php中发送的标头(输出从C:\ xampp \ htdocs \ eula \ edit-address.php:72开始)第129行

整个文件的Pastebin:http://pastebin.com/vj2Mp7u0

提前致谢!

4 个答案:

答案 0 :(得分:1)

您收到此错误是因为您的服务器已将信息发送到客户端的浏览器 - 在传输任何HTML之前,需要首先发送标头。

在任何HTML或回音调用之前,只需将用户重定向到文件最顶端的代码。

或者,您可以调用文件顶部的ob_start()来禁用输出缓冲,并在执行完每个PHP代码后将页面作为一个整体发送。

答案 1 :(得分:0)

您不能在标题前显示任何html内容,例如:

<html>
...
<?php 
 // your code
 header('Location: address.php');
?>

尝试在任何html内容之前添加php代码。

答案 2 :(得分:0)

&#34;请记住,在发送任何实际输出之前,必须通过普通HTML标记,文件中的空行或PHP来调用header()。使用include或require,函数或其他文件访问函数读取代码是一个非常常见的错误,并且在调用header()之前输出空格或空行。使用单个PHP / HTML文件时存在同样的问题。&#34;

http://www.php.net/manual/en/function.header.php

答案 3 :(得分:0)

你也可以尝试将你的php移动到页面顶部(在任何HTML之前)而不是底部。这样,php会在呈现页面上的任何内容之前查找(isset($ _ POST ['submit']))。

我认为你的重定向应该有效。