PHP-PDO登录系统

PHP-PDO登录系统,php,mysql,forms,login,Php,Mysql,Forms,Login,我试图让我的登录表单与php和mysql数据库一起工作。 A此时窗体似乎没有任何作用。 当我单击submit时,它将重新加载登录页面,而不加载登录表单 数据库结构: 代码如下: 面对 纳姆 锁 密码 登录 发送 下面这两行有一些东西: $stmt = $db->prepare("SELECT * FROM gebruiker WHERE (naam = :gebruiker AND wachtwoord = :psw)"); $stmt ->bindParam(":naam",

我试图让我的登录表单与php和mysql数据库一起工作。 A此时窗体似乎没有任何作用。 当我单击submit时,它将重新加载登录页面,而不加载登录表单

数据库结构:

代码如下:


面对
纳姆
锁
密码
登录
发送

下面这两行有一些东西:

$stmt = $db->prepare("SELECT * FROM gebruiker WHERE (naam = :gebruiker AND wachtwoord = :psw)");
$stmt ->bindParam(":naam", $username);
您试图绑定名为
:naam
的参数,但该单词似乎是SQL语句中的一列

在分析脚本并假设gebruiker收到POST请求后,这些行应该是:

$stmt = $db->prepare("SELECT * FROM gebruiker WHERE (naam = :gebruiker AND wachtwoord = :psw)");
$stmt ->bindParam(":gebruiker", $username); //<-- Look at Param name binded
$stmt=$db->prepare(“从gebruiker中选择*,其中(naam=:gebruiker和wachtwoord=:psw)”;

$stmt->bindParam(“:gebruiker”,$username)// 在你们和我老师的帮助下,我找到了一个解决办法。我确实修改了数据库,代码中有一些额外的代码行。但我发布这篇文章是为了帮助其他学生或程序员


而不是
$stmt->bindParam(“:naam”,“$username”)写入
$stmt->bindParam(“:gebruiker”,$username)一般安全警告:从不在数据库中存储用户密码。从未。存储的是密码的散列。然后,在身份验证时,再次对提供的密码进行散列,并比较两个散列。这样,即使用户的系统遭到破坏,用户也不会丢失密码。有一段时间,我还以为这是一个来自开普敦的南非荷兰人同伴。如果这是正确的(如果你登录),它应该启动一个会话并重定向到index.php,即使您建议进行更改,它也不会这样做。在这些更改之后,您是否收到任何错误?如果是这样的话,把你面对的所有错误都贴出来。