Créée le, 19/06/2015

 Mise à jour le, 19/05/2019

Visiteurs N°  




Accueil
Nouveau Blog Nouveautés Moteur de Recherche Votre Caddie Pour Vos Achats Votre Espace Membre Vos Signets et Vos Jeux Préférés Page de Bienvenue Statique Site en Français Site en Anglais
Sommaires
Électronique Fondamentale Technologie Fondamentale Testez vos Connaissances Électronique Théorique Digitale Électronique Pratique Digitale Lexique Électronique Numérique Data book TTL Data book CMOS Dépannage TVC Mathématique
Micro-ordinateurs
Théorique des Micro-ordinateurs Testez vos Connaissances Pratique des Micro-ordinateurs Glossaires sur les Ordinateurs
Physique
La lumière Champ d'action Rayonnement Électromagnétique
Technologies
Classification des Résistances Identification des Résistances Classification des Condensateurs Identification des Condensateurs
Formulaires Mathématiques
Géométrie Physique 1. - Électronique 1. 2. - Électronique 1. 3. - Électrotechnique 1. 4. - Électromagnétisme
Accès à tous nos Produits
E. T. F. - Tome I - 257 Pages E. T. F. - Tome II - 451 Pages E. T. F. - Tome III - 611 Pages E. T. D. - Tome I - 610 Pages N. B. M. - Tome I - 201 Pages E. T. M. - Tome I - 554 Pages Business à Domicile Ouvrages 34 pages gratuits Nos E-books Logiciel Géométrie Logiciel Composants Électroniques
Aperçu de tous nos Produits
E. T. F. - Tome I - 257 Pages E. T. F. - Tome II - 451 Pages E. T. F. - Tome III - 611 Pages E. T. D. - Tome I - 610 Pages E. T. M. - Tome I - 554 Pages Logiciel Géométrie Logiciel Composants Électroniques
Nos Leçons aux Formats PDF
Électronique Fondamentale Technologie Fondamentale Électronique Théorique Digitale Électronique Pratique Digitale Théorique des Micro-ordinateurs Mathématiques
Informatique
Dépannage Win98 et WinXP et autres Dépannage PC Glossaire HTML et Programmes PHP et Programmes JavaScript (en cours de travaux) Création de plusieurs Sites
Forums
Forum Électronique et Infos Forum Électronique et Poésie
Divers et autres
Formulaire des pages perso News XML Statistiques CountUs Éditeur JavaScript Nos Partenaires et nos Liens Utiles Gestionnaire de Partenariat Nos Partenaires MyCircle Sondages 1er Livre d'Or 2ème livre d'Or

Signets :
  Leçons suivantes        Leçons précédentes     Bas de page
  Cliquez ici pour la leçon suivante ou dans le sommaire prévu à cet effet


Authentifier les Utilisateurs et personnaliser le site (2ème partie) :



Implémentation de base du site :


La première page que nous allons construire sera appelée login.php ou connexion.php, puisqu'elle permet aux utilisateurs de se logger sur le système via connexion.php ou login.php. Les codes de cette page sont identiques est présenté dans le Listing 3.


Listing 3. - connexion.php ou login.php - La page d'accueil de PHP "Bookmarks" :


Nous devons reconnaître que le code n'est pas très simple, puisqu'il se contente essentiellement d'appeler certaines fonctions que vous devriez comprendre pour cette application, si vous aviez bien suivi nos leçons précédentes. Mais cependant, nous reviendrons sur les détails d'implémentation de ces fonctions, mais néanmoins, vous devez faire l'effort de comprendre le fonctionnement de connexion.php ou du login.php. Nous pouvons constater que nous incluons un fichier (contenant certaines fonctions), et que nous appelons certaines fonctions pour créer un en-tête HTML, afficher un contenu, et créer un code HTML de bas de page que nous verrons pas la suite de nos leçons.

La sortie de ce script est présentée à la figure 4.


Page_Accueil_de_Connexion.png


Toutes les fonctions du système se trouvent dans le fichier bookmark_fns.php présenté dans le Listing 4.


Listing 4. - bookmark_fns.php - Le fichier à inclure contenant les fonctions de l'application de PHP "Bookmarks" :


Comme vous pouvez le constater, ce fichier se contente d'inclure cinq autres fichiers que nous utiliserons dans cette application. Nous avons choisi cette structure puisque ces fonctions peuvent être classées en cinq groupes logiques. Certains de ces groupes pourront être réutilisés dans d'autres projets, c'est pourquoi que nous avons choisi de placer chaque groupe de fonctions dans un fichier séparé, que nous pourrons réutiliser lorsque nous en aurons besoin. Nous les avons réunis dans le fichier bookmark_fns.php, puisque la plupart de ces fonctions sont utilisées dans la plupart de nos scripts. Il est plus simple d'inclure un seul fichier dans chaque script que d'inclure uniquement les fichiers nécessaires.

