C++ QT-SQlite登录应用程序
我正在创建一个需要用户登录的应用程序 我的问题是,即使用户输入任何用户名或密码,代码也会像正确登录一样执行C++ QT-SQlite登录应用程序,c++,qt,sqlite,C++,Qt,Sqlite,我正在创建一个需要用户登录的应用程序 我的问题是,即使用户输入任何用户名或密码,代码也会像正确登录一样执行 QString email, password; email = ui->loginEmailbox->text(); password = ui->loginPassbox->text(); QSqlQuery qry; qry.prepare("SELECT email FROM userRecords WHERE email = (:email)");
QString email, password;
email = ui->loginEmailbox->text();
password = ui->loginPassbox->text();
QSqlQuery qry;
qry.prepare("SELECT email FROM userRecords WHERE email = (:email)");
qry.bindValue(":email", email);
qry.prepare("SELECT password FROM userRecords WHERE password = (:password)");
qry.bindValue(":password", password);
if(qry.exec()){
if(qry.next()){
userMenu usermenu;
usermenu.setModal(true);
usermenu.exec();
}
}else
ui->loginStatusL->setText("Log-in failed, username or password incorrect!");
您正在准备2个查询并执行一个查询。现在,如果任何密码与此匹配,将登录
qry.prepare("SELECT DISTINCT email FROM userRecords WHERE email = :email AND password = :password");
qry.bindValue(":email", email);
qry.bindValue(":password", password);
这应该是可行的,但这不是检查凭据的最佳/最安全的方法