gpt4 book ai didi

php - 使用PDO和PHP根据MySQL数据检查变量

转载 作者:行者123 更新时间:2023-11-29 08:42:54 25 4
gpt4 key购买 nike

我有以下在先前的登录表单中输入并提交的变量:


$login = $_POST['login'];
$password = $_POST['password'];


我使用PDO连接到MySQL数据库,如下所示:


require_once('agent-config.php');
try {
$conn = new PDO(A_DB_HOST, A_DB_USER, A_DB_PASSWORD);
$conn->setAttribute(PDO::ATTR_ERRMODE, PDO::ERRMODE_EXCEPTION);
} catch (PDOException $e) {
echo 'Connection failed: ' . $e->getMessage();
}


接下来,我使用变量$ login和$ password选择匹配的用户名和密码:


//Create SELECT query    
$qry = $conn->prepare("SELECT * FROM members WHERE login=? AND passwd=?");
$qry->bindParam(1, $login);
$qry->bindParam(2, $password);


最后,我使用以下命令检查查询是否成功:


//Check whether the query was successful or not
if($qry->execute())
$count = $qry->rowCount();
echo $count;
print_r($qry);
if($count >0) {
//Login Successful
session_regenerate_id();
$member = $qry->fetch(POD::FETCH_ASSOC);
$_SESSION['SESS_AGENT_ID'] = $member['member_id'];
$_SESSION['SESS_login'] = $member['login'];
session_write_close();
header("location: agent-member-index.php");
exit();
}else {
//Login failed
header("location: login-failed.php");
exit();
}


但是,登录名和密码未正确传递,我的$ count结果为0。我知道一个问题是数据库中存储的密码是密码的.md5加密版本,因此我尝试更改


$password = '.md5($_POST['password']).';   


但是我收到了T-STRING错误。任何帮助将不胜感激!

最佳答案

$password = '.md5($_POST['password']).';


无效,因为它是2个字符串,中间是字符串文字。我想你的意思是:

$password = md5($_POST['password']);

关于php - 使用PDO和PHP根据MySQL数据检查变量,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/13264216/

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