gpt4 book ai didi

用于网站的 PHP 和 MYSQL 登录系统,卡在用户创建上

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

我正在尝试为我的网站编写一个用户登录系统。我在笔记本电脑上运行 WAMP 并使用 Aptana 进行开发。我一直在尝试让用户创建功能工作大约 3 天。这个函数在这里:

function create_new_user($email, $pass, $level){
$db = new PDO('mysql:host=localhost;dbname=jadams', 'root', '');
$insertQuery = "INSERT INTO jadams.user VALUES ($email, $pass, $level);";
$db->query($insertQuery);
return TRUE;
}

我已经多次重写这个函数,使用准备好的语句和各种形式的条件检查,这只是最简单的一个,希望能搞清楚。无论我尝试什么,我都无法插入到数据库中。我通过 phpMyAdmin 强制插入用户来获得此登录功能:

function is_pass_correct($email, $pass){
$db = new PDO('mysql:host=localhost;dbname=jadams', 'root', '');
$email = $db->quote($email);
$selectQuery = "SELECT password FROM jadams.user WHERE email = $email;";
$rows = $db->query($selectQuery);
$db=NULL;
if($rows) {
foreach ($rows as $row) {
if($pass === $row["password"]) {return TRUE;} //MD5
}
}
return FALSE;
}

我的数据库结构是 email varchar(256) not null primary, password varchar(256) not null, access int;我也尝试过带分号和不带分号的查询。

最佳答案

您缺少要在其中插入值的列名。

"INSERT INTO jadams.user (email, password, level) VALUES ($email, $pass, $level);"

此外,由于您正在使用 PDO 库,请考虑使用准备好的语句来转义不受信任的数据。

$insertQuery = "INSERT INTO jadams.user (email, password, level) 
VALUES (:email, :password, :level)";
$db = $conn->prepare($insertQuery);
$db->execute(array(':email'=>$email,
':password'=>$pass,
':level'=>$level));

关于用于网站的 PHP 和 MYSQL 登录系统,卡在用户创建上,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/13445863/

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