gpt4 book ai didi

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

转载 作者:行者123 更新时间:2023-11-29 19:21:58 25 4
gpt4 key购买 nike

我尝试通过将输入的用户名和密码与数据库相匹配来验证用户身份。密码是SHA1。相关代码如下:

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;
}

但它不起作用,并抛出错误“调用非对象上的成员函数 query()”。这是查询错误还是什么,我还没弄清楚。感谢任何帮助,谢谢。

更新:

这里我添加了init函数和validAction函数。我在 Netbeans 上使用 Zend Framework。事实上,$this->db 是 NULL,那么我们如何初始化它呢?谢谢。

最佳答案

您的数据库连接尚未初始化

这样做

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

那么你的查询应该是

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

关于php - 获取用户名和密码进行身份验证,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/42386848/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com