简体   繁体   English

获取用户名和密码进行身份验证

[英]Fetch Username and Password for Authentication

I try to authenticate user by matching username and password input with database. 我尝试通过将用户名和密码输入与数据库匹配来对用户进行身份验证。 The password is SHA1. 密码为SHA1。 Here's the related code : 这是相关的代码:

public function init()
{
    $bootstrap = $this->getInvokeArg('bootstrap');
    $this->db = $bootstrap->getResource('auth');
    $this->session = new Zend_Session_Namespace('login');
    if(isset($this->session->isLogin)){
        $this->_helper->redirector('/guestbook');
    }
}

public function validAction()
{
    if(!isset($this->session->isLogin)){
        $username = mysql_escape_string($_POST['username']);
        $password = mysql_escape_string($_POST['password']);

        $login = $this->loginLocal($username, $password);
        if($login['username']!=''){
            echo '{success:true, result:{message:\'Welcome, '.$username.'!\'}}';
        } else {
            echo '{success:false, errors:{reason:\'Login failed, try again.\'}}';
        }
    }
}

private function loginLocal($username, $password) {
    $sql = "SELECT * FROM USER WHERE username = '".$username."' AND password = SHA1('".$password."')";

    $fetch = $this->db->query($sql);
    $login = $fetch->fetch();

    return $login;
}

But it's not working, with thrown error "Call to a member function query() on a non-object". 但是它不起作用,并抛出错误“在非对象上调用成员函数query()”。 Is this query error or what, I haven't figured it out. 这是查询错误还是什么,我还没有弄清楚。 Any help appreciated, thank you. 任何帮助表示赞赏,谢谢。

UPDATE : 更新:

Here I add init function and validAction function. 在这里,我添加了init函数和validAction函数。 I am using Zend Framework on Netbeans. 我在Netbeans上使用Zend Framework。 Indeed, $this->db is NULL, so how we can initialize it? 确实,$ this-> db为NULL,那么如何初始化它? Thank you. 谢谢。

Your database connection is not initialized 您的数据库连接未初始化

Do it like this 像这样做

$db=new mysqli($server,$user,$pass,$databaseName) or die("Database error :".$db->error); 

Then your query should be 然后您的查询应该是

$fetch = $db->query($sql);

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM