在验证用户身份后登录系统

时间:2015-11-02 10:38:05

标签: php mysql

QGraphicsSimpleTextItem *Item;
Item->setText( QString::fromLatin1( "My text" ) );
QRectF bR = Item->sceneBoundingRect();
Item->setPos( X - bR.width()/2, Y - bR.height()/2 );

这个问题是每当我输入一些随机细节时,用户仍然可以登录系统。 当我输入不在表格内的用户名时,不会显示任何消息。 我怎么验证?如果用户在db表中不存在?

3 个答案:

答案 0 :(得分:0)

您正在寻找更改第40行:

来自:

if($numrows['username']=$username && $numrows['password']=$hashed_password)

致:

if($numrows['username']==$username && $numrows['password']==$hashed_password)

' ='是为了分配/ $ i = 1 - >我们将$ i的值设置为1

' =='是for comparaison / if($ i == 1) - >我们检查$ i是否等于1

您还应该看一下这个文档:

enter image description here

答案 1 :(得分:0)

什么是$ _password,你的数据库中是否有明确的密码或哈希密码。 如果你的数据库中有哈希密码,你应该这样做

$query1=mysqli_query($conn,"SELECT * FROM user WHERE username='$username'");
$numrows=mysqli_fetch_array($query1);
if($numrows['username']==$username && $numrows['password']==$hashed_password);

答案 2 :(得分:0)

对您的问题进行了一些修复:

1)使用mysqli_num_rows功能检查是否存在提供用户名和密码的用户。

if(mysqli_num_rows($query1) == 1)
{
    //rest of the stuff
}

2)使用=====进行相等检查而不是=

3)如果您点击查询

$query1 = mysqli_query($conn,"SELECT * FROM user WHERE username='$username' 
AND password='$hashed_password'"); 

它会给你更准确的结果。不需要if($numrows['username']==$username && $numrows['password']==$hashed_password)