从登录页面获取“无法修改标题信息”

时间:2015-01-27 07:01:50

标签: php login header

这可能是重复但我在运行以下代码时遇到此问题

<?php
include('includes/functions.php');

if(isset($_POST['login'])) {
    if(isset($_POST['username'])) {
        if(isset($_POST['password'])) {
            $username = $_POST['username'];
            $query = mysql_query("SELECT * FROM users WHERE Username = '$username'") or die(mysql_error());
            $user = mysql_fetch_array($query);

            if(md5($_POST['password']) == $user['password']); {
                echo 'Login successful';
                $_SESSION['user'] = $user['FullName'];
                header("Location:index.php");
           } 
        } else {
            echo "Please check your password!";
            include('login.php');
        }
    } else {
        echo "Please check your Username!";
        include('login.php');
    }
} else {
    echo "Please check you filled out the login form!";
    include('login.php');
  }
?>

因此,当输入用户名和密码时,我会在浏览器中获得此输出

  

登录成功
  警告:无法修改标题信息 - 已在第14行的/home/site/public_html/admin/dologin.php中发送的标题(在/home/site/public_html/admin/dologin.php:12中开始输出)

非常感谢所有帮助

4 个答案:

答案 0 :(得分:3)

        if(md5($_POST['password']) == $user['password']); {
                                                        ^
            echo 'Login successful';
            $_SESSION['user'] = $user['FullName'];
            header("Location:index.php");
        }

有两个问题。 if语句中的;不应该存在,然后该回声也应该像其他答案已经提到的那样。删除echo应修复该错误,但由于;而导致标题无效,导致标题无效。

旁注:How can I prevent SQL injection in PHP?

答案 1 :(得分:1)

header(<..>)之前应该没有输出,所以你应该摆脱它(用echo删除行。)

答案 2 :(得分:0)

使用: -

<script>location.href - "index.php"; </script>

而不是

header("Location:index.php");

答案 3 :(得分:0)

添加ob_start();在文件的开头..并删除php标签之前和之后的空格..