Возникла задача организовать авторизацию средствами Qt и Mysql
В теорию как органищовать знаю а вот на практике что-то не выходит.
На бросал тут не большой код, а что дальше делать не знаю.
void LoginSysDialog::AddUserLine()
{
QString strName = LineEditName->text();
QString strPass = LineEditPass->text();
QSqlQuery QueryOnline;
QueryOnline.exec( "SELECT * FROM users WHERE login='"+strName+"' AND password='"+strPass+"'" );
}
1) Во-первых, нафига хранить пароль в базе в открытом виде? Лушче уж MD-5 хэш.
2) Во-вторых, mysql сам все сделает, вам остается только проверить, есть ли результаты после выполнения запроса. Если нет, то авторизация не прошла...
if (QueryOnline.next()) {
// авторизация прошла
} else {
// не прошла
}
Добрый день.
Можете подсказать по вашему примеру авторизации....
if (db.open()){
QSqlQuery QueryOnline;
QueryOnline.exec( "SELECT * FROM User WHERE login='"+strName+"' AND passwd='"+strPass+"'" );
if (QueryOnline.next()) {
// авторизация прошла
ui->label->setText("OK");
} else {
// не прошла
ui->label->setText("CANCEL");
}
}else{ //Если нет - выводим сообщение об ошибке
}
if (db.open()){
QSqlQuery QueryOnline;
QueryOnline.exec( "SELECT name FROM User WHERE login='"+strName+"' AND passwd='"+strPass+"' LIMIT 0, 1);
if (QueryOnline.next()) {
// авторизация прошла
ui->label->setText(insertRow(ui->label->setText->rowCount()));
} else {
// не прошла
ui->label->setText("CANCEL");
}
}else{ //Если нет - выводим сообщение об ошибке
}
ui->label->setText(insertRow(ui->label->setText->rowCount()));
на ui->label->setText(QueryOnline.value.toString());
ui->label->setText(insertRow(ui->label->setText->rowCount()));
В строке QueryOnline.exec( "SELECT * FROM User WHERE ... синтаксическая ошибка в кавычках. Убедитесь в их корректности, как минимум.
Форум Invision Power Board (http://www.invisionboard.com)
© Invision Power Services (http://www.invisionpower.com)