L'auth..."> L'auth...">

TUTO Windev Mobile et MySQL : Système de connexion

AUTEUR Code-Codage ~ 13/04/2022
Programmation WINDEV Mobile Professionnel

L'authentification est une procédure, par laquelle un système informatique certifie l'identité d'une personne ou d'un ordinateur. Le but de cette procédure étant d'autoriser la personne à accéder à certaines ressources sécurisées. Découvrez dans ce tutoriel comment réaliser ce système de connexion

Code Source Login

Login est une Classe

hérite CnxDatabase

PUBLIC
m_sUserLogin est une chaîne
m_sPassLogin est une chaîne

m_sRequeteSQL est une chaîne

GLOBAL
//Déclaration des variables à utiliser de l'extérieur
mg_sIdUser, mg_sNom, mg_sEmail, mg_sPhone sont des chaîne

FIN

PROCÉDURE Constructeur(LoginUtilisateur, PassUtilisateur)

SI LoginUtilisateur = "" ET PassUtilisateur = "" ALORS
Info("Le champs sont vide")
FIN

m_sUserLogin = LoginUtilisateur
m_sPassLogin = Crypte(PassUtilisateur, "MotDePasse")

PROCÉDURE Connexion()

m_sRequeteSQL = "SELECT * FROM utilisateurs WHERE email = '" + m_sUserLogin + "' AND pass = '" + m_sPassLogin + "'"

SI mySQLExec(m_sRequeteSQL,1) = Vrai ALORS
//Compter les nombre des lignes et trouvé les informations correspondants
mySQLGetNumRows(1)

//Aller chercher les informations

SI mySQLFetch(1) ALORS
//Stocker les informations dans les variables Globales
mg_sIdUser = mySQLLitCol(1,1)
mg_sNom = mySQLLitCol(1,2)
mg_sEmail = mySQLLitCol(1,3)
mg_sPhone = mySQLLitCol(1,5)

OuvreFenêtreMobile(FEN_Profile)
SINON
Info("L'utilisateur n'existe pas !")
FIN
FIN

Bouton Connexion

clUserConnect est un Login(SAI_Adresse_mail,SAI_Mot_de_passe)
clUserConnect.Connexion()

Classe Profile

PROCÉDURE UpdateProfile()

m_sRequeteSQL = "UPDATE utilisateurs SET nom = '" + m_sNom + "', email = '" + m_sEmail + "', pass = '" + m_sMdp + "', phone = '" + m_sPhone + "' WHERE id = '" + m_nIdUser + "'"

SI OuiNon("Appliquer la modification ?") = Oui ALORS
mySQLExec(m_sRequeteSQL,1)
Info("Votre profile à été mise à jour")
FIN
PROCÉDURE MonProfileAffiche()

m_sRequetSQL = "SELECT * FROM utilisateurs WHERE id = '" + Login.mg_sIdUser + "'"

mySQLExec(m_sRequetSQL,1)

mySQLGetNumRows(1)

SI mySQLFetch(1) ALORS
m_nIdProfile = mySQLLitCol(1,1)
m_sProfileNom = mySQLLitCol(1,2)
m_sMailProfile = mySQLLitCol(1,3)
m_sMdpProfile = mySQLLitCol(1,4)
m_sPhoneProfile = mySQLLitCol(1,5)

SINON
Info("Votre profile ne pas trouvé")
FIN

Suppr

Classe Modifier Profile

ModifierProfile est une Classe

hérite CnxDatabase

PUBLIC
m_sNom, m_sEmail, m_sMdp, m_sPhone sont des chaînes
m_nIdUser est un entier

m_sRequeteSQL est une chaîne

FIN

PROCÉDURE Constructeur(UpdateNom, UpdateEmail, UpdateMdp, UpdatePhone, IdUser)

SI UpdateNom = "" ET UpdateEmail = "" ET UpdateMdp = "" ET UpdatePhone = "" ALORS
// Renvoie un message
Info("Vos champs sont vide")
FIN

/////////////////////////////////////////////
//Initialisation ds paramètres du constructeur
////////////////////////////////////////////

//Suppression des caractères non autorisé dans le nom
m_sNom = SansCaractère(UpdateNom, "?!*$¤£^<>")

//Vérification si l'adresse mail est valide (Méthode Expression Régulière)

SI VérifieExpressionRégulière(UpdateEmail, "[-.a-z0-9]+[@][-.a-z0-9]+[.][a-z]{2,4}") = Vrai ALORS
m_sEmail = UpdateEmail
SINON
Info("Adresse mail invalide")
FIN

//Hasher le mot de passe ()
m_sMdp = Crypte(UpdateMdp, "MotDePasse")

//Si le numéro est numérique
SI PAS EstNumérique(UpdatePhone) ALORS
Info("Le numéro n'est pas numérique")
SINON
m_sPhone = UpdatePhone
FIN

m_nIdUser = IdUser

PROCÉDURE UpdateProfile()

m_sRequeteSQL = "UPDATE utilisateurs SET nom = '" + m_sNom + "', email = '" + m_sEmail + "', pass = '" + m_sMdp + "', phone = '" + m_sPhone + "' WHERE id = '" + m_nIdUser + "'"

SI OuiNon("Appliquer la modification ?") = Oui ALORS
mySQLExec(m_sRequeteSQL,1)
Info("Votre profile à été mise à jour")
FIN

Bouton Modifier

clUpdateUser est un ModifierProfile(SAI_Nom,SAI_Email,SAI_Mot_de_passe,SAI_Phone,SAI_Id_Utilisateur)
clUpdateUser.UpdateProfile()

Fenêtre Profile

PROCÉDURE MaFenêtre()

gclConnexionDB est une CnxDatabase

gclMonProfile est un Profile
gclMonProfile.MonProfileAffiche()

LIB_Utilisateur = gclMonProfile.m_sProfileNom
SAI_Id_Utilisateur = gclMonProfile.m_nIdProfile
SAI_Nom = gclMonProfile.m_sProfileNom
SAI_Email = gclMonProfile.m_sMailProfile
SAI_Mot_de_passe = gclMonProfile.m_sMdpProfile
SAI_Phone = gclMonProfile.m_sPhoneProfile

Classe Supprimer Compte

SupprimerCompte est une Classe

hérite CnxDatabase

PUBLIC
m_sRequeDelete est une chaîne

FIN

PROCÉDURE SupprimerCompte()

m_sRequeDelete = "DELETE FROM utilisateurs WHERE id = '" + Login.mg_sIdUser + "'"

SI OuiNon("Supprimer votre compte ?") = Oui ALORS
mySQLExec(m_sRequeDelete,1)

Info("Votre compte a bien été supprimer et vous serez redirigé ver la la connexion")

Ferme(FEN_Profile)
OuvreFenêtreMobile(FEN_Login)
FIN

Bouton Supprimer


clUseeSupprimeCompte est un SupprimerCompte
clUseeSupprimeCompte.SupprimerCompte()

Exécuter a présent l'application et tester



Réponses