Login Simple avec utilisation d'une Base de Donnee MySQL

1

Taggé

Statistiques

11,185 visites, 12,162 vues

Outils

Partager

License

This tutorial is licensed under CC BY 4.0. Please refer to the license text if you wish to reuse, share or remix the content contained within this tutorial.

Published on 21 Mar, 2014. Last updated 25 Feb, 2019

Tout d'abord je tient a préciser qu'avant de lire ce tutoriel vous êtes familiariser avec l'usage du MySQL ( c'est a dire que vous savez ce qu'est une Base de Donnée, vous connaissez PhPMyADMIN utiliser ou avez utiliser toute sorte de Gestionnaire de Base de Données et vous avez accès a l'une d'elle ) et que vous avez un Serveur Web installer Localement ou sur un hébergeur.

Nous allons crée une Table de BDD ( Base De Données ) qui contiendra les informations sur les membres.

Nous allons utiliser un Script coter serveur pour "parler" a la BDD, ici le PhP sera le langage le plus communément utiliser sur les systèmes Linux.

Nous utiliserons également le Plugin AJAX pour accéder au script coter serveur dans un esprit de GET request ( OBTENIR une/des données ).

Premièrement pour crée la table, vous devrez lancer un Gestionnaire de BDD ou MySQL tel que PhPMyADMIN.

    CREATE TABLE `mabdd`.`members` (
    `id` int( 11 ) NOT NULL AUTO_INCREMENT ,
    `username` varchar( 30 ) NOT NULL ,
    `email` varchar( 50 ) NOT NULL ,
    `password` varchar( 128 ) NOT NULL ,
    PRIMARY KEY ( `id` ) ,
    UNIQUE KEY `username` ( `username` )
    ) ENGINE = MYISAM DEFAULT CHARSET = utf8;

Maintenant nous avons la table qui stocke les informations sur nos membres. Noter que je n'utilise pas d'encodage pour rester dans la simplicité. Il est extrêmement recommander d'encoder le Mot de Passe ( MD5 par exemple ) si vous utiliser ceci a des fin de production ( entendre par la vente ... $$$ )

Maintenant ajoutons quelques données de connexions.

    INSERT INTO `members`(`username`, `email`, `password`) VALUES ('myuser','myemail@domain.com','mypassword')

Pour accéder a notre BDD nous utiliserons un script PhP intermédiaire que nous appellerons via le Plugin AJAX ainsi que pour protéger notre BDD.

Importer le script suivant et sauvegarder le en tant que login.php sur votre serveur web.

    <?php
    $username = $_GET['fname'];
    $password = $_GET['fpass'];
    $con=mysqli_connect("mysql","database_user","database_password","mydatabase");
    // Check connection
    if (mysqli_connect_errno())
      {
      echo "Failed to connect to MySQL: " . mysqli_connect_error();
      }
    $qz = "SELECT id FROM members where username='".$username."' and password='".$password."'" ; 
    $qz = str_replace("\'","",$qz); 
    $result = mysqli_query($con,$qz);
    while($row = mysqli_fetch_array($result))
      {
      echo $row['id'];
      }
    mysqli_close($con);
    ?>

A la troisième ligne se trouve les informations de connexions :

    [i]$con=mysqli_connect("mysql","database_user","database_password","mydatabase");[/i]

MySQL est habituellement "localhost" sur la plus part des serveurs.

Modifier autant que nécessaire pour être autoriser a vous connecter a votre BDD.

( En Local : le plus souvent User : Root, MdP : celui choisis a l’installation, MySQL ( Host ) : Localhost.

Sur le net via hébergeur, toutes les données vous seront donner via le mail d'inscription. )

Si vous rencontrer des problèmes pour accéder a votre web serveur depuis d'autre sites ajouter a la première ligne :

header('Access-Control-Allow-Origin: *');

La première ligne deviendra donc :

    <?php header('Access-Control-Allow-Origin: *');

Maintenant allons sur Construct2,

Nous devrons ajouter a votre projet 3 Global Variables ( Variables Globale = Valide tout le long de la connexion sur chaque Layout du projet. )

Username (text)

Password (text)

UserID (number)

Maintenant nous devrons ajouter a nos Layouts 2 plugins "Text Box"

appeler les Username et Password pour un référencement plus facile.

Ajoutons également un "button" pour utiliser l'event d'authentification.

Appeler ce bouton Login.

Maintenant pour accéder a ce script PhP nous utiliserons le plugin "AJAX" ajouter le également a votre projet.

Pour faire en sorte que l'utilisateur doive entrer quelque chose avant de cliquer sur Login nous référenceront le Bouton Login comme "Disable" au départ ( Faite sa depuis la section des attributs, après avoir cliquer sur "Login" a votre gauche ).

La première chose a faire est d'utiliser les boites de textes pour renseigner nos Variables Globales.

ie

event Username On text Changed

action System Set Username to Username.Text

Pour effectuer une simple vérification que l'utilisateur est bien renseigner 2 variables, nous pouvons ajouter un event qui vérifiera si aucun des deux est égal a rien.

Ajouter un event sous cette forme :

System Username = ""

or

System Password = ""

action

Set Login Disabled

Maintenant l'utilisateur ne pourra pas cliquer sur le bouton Login tant que les 2 variables ne seront pas renseigner.

Maintenant ajouter un "Else" event pour activer le Login Bouton ( Utiliser le clik droit pour sa ) :

event else

action Set Login Enabled

Maintenant nous avons besoin d'ajouter la Requête AJAX pour obtenir l'authentification du Login. Nous utiliseront le Bouton Login pour accomplir cela. Maintenant ajouter un Event pour le Login Bouton :

event Login On clicked

action AJAX Request Tag "Login" URL "http://mydomain.com/login.php?fname='"&Username&"'&fpass='"&Password&"'"

Changer le raccourci en fonction de celui qui mène a votre script PhP ( Login.php )

Maintenant nous avons besoin de récupérer les infos du login.

Ajouter un event comme suit :

event

AJAX on "Login" Completed

action

System Set UserID to AJAX.Lastdata

Maintenant nous avons besoin de le déclencher pour chaque requête et vérifier si la réponse et correcte puis nettoyer notre Layout :

event

System UserID>0

System Trigger Once

action

Login Destroy

Password Destroy

Username Destroy

Et nous avons maintenant le retour de UserID et sommes sure que l'utilisateur a était authentifier via notre BDD.

Votre Event Sheet devrais ressembler a quelque chose comme sa :

( PS : oOScuByOo : Voila la petite traduction de ce tuto que j'ai trouver vraiment très bien réaliser c'est pour quoi je me suis permit de le transcrire pour les plus anglophobes d'entre nous bien qu'il n'y ai rien de compliquer. Pour ma part ce tuto est très utile puisqu'il peut être utiliser a toutes les fin il s'agit vraiment des bases du fonctionnement, et grâce a cela on peut crée une instance pour récupérer d'autre données comme items, MOBS, XP, et j'en passe, personnellement je l'ai adapter a MyBB et c'est excellent, si j'ai un peu de temps j'ajouterais un tuto pour Crée une page d'inscription, puis comment envoyer et enregistrer des infos dans la BDD depuis Construct2 et bien sur des exemples de Tables pour crée sa Tables Items et autres ... J’espère qu'il vous sera utile autant qu'a moi. )

  • 0 Comments

Want to leave a comment? Login or Register an account!