crossplatform.ru

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


  Ответ в Авторизация (Qt + MySql)
Введите ваше имя
Подтвердите код

Введите в поле код из 6 символов, отображенных в виде изображения. Если вы не можете прочитать код с изображения, нажмите на изображение для генерации нового кода.
 

Опции сообщения
 Включить смайлы?
Иконки сообщения
(Опционально)
                                
                                
  [ Без иконки ]
 


Последние 10 сообщений [ в обратном порядке ]
Алексей1153 Дата 12.1.2016, 7:55
 
Цитата
QueryOnline.exec( "SELECT * FROM users WHERE login='"+strName+"' AND password='"+strPass+"'" );


добро пожаловать, sql-инъекция!
AD Дата 11.1.2016, 11:09
  В строке QueryOnline.exec( "SELECT * FROM User WHERE ... синтаксическая ошибка в кавычках. Убедитесь в их корректности, как минимум.
Iron Bug Дата 10.1.2016, 12:51
 
ui->label->setText(insertRow(ui->label->setText->rowCount()));

вообще говоря, это синтаксический бред. набор вызовов, слепленных без какого-либо смысла.

у меня есть ощущение, что ты вообще не понимаешь, что пишешь. "замена не помогла" потому что понимания не появилось, судя по всему.
начни с чтения документации по С++ и Qt. причём читать надо долго и обстоятельно. С++ с Qt - это не вижуал бейсик и не PHP, это нельзя изучить за два дня. и писание чего попало наугад в коде здесь не поможет.
Серый_Ветер Дата 4.1.2016, 17:48
  Добрый день.

Можете подсказать по вашему примеру авторизации....
        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. прошу прощения за некропостинг... не заметил сразу.
Kagami Дата 15.12.2009, 9:06
 
if (QueryOnline.next()) {
// авторизация прошла
} else {
// не прошла
}
Vexar Дата 15.12.2009, 6:51
 
Цитата(CrackedMind @ 15.12.2009, 13:19) *
1) Во-первых, нафига хранить пароль в базе в открытом виде? Лушче уж MD-5 хэш.
2) Во-вторых, mysql сам все сделает, вам остается только проверить, есть ли результаты после выполнения запроса. Если нет, то авторизация не прошла...


1. хэш убрал для лучшей читаемости кода.
2. В том то и дело что не знаю как проверить есть ли результаты после выполнения запроса.
CrackedMind Дата 15.12.2009, 6:19
  1) Во-первых, нафига хранить пароль в базе в открытом виде? Лушче уж MD-5 хэш.
2) Во-вторых, mysql сам все сделает, вам остается только проверить, есть ли результаты после выполнения запроса. Если нет, то авторизация не прошла...
Vexar Дата 15.12.2009, 6:11
  Возникла задача организовать авторизацию средствами 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.
Просмотр темы полностью (откроется в новом окне)
RSS Текстовая версия Сейчас: 19.11.2019, 23:21