PDO登录系统给出错误

时间:2016-09-04 16:54:23

标签: php pdo

我有一个使用PDO的登录系统.....我有一个名为User的类,具有登录功能

类:用户     

require_once('db.php');

class USER
{

    private $connection;

    public function __construct()
    {
        $database = new Database();
        $db = $database->dbConnection();
        $this->connection = $db;
    }

    public function runQuery($sql)
    {
        $stmt = $this->conn->prepare($sql);
        return $stmt;
    }



    public function doLogin($email,$password)
    {
        try
        {
            $stmt = $this->connection->prepare("SELECT email, password FROM users WHERE email=:email AND password=:password ");
            $stmt->execute(array(':email'=>$email, ':password'=>$password));
            $userRow=$stmt->fetch(PDO::FETCH_ASSOC);
            if($stmt->rowCount() == 1)
            {
                if(password_verify($password, $userRow['password']))
                {
                    $_SESSION['user_session'] = $userRow['email'];
                    return true;
                }
                else
                {
                    return false;
                }
            }
        }
        catch(PDOException $e)
        {
            echo $e->getMessage();
        }
    }

    public function is_loggedin()
    {
        if(isset($_SESSION['user_session']))
        {
            return true;
        }
    }

    public function redirect($url)
    {
        header("Location: $url");
    }

    public function doLogout()
    {
        session_destroy();
        unset($_SESSION['user_session']);
        return true;
    }
}
?>

登录页面

<?php
session_start();
require_once("loginsubmit.php");
$login = new USER();

if($login->is_loggedin()!="")
{
    $login->redirect('home.html');
}

if(isset($_POST['submit']))
{

    $email = strip_tags($_POST['email']);
    $password = strip_tags($_POST['password']);

    if($login->doLogin($email,$password))
    {
        $login->redirect('userprofile.php');
    }
    else
    {
        $error = "Wrong Details !";
    }
}
?>

即使细节正确,我仍然会收到此错误

  

SQLSTATE [HY093]:参数号无效:绑定变量数与令牌数不匹配

有人可以帮帮我吗?请注意我是Php的新手,特别是OOP和PDO。

0 个答案:

没有答案