Bonjour,

Je voulais faire une simulation de page d'authentification donc j'ai fait mon interface avec Qt Creator dans mon fichier .ui.

J'ai voulu également m'essayer à <QtSql> et donc stocker de faux username et password dans un tableau.

J'ai suivi la documentation pour créer une base de donnée, un tableau, etc avec <QtSql>, mon code marche mais par rapport a un autre projet de Task_Manager où j'ai utiliser la library <sqlite3.h> je n'ai pas de bdd qui se créer dans mon dossier.

Je me demande donc comment mon code puisse marcher? Et ou est cette bdd?

Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
#include "Page.h"
#include "ui_Page.h"
 
Auth_Page_DB::Auth_Page_DB(QWidget *parent)
    : QMainWindow(parent)
    , ui(new Ui::Auth_Page_DB)
{
    ui->setupUi(this);
    db = QSqlDatabase::addDatabase("QSQLITE");
    db.setHostName("localhost");
    db.setDatabaseName("DB.sqlite");
    db.setUserName("root");
    db.setPassword("");
 
    if(!db.open())
    {
        qDebug() << "Impossible d'ouvrir la base de données !";
            return;
    }
    QSqlQuery query;
 
    // Requête SQL pour créer la table utilisateur
    query.prepare("CREATE TABLE users ("
                  "id INTEGER PRIMARY KEY AUTOINCREMENT, "
                  "username TEXT, "
                  "password TEXT"
                  ")");
 
    if (query.exec()) {
            qDebug() << "Table utilisateur créée avec succès.";
    } else {
            qDebug() << "Erreur lors de la création de la table utilisateur : " << query.lastError().text();
    }
 
    connect(ui->ConnexionButton,SIGNAL(clicked()),this,SLOT(OnConnexionButton()));
}
 
Auth_Page_DB::~Auth_Page_DB()
{
    delete ui;
}
 
 
void Auth_Page_DB::OnConnexionButton(){
        QSqlQuery query;
        query.prepare("SELECT * FROM users WHERE username = :username AND password = :password");
        query.bindValue(":username", ui->UsernameEdit->text());
        query.bindValue(":password", ui->PasswordEdit->text());
 
        if (query.exec() && query.next()) {
            // Si une correspondance est trouvée, l'authentification est réussie
            qDebug() << "Authentification réussie";
        } else {
            // Aucune correspondance trouvée, l'authentification a échoué
            qDebug() << "Echec de l'authentification";
        }
 
}