Explorez la puissance de PHP et MySQL avec ce tutoriel qui vous guide tout au long de la création d’une authentification sur votre application Web.
PHP est un langage de script côté serveur open source qui peut être intégré au HTML pour créer des applications Web. Il est utilisé pour développer des applications Web dynamiques et connecter l’application à une base de données.

Dans ce guide, vous apprendrez à construire un système d’authentification à l’aide de bases de données PHP et MySQL. Nous attendons de vous que vous connaissiez les bases de PHP et MySQL avant de commencer.
Création de la Mise en page En utilisant HTML et Bulma CSS

Le front-end de ce projet est construit en HTML et en CSS Bulma. Bulma CSS est l’un des frameworks CSS populaires utilisés pour la conception de pages Web. Vous pouvez utiliser Bulma CSS en important le CSS minifié du CDN dans votre fichier PHP.

Sommaire

Intégration de la base de données MySQL

MySQL est un système de gestion de base de données SQL relationnelle utilisé pour effectuer des opérations CRUD sur les données. Cette application web utilisera phpMyAdmin pour gérer la base de données.

phpMyAdmin est un logiciel libre écrit en PHP, destiné à gérer l’administration de MySQL sur le web.

Vous pouvez installer phpMyAdmin en configurant un serveur WAMP sur votre machine Windows (ou XAMPP sous Linux) et visitez l’URL suivante

http://localhost/phpmyadmin

L’écran ressemblera à ceci:
Création de la base de données

Vous pouvez créer la base de données soit en utilisant des requêtes SQL, soit via l’interface graphique fournie par phpMyAdmin. Dans cette application, le nom de la base de données est auth et le nom de la table est également users. Les attributs de la table sont id, nom d’utilisateur, e-mail et mot de passe.

Voici comment créer la base de données et la table à l’aide de commandes SQL:

CRÉER UNE AUTHENTIFICATION DE BASE DE DONNÉES;
CRÉER des utilisateurs DE TABLE (
id int,
nom d’utilisateur varchar (255),
courriel varchar (255),
mot de passe varchar (500),
);

Connexion de l’Application à la base de données

Créez un fichier nommé db.php dans votre dossier de projet, où vous connecterez votre base de données et importerez ce fichier dans d’autres fichiers PHP pour l’utiliser.

La connexion est établie à l’aide de la méthode mysqli_connect(). Cette méthode accepte quatre arguments : le nom du serveur, l’utilisateur, le mot de passe et le nom de la base de données.

Vous pouvez utiliser la variableconnectionconnection lors de l’exécution de requêtes en important la base de données.fichier php dans d’autres fichiers PHP.

S’Inscrire En Utilisant PHP

La première phase de la construction d’un système d’authentification implique l’enregistrement ou l’inscription. La mise en page frontend de la page d’inscription a un formulaire avec une action qui effectue une demande de publication sur la page. Il comporte quatre champs de saisie: nom d’utilisateur, e-mail, mot de passe et confirmation du mot de passe.

Inscrivez-vous ici


usernusernameerrormsg »?>

S’inscrire

Vous avez déjà un compte ? Connexion

La méthode isset() vérifie si le bouton est cliqué ou non, car elle peut accéder au bouton Enregistrer en utilisant le superglobal $_POST[].

Avant tout cela, vous devez importer la base de données.fichier php dans le registre.fichier php. Il y a quelques variables déclarées pour la validation d’entrée. Consultez le code ci-dessous.

comprendre « ./DB.php « ;
$erreur = «  »;
emEMAILERRORMSG= » »;
$Usernameerrormsg= » »;
passPassworderrormsg = » »;
confirmConfirmpassworderrormsg= » »;

Validation des entrées sur la page du Registre

Avant de procéder à la validation d’entrée, vous devez accéder aux valeurs des éléments d’entrée en utilisant $_POST[].

La méthode mysqli_real_escape_string() permet de supprimer les caractères spéciaux de la chaîne car ils pourraient provoquer des actions malveillantes lors de l’exécution des opérations de requête.

usernameusername = mysqli_real_escape_string(connectionconnection,__POST[« nom d’utilisateur »]);
emailemail = mysqli_real_escape_string(connectionconnexion,__POST[« email »]);
passwordpassword = mysqli_real_escape_string(connectionconnection,__POST[« mot de passe »]);
confirmConfirmpassword = mysqli_real_escape_string(connectionconnection,__POST[« confirmer-mot de passe »]);
si (usernameusername == «  ») {
usernUsernameerrormsg = »Veuillez saisir votre nom d’utilisateur »;
}
si (emailemail == «  ») {
emEMAILERRORMSG= »Veuillez entrer l’e-mail »;
} sinon si (!filter_var(emailemail, FILTER_VALIDATE_EMAIL)) {
emEMAILERRORMSG= »Veuillez entrer un e-mail valide »;
}
si (passwordpassword == «  ») {
passPassworderrormsg = « Entrez votre mot de passe »;
}
si (confirmConfirmpassword == «  ») {
confirmConfirmpassworderrormsg = « Entrez le mot de passe de confirmation »;

}
si (strlen(passwordmot de passe) <6) {
passPassworderrormsg = « Entrez un mot de passe supérieur à 6 caractères »;
} sinon si (passwordmot de passe!=confirmMot de passe de confirmation) {
confirmConfirmpassworderrormsg = « Le mot de passe et le champ de confirmation du mot de passe doivent être identiques »;
}

