crossplatform.ru

Здравствуйте, гость ( Вход | Регистрация )

> Авторизация (Qt + MySql)
Vexar
  опции профиля:
сообщение 15.12.2009, 6:11
Сообщение #1


Студент
*

Группа: Участник
Сообщений: 24
Регистрация: 28.11.2008
Пользователь №: 438

Спасибо сказали: 0 раз(а)




Репутация:   0  


Возникла задача организовать авторизацию средствами 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+"'" );
}

Нужно как то через if и else. Если логин с паролем совпали то if если нет то else.
Причина редактирования: используй тэг code
Перейти в начало страницы
 
Быстрая цитата+Цитировать сообщение
 
Начать новую тему
Ответов
Серый_Ветер
  опции профиля:
сообщение 4.1.2016, 17:48
Сообщение #2


Новичок


Группа: Новичок
Сообщений: 2
Регистрация: 4.1.2016
Пользователь №: 4512

Спасибо сказали: 0 раз(а)




Репутация:   0  


Добрый день.

Можете подсказать по вашему примеру авторизации....
        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{ //Если нет - выводим сообщение об ошибке

        }


работать отказывается, можете подсказать, что и как и на что подправить нужно? нужно чтобы поле name из запроса вставилось в label

не помогла также замена

ui->label->setText(insertRow(ui->label->setText->rowCount()));
на
ui->label->setText(QueryOnline.value.toString());



p.s. прошу прощения за некропостинг... не заметил сразу.
Перейти в начало страницы
 
Быстрая цитата+Цитировать сообщение
AD
  опции профиля:
сообщение 11.1.2016, 11:09
Сообщение #3


Профессионал
*****

Группа: Участник
Сообщений: 2003
Регистрация: 4.2.2008
Из: S-Petersburg
Пользователь №: 84

Спасибо сказали: 70 раз(а)




Репутация:   17  


В строке QueryOnline.exec( "SELECT * FROM User WHERE ... синтаксическая ошибка в кавычках. Убедитесь в их корректности, как минимум.

Сообщение отредактировал AD - 11.1.2016, 11:09
Перейти в начало страницы
 
Быстрая цитата+Цитировать сообщение

Сообщений в этой теме


Быстрый ответОтветить в данную темуНачать новую тему
Теги
Нет тегов для показа


1 чел. читают эту тему (гостей: 1, скрытых пользователей: 0)
Пользователей: 0




RSS Текстовая версия Сейчас: 26.4.2024, 8:20