我的登录脚本有什么问题?

时间:2014-02-28 00:05:13

标签: php

这是我的login.php脚本。

当它运行时,它会转储输入内容的数组(错误2),完全跳过所有内容(我认为)。我完全不知道出了什么问题。

<?php

    include('../../content/php/base.php');

    // Get data
    $user = $_REQUEST['user'];
    $pass = $_REQUEST['pass'];

    // Encrypt password
    include('../../content/php/salt.php');
    $pass = crypt($pass,$salt);

    // Check database for user / check session
    if(!empty($_SESSION['LoggedIn']) && !empty($_SESSION['user'])) {
        header("Location: websiteURL");
    } elseif(!empty($user) && !empty($pass)) {
        $user = mysqli_real_escape_string($con, $user);

        if($result = mysqli_query($con, "SELECT * FROM users WHERE `user`='".$user."' AND `pass`='".$pass."'")) {
            $row_cnt = mysqli_num_rows($result);
            if($row_cnt == 1) {
                $row = mysqli_fetch_array($result);  
                $email = $row['email'];

                $_SESSION['user'] = $user;
                $_SESSION['email'] = $email; 
                $_SESSION['LoggedIn'] = 1;

                header("Location: websiteURL");
            } else {
                echo "Error 1";
                die();
            } 
    } else {
        echo "<pre>"; // dumps the array onto multiple lines instead of one
        print_r($_REQUEST);
        echo "</pre>";
        echo "Error 2";
        die(); 
    }  
} else {
    echo "Error 3";
    die();
}

?>

这是print_r的完整输出($ _ REQUEST); :

Array
(
    [user] => username
    [pass] => password
    [PHPSESSID] => 5958246ece69dfdff197ec46e4771aac
)
Error 2

2 个答案:

答案 0 :(得分:1)

尝试使用session_start();在任何包括之前。这可确保服务器会话启动

答案 1 :(得分:1)

您的查询显然失败了

if($result = mysqli_query($con, "SELECT * FROM users WHERE `user`='".$user."' AND `pass`='".$pass."'") {...}

$con是否为有效连接?

尝试在表名users周围添加反引号。

你应该做一些错误检查。看看

的输出
// You can add this to the Error 2 block (for testing.. not production use)
echo mysqli_error($con);

这会给你一个&#34;的想法&#34;什么出错了,并会帮助别人帮助你。