Vous remarquerez que la fonction require_once() n'existe qu'à partir de la version 4 de PHP. Si vous vous servez d'une version antérieure, vous devez utiliser require_once() ou include_once() pour vous assurer que ce fichier n'est pas chargé plusieurs fois.

Dans ce cas particulier, nous utilisons des fonctions du fichier output_fns.php. Il s'agit de fonctions relativement simples, qui génèrent du code HTML brut. Ce fichier inclut les quatre fonctions dont nous nous sommes servi, c'est-à-dire do_html_header(), display_site_info(), display_login_form et do_html_footer(), entre autres.

Nous n'étudierons pas toutes ces fonctions en détail, mais nous allons cependant nous intéresser à l'une d'entre elles, à titre d'exemple. Le code de do_html_header() se trouve dans le Listing 5. A noter que nous mettrons les quatre autres fonctions et bien plus encore, se trouvant dans le même fichier output_fns.php.


Listing 5. - La fonction do_html_header() de output_fns.php - Cette fonction renvoie l'en-tête standard qui apparaîtra sur chaque page de l'application :


Comme vous pouvez le constater, cette fonction se contente d'ajouter le titre et l'en-tête appropriés dans la page. Les autres fonctions dont nous nous sommes servi dans login.php ou connexion.php sont similaires. La fonction display_site_info() ajoute un texte général sur le site. display_login_form() affiche le formulaire de la figure 4 ci-dessus, et do_html_footer() ajoute le code HTML de bas de page standard.

En examinant la figure 4, vous pouvez constater que celle-ci contient deux options : l'utilisateur peut s'enregistrer, ouvrir une session s'il s'est déjà enregistré ou réinitialiser son mot de passe s'il l'a oublié via un autre module que l'on verra au cours de nos leçons. Pour implémenter ces modules, nous devons passer à la section suivante, consacrée à l'authentification des utilisateurs.

Implémentation de l'authentification des utilisateurs :

Le module d'authentification des utilisateurs contient quatre éléments principaux : l'enregistrement des utilisateurs, l'ouverture et la fermeture des sessions, la modification des mots de passe, et leur réinitialisation. Nous allons maintenant nous intéresser à chacun de ces éléments.

Enregistrement :

Pour enregistrer un utilisateur, celui-ci doit saisir dans un formulaire ses détails personnels, et nous devons l'ajouter dans la base de données.

Lorsqu'un utilisateur clique sur le lien "Veuillez vous inscrire à votre espace Membre" de la page index.php, il arrive sur un formulaire d'enregistrement créé par sign_up.php. Ce script est présenté dans le Listing 6.


Listing 6. - Le fichier sign_up.php - Ce formulaire et script permet aux utilisateurs de s'enregistrer sur le site de PHP Bookmarks :


Une fois encore, vous pouvez constater que le script de cette page n'est pas très simple, mais, il n'en est rien. En fait, il suffit de faire sa structure complète sur une feuille de papier et de bien réfléchir. Par ailleurs, elle se contente de tester un certain nombre de conditions. La figure 5 représente le résultat de ce script.


Formulaire_Enregistrement_de_Bookmarks.png


Il s'agit du premier script un peu complexe de cette application.

Ce script commence par inclure les fichiers de fonctions de l'application, avant d'ouvrir une session. Lorsque l'utilisateur est enregistré, nous nous servons de son nom d'utilisateur comme variable de session, comme nous l'avons fait dans une des leçons précédentes.

Ensuite, nous validons des données d'entrée saisies par l'utilisateur. Nous devons tester un certain nombre de conditions :

  • Vérifier que le formulaire est rempli correctement. Pour cela, nous appelons la fonction isset() :

    if(isset($_POST['username'], $_POST['password'], $_POST['passverif'], $_POST['email'], $_POST['avatar']) and $_POST['username']!='')

  • Vérifier également qu'il n'y a pas d'espaces blanc avant et après les mots, concernant la base de données qui est très importante à nos yeux :

    $username = trim("$username") ; // Supprime les espaces (ou d'autres caractères) en début et fin de chaîne

    $password = trim("$password") ;

    $email = trim("$email") ;

    $avatar = trim("$avatar");

  • Vérifier que l'adresse E-Mail fournie est valide à l'aide de la fonction preg_match() :

    if(preg_match('#^(([a-z0-9!\#$%&\\\'*+/=?^_`{|}~-]+\.?)*[a-z0-9!\#$%&\\\'*+/=?^_`{|}~-]+)@(([a-z0-9-_]+\.?)*[a-z0-9-_]+)\.[a-z]{2,}$#i',$_POST['email']))

Concernant les messages d'erreurs ou d'avertissement pour les utilisateurs, voir le Listing 6 du fichier sign_up.php.

  • Vérifier que les deux mots de passe saisis par l'utilisateur sont les mêmes :

    if($_POST['password'] == $_POST['passverif'])

Idem pour les messages d'erreurs, voir le Listing 6.

  • Vérifier que la longueur du mot de passe est appropriée :

    if(strlen($_POST['password']) >= 6)

