调试一些PHP代码


debug some PHP code

我正在尝试使用angularjs和PHP进行登录。但碰到问题我不明白为什么?

<?php
date_default_timezone_set("Asia/Bangkok");
session_start();
$data = json_decode(file_get_contents("php://input"));
$email = mysql_real_escape_string($data->email);
$password = mysql_real_escape_string($data->password);
{
    $con=mysqli_connect("localhost","root","thanh03021986","erp");
    if (mysqli_connect_errno()){
        echo "Failed to connect to MySQL: " . mysqli_connect_error();
    }   
    $query = mysqli_query($con,"SELECT email, password FROM user WHERE email = '$email'"); 
    $numrow = mysqli_num_rows($query); 
    if($numrow > 0){    
        while($rows = mysqli_fetch_array($query))
        {
                $dbemail = $rows['email'];
                $dbpassword = $rows['password'];            
        }
        $con->close();
        if($email==$dbemail && $password == $dbpassword){
            $_SESSION['uid'] = $email;
            header('location:/A.php');
        }       
    }
}
?>

If()返回true时,$_SESSION['uid'] = $email工作,但header('location:/A.php');不工作。我试着把header('location:/A.php');IF()中去掉,头工作吗???请帮忙解释一下?

必须首先调用session_start函数,并且必须在任何HTML代码之前调用header函数。

参见header功能手册

使用header重定向时,必须确保html中没有任何内容(甚至没有<html>标记),并且有一个绝对路径。所以,你应该这样做才能工作:

header('Location: http://pathblablabla.bla/A.php');

另外,请注意,我放的是位置,而不是位置。不确定它是否区分大小写,但以防万一。。。