1

我在让我的登录脚本正常工作时遇到问题。当我在会话代码 (if/else) 块注释掉的情况下运行它时,我的 checkLogin() 函数似乎可以正常工作。无论我做什么,代码总是将用户发送到登录页面。

session_start();

require_once('config/class.Config.php');

if( isset($_POST['login-email'] )&& isset($_POST['login-pass']))
{
        if ( checkLogin($_POST['login-email'], $_POST['login-pass']) == true)
        {
                $_SESSION['email'] = $_POST['login-email'];
                header( "Location: members.php" );
        } else {
                header( "Location: login.php" );
        }
} else {
        header( "Location: login.php" );
}


//Uncomment line below to test checkLogin by itself - comment out if/else block above.
//$test = checkLogin($_POST['login-email'], $_POST['login-password']);

var_dump($test);

function checkLogin($email, $password)
{

    $password = sha1($password);
    //echo $password;
    $DBH = Config::getPDOconnection();
    $query = "SELECT * FROM users WHERE email=:email AND password=:password ";
    $STH = $DBH->prepare($query);
    $STH->bindParam(':email', $email);
    $STH->bindParam(':password', $password);
    $STH->execute();

    if($STH->rowCount() == 1) {
            return true;
    } else {
            return false;
    }
}  

任何帮助表示赞赏。

解决方案

在这个块中:

if ( checkLogin($_POST['login-email'], $_POST['login-pass']) == true)
{
        $_SESSION['email'] = $_POST['login-email'];
        header( "Location: members.php" );
} else {
        header( "Location: login.php" );
}

$_POST['login-pass'] 应该是 $_POST['login-password']

我是个白痴。

4

0 回答 0