晚上好,
我的登录代码有问题。我已经创建了表单,我将变量从中获取到我的php代码中(该部分运行良好)。然后我创建了php登录代码,我试图通过输入的登录名来匹配密码。但即使我输入登录名和正确的密码,我仍然会得到else
.这是代码:
<?php
$login=$_POST["loginas"];
$password=$_POST["passwordas"];
//connect to mysql
$rysys = new mysqli('localhost', 'root','','testas');
//are we connected?
if($rysys->connect_error){
die("Neprisijungeme, nes: " . $rysys->connect_error);
}
//the query
$sql = "SELECT password FROM vartotojai WHERE login='$login'";
$rezultatas=$rysys->query($sql);
if($password == $rezultatas){
echo "Prisijungeme 'n";
}
else{
echo "Neteisingas slaptazodis arba prisijungimo vardas'n";
}
?>
解释: $login
我从我的表格中得到它 $password
我从我的表格中得到它我有数据库'testas'
,它有'vartotojai'
表。vartotojai
桌子有'password'
和'login'
我输入的登录名和密码是100%像在数据库中一样。
查询函数不会以字符串形式返回您的密码字段,请阅读文档:
http://php.net/manual/en/mysqli.query.php
因此,您的支票将始终是假的。该函数的正确用法如下:
if($password == $rezultatas["password"]){
我自己找到了解决方案。我又加了一行:
$rez=$rezultatas->fetch_assoc();
行帮助我从查询中获得的结果创建一个 assoc 数组。
if($password == $rez["password"]
在这里,我只是使用 assoc 数组来检查它是否好。
@odedta,你是对的。自己找到问题的答案更有用。但是从比我好得多的人那里得到建议也是学习的好方法。