Tout d’abord, vous vérifiez si les champs sont vides ou non. Pour le champ de saisie d’e-mail, vous devez vérifier si l’utilisateur a entré un e-mail valide ou s’il n’utilise pas la méthode filter_var(). La longueur du champ de mot de passe doit être supérieure à 6. Ce sont les validations de base dont vous devez vous occuper lors de la création de toute application.

S’il n’y a pas d’erreur, vous pouvez continuer à exécuter des commandes de requête sur le registre.fichier php.

si vous avez besoin d’un mot de passe, vous pouvez le faire en utilisant un mot de passe.
queryquery = »SÉLECTIONNEZ * DE l’authentification OÙ email = ’emailemail' »;
findFinduser = mysqli_query(connectionconnexion,queryrequête);
resulResultantuser = mysqli_fetch_assoc(findFinduser);

si (resulResultantuser) {
errorerror = « L’utilisateur existe déjà »;
}
passwordpassword= md5 (passwordpassword);
INSERTquery = »INSÉRER DANS LES VALEURS D’authentification (nom d’utilisateur, e-mail, mot de passe) (‘usernameusername’, ’emailemail’, ‘passwordpassword’) »;
inserInsertuser = mysqli_query(connectionconnexion,queryrequête);

$_SESSION[‘nom d’utilisateur’] =usernamenom d’utilisateur;
ESSION_SESSION [’email’] =emailemail;
en-tête (« emplacement: accueil.php »);
}

Vous devez exécuter une requête qui vérifie si l’e-mail existe déjà dans la base de données ou non. La méthode mysqli_query() est utilisée pour effectuer toutes les opérations de requête. Vous devez passer le résultat de la requête dans la méthode mysqli_query_assoc(). Cette méthode convertit le résultat en un tableau associatif de chaînes.

Si l’utilisateur existe déjà, vous devez afficher une erreur avec le message : L’utilisateur existe déjà. Sinon, vous devez insérer les champs dans la base de données. Comme ce n’est pas une bonne pratique de stocker des chaînes de mots de passe en texte brut, la méthode md5() convertira le mot de passe en hachage, puis l’enregistrera.

Une fois l’utilisateur stocké dans la base de données, vous devez charger le nom d’utilisateur ou l’e-mail dans le superglobal $_SESSION[] et rediriger l’utilisateur vers la page d’accueil.

Un regard sur l’écran d’accueil

L’utilisateur ne peut accéder à la page d’accueil que s’il est connecté. Sur la page d’accueil, vous devez vérifier si la SESSION existe ou non. S’il n’y a pas de SESSION définie, vous devez rediriger l’utilisateur vers la page de connexion.
Connexion En utilisant PHP

Dans cette application, l’utilisateur se connectera à l’aide d’un e-mail et d’un mot de passe. La mise en page HTML pour la connexion.php:

Connectez-vous ici

error erreur »?>
ConnexionVous n’avez pas de compte ? Inscrivez-vous ici

Authentification de l’Utilisateur

Vous devez valider les entrées de la même manière que lors de l’enregistrement de l’utilisateur.

emailemail = mysqli_real_escape_string(connectionconnexion,__POST[« email »]);
passwordpassword = mysqli_real_escape_string(connectionconnection,__POST[« mot de passe »]);
si (emailemail == «  ») {
emEMAILERRORMSG= »Veuillez entrer l’e-mail »;
} sinon si (!filter_var(emailemail, FILTER_VALIDATE_EMAIL)) {
emEMAILERRORMSG= »Veuillez entrer un e-mail valide »;
}
si (passwordpassword == «  ») {
passPassworderrormsg = « Entrez votre mot de passe »;
}

Une fois qu’il n’y a pas d’erreurs de validation, les valeurs des champs de saisie s’exécuteront dans la requête SQL. Pour obtenir la valeur hachée du mot de passe, passez le mot de passe dans la méthode md5().

si vous avez un mot de passe, vous pouvez le faire.
passwordpassword= md5 (passwordpassword);
queryquery= »SÉLECTIONNEZ * PARMI les utilisateurs OÙ email= ’emailemail’ ET password=’passwordpassword' »;