Idem pour les messages d'erreurs, voir le Listing 6.

  • Vérifier également qu'il n'y a pas d'autres utilisateurs inscris avec le même Nom ou avec le même Pseudo :

    $dn = mysql_num_rows(mysql_query('SELECT id FROM membre_utilisateurs WHERE Nom_Utilisateur="' . $username.'"'));

    if($dn==0)

Idem pour les messages d'erreurs, voir le Listing 6.

Dans cette application, le mot de passe doit contenir au moins six caractères pour qu'il soit suffisamment difficile à deviner, et moins de 15 caractères via l'instruction maxlength = "15" pour les champs, pour tenir dans notre base de données.

Après avoir validé les données d'entrée, nous pouvons enregistrer l'utilisateur. Si vous revenez au Listing 6, vous verrez que nous le faisons de la manière suivante :

    <DIV CLASS = "message">Vous avez bien été inscrit. Vous pouvez dorénavant vous connecter.<BR /> <BR />

    <a href="connexion.php">Se connecter</a></div>

Comme vous pouvez le constater, nous appelons la variable $message. Si cette variable ne renvoie aucune erreur, nous enregistrons le nom d'utilisateur dans une variable de session, et nous affichons un lien vers la page principale des membres. C'est ce que montre la figure 6.

    if(isset($message)) //On affiche un message s'il y a lieu

    {

    echo '<DIV CLASS = "message">'.$message.'</DIV>' ;

    }


Enregistrement_Reussi_pour_se_Connecter.png


La variable $dn vérifie s'il n'y a pas déjà un utilisateur inscrit dans notre base de données.

    //On vérifie s'il n'y a pas déjà un utilisateur inscrit avec le Pseudo choisi

    $dn = mysql_num_rows(mysql_query('SELECT id FROM membre_utilisateurs WHERE Nom_Utilisateur="' . $username.'"'));

    if($dn == 0)

    {

    //On récupère le nombre d'utilisateurs pour donner un identifiant à l'utilisateur actuel

    $dn2 = mysql_num_rows(mysql_query('SELECT id FROM membre_utilisateurs'));

    $id = $dn2 + 1;

    //On enregistre les informations dans la base de donnée

    if(mysql_query('INSERT INTO membre_utilisateurs(id, Nom_Utilisateur, Mot_de_Passe, E_Mail, Avatar, Signature_Date) values ('.$id.', "'.$username.'", "'.$password.'", "'.$email.'", "'.$avatar.'", "'.time().'")'))

    {

    //Si cela a fonctionné, on n'affiche pas le formulaire

    $form = false ;

Pour la fermeture des accolades, voir le Listing 6.

Si le nom d'utilisateur spécifié est déjà pris, ou si la base de données ne peut pas être mise à jour, cette fonction renvoie false. Dans le cas contraire, elle met à jour la base de données et renvoie true.

Nous pouvons cependant remarquer que nous effectuons la connexion à la base de données avec une fonction que nous avons écrite, db_connect(). Cette fonction se contente de fournir un emplacement contenant un nom d'utilisateur et un mot de passe permettant de se connecter à la base de données sans oublier le fichier de la config.php de l'espace membre.

Si le mot de passe de la base de données doit être modifié, il suffit de le changer dans deux fichiers de notre application ainsi que les quatre autres que nous allons évoquer ci-après :.

Les fichiers à mettre à jour pour la connexion de la base de données se trouvent ci-après (uniquement pour les serveurs à distant) :

- ADD_BMS.php

- CONFIG.php

- DB_FNS.php

- MEMBER.php

- REGISTER_NEW.php

- USER_AUTH_FNS.php

Le Listing 7 du fichier db_fns.php contient le code (db_connect() ) de cette fonction pour se connecter à la base de données.


Listing 7. - La fonction db_connect() de db_fns.php - Cette fonction établit la connexion à la base de données MySQL. :


Lorsque des utilisateurs sont enregistrés, ils peuvent ouvrir une session et la refermer, en utilisant les pages classiques connexion.php et logout.php. Nous allons maintenant nous intéresser à la construction de ces pages mais avant, nous mettons le fichier config.php presque identique à db_fns.php. (à peu de chose près)


Listing 8. - Le fichier de la config.php - Ce fichier établit également la connexion à la base de données MySQL. :

Nous terminons ainsi ce deuxième chapitre de cette leçon, et nous verrons dans le prochain, L'implémentation d'ouverture et fermeture de session, modifier et réinitialiser les mots de passe. etc.



  Cliquez ici pour la leçon suivante ou dans le sommaire prévu à cet effet.   Haut de page
  Page précédente   Page suivante







Nombre de pages vues, à partir de cette date : le 23 MAI 2019

compteur de visite

    




Envoyez un courrier électronique à Administrateur Web Société pour toute question ou remarque concernant ce site Web. 

Version du site : 10. 5. 14 - Site optimisation 1280 x 1024 pixels - Faculté de Nanterre - Dernière modification : 19 MAI 2019.   

Ce site Web a été Créé le, 14 Mars 1999 et ayant Rénové, en MAI 2019.