我收到标题重定向错误?

时间:2014-01-13 22:11:51

标签: php

获取此错误:警告:无法修改标头信息 - 已在blablabla第21行中发送的标头(在/ blablabla中开始输出) require_once( “的functions.php”);.但是我需要在那一点重定向,下面的最后一行代码是第21行

<?php
require_once("functions.php");
 $username = trim($_POST['username']);
 $password = trim($_POST['password']);
    if ($username&&$password){
    session_start();
     require_once("Connection.php");
      mysqli_select_db($db_server, $db_database) or 
                                                  die("Couldn't find db");
       $username = clean_string($db_server, $username);
       $password = clean_string($db_server, $password);  



       $query = "SELECT * FROM UserDatabase WHERE username='$username'";
        $result = mysqli_query($db_server, $query);
        if($row = mysqli_fetch_array($result)){
        $db_username = $row['username'];
        $db_password = $row['password'];
         if($username==$db_username&&($password)==$db_password){
              $_SESSION['username']=$username;
              $_SESSION['logged']="logged";
              header('Location: Log_homepage.php');

3 个答案:

答案 0 :(得分:2)

如果您在调用header()之前发送了正文数据,则会出现此错误。在这里,看起来罪魁祸首是你的程序中的某个地方。我在这里看到的唯一回应是sql错误,因为你似乎不太可能错过它,我猜这个问题出现在functions.php或Connection.php中。

答案 1 :(得分:2)

这通常发生在您调用更改标题()之前已经存在一些html时。确保它上面没有HTML输出,甚至没有空格。

答案 2 :(得分:1)

正如其他人所说,错误信息通常是在调用header之前输入某种输出引起的。可能是文件在打开<?php标记之前有文本,或者您可能调用了写入文件的printf之类的函数。无论是什么,如果你要打电话给header,这种事情都行不通。

此外,当您使用header('Location时...您应该根据HTTP标准放置绝对URL。有些浏览器会接受相对URL,但这仍然是不好的做法。如果您正在尝试模块化您的代码(并且您应该)添加类似

的内容
header('Location: http://' . $_SERVER['SERVER_NAME'] . '/Log_homepage.php');

如果你在,example.com,那将等同于

header('Location: http://example.com/Log_homepage.php');