PHP会话/登录脚本问题

PHP会话/登录脚本问题,php,Php,我在让我的登录纸条正常工作时遇到问题。当我使用会话代码if/else块注释掉时,我的checkLogin函数似乎工作正常。无论我做什么,代码总是将用户发送到登录页面 session_start(); require_once('config/class.Config.php'); if( isset($_POST['login-email'] )&& isset($_POST['login-pass'])) { if ( checkLogin($_POST['

我在让我的登录纸条正常工作时遇到问题。当我使用会话代码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" );
}
$\u POST['login-pass']应该是$\u POST['login-password']


我是个白痴。

提交后,$\u POST中存储了哪些值?尝试使用以下命令输出阵列:echo;正确的值在帖子中,似乎。。。或者至少是我在表单中输入的值。听起来好像checkLogin返回false。$STH->rowCount的值是多少?那么,rowCount返回1,checkLogin返回true,而您仍然被重定向到login.php?尝试用有意义的echo语句替换头重定向,仅用于故障排除目的。这可能有助于确定你被重定向到哪里。啊,没关系。看起来你发现了一个打字错误!接得好。