我遇到了使登录脚本正常工作的问题。当我运行会话代码(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']
我是个白痴。