Adhésion d'utilisateur avec PHP

Un tutoriel pour les débutants! Peu importe où vous allez sur Internet, il existe un aliment de base que vous trouvez presque partout: l'enregistrement d'utilisateur. Que vous ayez besoin que vos utilisateurs s'inscrivent pour la sécurité ou pour une fonctionnalité supplémentaire, il n'y a aucune raison de ne pas le faire avec ce simple tutoriel. Dans ce tutoriel, nous allons passer en revue les bases de la gestion des utilisateurs, pour aboutir à un simple espace membre que vous pouvez implémenter sur votre propre site web..

Si vous avez besoin d’aide supplémentaire ou souhaitez obtenir un raccourci, consultez la liste des fournisseurs de services PHP sur Envato Studio. Ces développeurs expérimentés peuvent vous aider, que ce soit pour résoudre rapidement un bogue ou pour développer une application complète à partir de rien. Il suffit donc de parcourir les fournisseurs, lire les commentaires et les évaluations et choisir celui qui vous convient.

introduction

Dans ce didacticiel, nous allons décrire chaque étape de la création d’un système de gestion d’utilisateurs, ainsi que d’un système de messagerie privée entre utilisateurs. Nous allons faire cela en utilisant PHP, avec une base de données MySQL pour stocker toutes les informations sur les utilisateurs. Ce tutoriel est destiné aux débutants absolus de PHP. Aucune connaissance préalable n'est donc requise. En fait, vous risquez de vous ennuyer un peu si vous êtes un utilisateur expérimenté de PHP.!

Ce tutoriel est conçu comme une introduction de base aux sessions et à l'utilisation de bases de données en PHP. Bien que le résultat final de ce didacticiel ne vous semble pas immédiatement utile, les compétences que vous acquérez grâce à ce didacticiel vous permettront de créer votre propre système d'adhésion. convenant à vos propres besoins.

Avant de commencer ce didacticiel, assurez-vous de disposer des informations suivantes:

  • Nom d'hôte de la base de données - Il s'agit du serveur sur lequel votre base de données est hébergée. Dans la plupart des cas, il s'agit simplement de "localhost".
  • Nom de la base de données, Nom d'utilisateur de la base de données, Mot de passe de la base de données - Avant de commencer ce tutoriel, vous devez créer une base de données MySQL si vous en avez la possibilité ou si vous avez les informations nécessaires pour vous connecter à une base de données existante. Cette information est nécessaire tout au long du tutoriel.

Si vous ne disposez pas de ces informations, votre fournisseur d'hébergement devrait pouvoir vous les fournir..

Maintenant que les formalités sont terminées, commençons le didacticiel.!

Étape 1 - Configuration initiale

Mise en place de la base de données

Comme indiqué dans l'introduction, vous avez besoin d'une base de données pour continuer au-delà de cette étape du didacticiel. Pour commencer, nous allons créer une table dans cette base de données pour stocker nos informations utilisateur..

La table dont nous avons besoin stockera nos informations d'utilisateur; Pour nos besoins, nous utiliserons un tableau simple, mais il serait facile de stocker plus d'informations dans des colonnes supplémentaires si c'est ce dont vous avez besoin. Dans notre système, nous avons besoin des quatre colonnes suivantes:

  • Identifiant d'utilisateur (Clé primaire)
  • Nom d'utilisateur
  • Mot de passe
  • Adresse électronique

En termes de base de données, un Clé primaire est le champ qui identifie de manière unique la ligne. Dans ce cas, Identifiant d'utilisateur sera notre clé primaire. Comme nous voulons que cela s'incrémente chaque fois qu'un utilisateur s'enregistre, nous allons utiliser l'option spéciale MySQL - incrémentation automatique.

La requête SQL pour créer notre table est incluse ci-dessous et sera généralement exécutée dans l'onglet "SQL" de phpMyAdmin..

CREATE TABLE 'users' ('UserID' INT (25) NON NUL AUTO_INCREMENT PRIMARY KEY, 'Nom d'utilisateur' VARCHAR (65) NON NULL, 'Mot de passe' VARCHAR (32) NON NULL, 'EmailAddress' VARCHAR (255) NON NULL);

Création d'un fichier de base

Afin de simplifier la création de notre projet, nous allons créer un fichier de base que nous pourrons inclure dans chacun des fichiers que nous créons. Ce fichier contiendra les informations de connexion à la base de données, ainsi que certaines variables de configuration qui nous aideront tout au long du processus..

Commencez par créer un nouveau fichier: base.php, et entrez le code suivant:

Jetons un coup d'oeil à quelques-unes de ces lignes allons-nous? Quelques fonctions que nous avons utilisées et que nous n’avons pas encore expliquées, voyons-les rapidement et donnons-leur un sens - si vous comprenez déjà les bases de PHP, vous voudrez peut-être ignorer cette explication.

session_start ();

Cette fonction démarre une session pour le nouvel utilisateur. Plus tard dans ce tutoriel, nous stockerons les informations dans cette session pour nous permettre de reconnaître les utilisateurs déjà connectés. Si une session a déjà été créée, cette fonction le reconnaîtra et cette session à la page suivante.

mysql_connect ($ dbhost, $ dbuser, $ dbpass) ou die ("Erreur MySQL:". mysql_error ()); mysql_select_db ($ dbname) ou die ("Erreur MySQL:". mysql_error ());

Chacune de ces fonctions exécute une tâche distincte mais liée. le mysql_connect fonction connecte notre script au serveur de base de données en utilisant les informations que nous avons données ci-dessus, et le mysql_select_db fonction choisit ensuite la base de données à utiliser avec le script. Si l’une ou l’autre des fonctions ne s’achève pas, le mourir La fonction intervient automatiquement et arrête le traitement du script - en laissant à tous les utilisateurs le message d'une erreur MySQL..

Étape 2 - Retour au front

Que devons-nous faire en premier?

L'élément le plus important de notre page est la première ligne de PHP; cette ligne inclura le fichier que nous avons créé ci-dessus (base.php) et nous permettra essentiellement d'accéder à tout élément de ce fichier dans notre fichier actuel. Nous ferons cela avec la ligne suivante de code PHP. Créer un fichier nommé index.php, et placez ce code en haut.

Commencer la page HTML

La première chose que nous allons faire pour notre interface est de créer une page dans laquelle les utilisateurs peuvent entrer leurs informations de connexion, ou s’ils sont déjà connectés dans une page où ils peuvent choisir ce qu’ils souhaitent faire. Dans ce tutoriel, je suppose que les utilisateurs ont des connaissances de base sur le fonctionnement de HTML / CSS et ne vont donc pas expliquer ce code en détail. pour le moment, ces éléments ne seront pas nommés, mais nous pourrons le changer plus tard lorsque nous créerons notre feuille de style CSS.

En utilisant le fichier que nous venons de créer (index.php), entrez le code HTML suivant sous la ligne PHP que nous avons déjà créée.

    Système de gestion des utilisateurs (Tom Cameron for NetTuts)    

Que leur montrerons-nous??

Avant de sortir le reste de la page, nous avons quelques questions à nous poser:

  1. L'utilisateur est-il déjà connecté??
  • Oui - nous devons leur montrer une page avec des options pour qu'ils puissent choisir.
  • Non - nous continuons sur la question suivante.
  • L'utilisateur a-t-il déjà soumis ses informations de connexion??
    • Oui - nous devons vérifier leurs coordonnées, et si correct nous les enregistrerons sur le site.
    • Non - nous continuons sur la question suivante.
  • Si les deux réponses ci-dessus ont été répondues Non, nous pouvons maintenant supposer que nous devons afficher un formulaire de connexion à l'utilisateur.
  • Ces questions sont en fait les mêmes questions que nous allons implémenter dans notre code PHP. Nous allons le faire sous forme de si des déclarations. Sans rien entrer dans vos nouveaux fichiers, jetons un coup d'œil à la logique que nous allons utiliser en premier.

    Cela semble déroutant, n'est-ce pas? Séparons-le en petites sections et examinons-les un à un..

    if (! empty ($ _SESSION ['LoggedIn']) &&! empty ($ _SESSION ['Nom d'utilisateur']])) // permet à l'utilisateur d'accéder à la page principale

    Lorsqu'un utilisateur se connecte à notre site Web, nous allons stocker ses informations dans une session. À tout moment par la suite, nous pourrons accéder à ces informations dans un tableau PHP spécial. - $ _SESSION. Nous utilisons le vide fonction pour vérifier si la variable est vide, avec l'opérateur ! devant elle. Par conséquent, nous disons:

    Si la variable $ _SESSION ['LoggedIn'] n'est pas vide et que $ _SESSION ['Nom d'utilisateur'] n'est pas vide, exécutez ce morceau de code.

    La ligne suivante fonctionne de la même manière, mais cette fois en utilisant le $ _POST tableau global. Ce tableau contient toutes les données envoyées à partir du formulaire de connexion que nous allons créer plus tard dans ce tutoriel. La dernière ligne ne sera exécutée que si aucune des déclarations précédentes n'est satisfaite; dans ce cas, nous afficherons à l'utilisateur un formulaire de connexion.

    Alors, maintenant que nous comprenons la logique, introduisons du contenu entre ces sections. Dans ton index.php fichier, entrez ci-dessous ce que vous avez déjà.

     

    Espace membre

    et votre adresse e-mail est .

    Succès"; écho "

    Nous vous redirigeons maintenant vers l'espace membre.

    "; écho ""; else echo"

    Erreur

    "; écho "

    Désolé, votre compte n'a pas pu être trouvé. Veuillez cliquer ici pour réessayer.

    "; else ?>

    Identifiant

    Merci de votre visite! Veuillez vous connecter ci-dessous ou cliquer ici pour vous inscrire.



    Espérons que les premier et dernier blocs de code ne vous embrouilleront pas trop. Ce dont nous avons vraiment besoin d’être coincés maintenant, c’est ce que vous avez tous décrit dans ce tutoriel - le code PHP. Nous allons maintenant parcourir la deuxième section, une ligne à la fois, et je vais expliquer à quoi chaque code est destiné ici..

     $ username = mysql_real_escape_string ($ _ POST ['username']); $ password = md5 (mysql_real_escape_string ($ _ POST ['password']));

    Deux fonctions doivent être expliquées pour cela. d'abord, mysql_real_escape_string - une fonction très utile pour nettoyer les entrées de base de données. Ce n'est pas une mesure de sécurité, mais cela empêchera la majorité des pirates informatiques malveillants de supprimer les parties indésirables de tout ce qui a été mis dans notre formulaire de connexion. Deuxièmement, md5. Il serait impossible d'entrer dans les détails ici, mais cette fonction crypte simplement ce qui lui est transmis - dans ce cas, le mot de passe de l'utilisateur - pour empêcher les regards indiscrets de le lire..

     $ checklogin = mysql_query ("SELECT * FROM utilisateurs WHERE Username = '". $ username. "' AND Password = '". $ password. "'"); if (mysql_num_rows ($ checklogin) == 1) $ row = mysql_fetch_array ($ checklogin); $ email = $ row ['EmailAddress']; $ _SESSION ['Nom d'utilisateur'] = $ Nom d'utilisateur; $ _SESSION ['EmailAddress'] = $ email; $ _SESSION ['LoggedIn'] = 1;

    Ici nous avons le noyau de notre code de connexion; tout d'abord, nous exécutons une requête sur notre base de données. Dans cette requête, nous recherchons tout ce qui concerne un membre, dont le nom d'utilisateur et le mot de passe correspondent aux valeurs de notre $ nom d'utilisateur et $ mot de passe que l'utilisateur a fourni. Sur la ligne suivante, nous avons une instruction if, dans laquelle nous vérifions le nombre de résultats que nous avons reçus. S'il n'y a pas de résultats, cette section ne sera pas traitée. Mais s'il y a un résultat, nous savons que l'utilisateur existe, et nous allons donc les connecter.

    Les deux lignes suivantes consistent à obtenir l'adresse électronique de l'utilisateur. Nous disposons déjà de ces informations à partir de la requête que nous avons déjà exécutée afin de pouvoir facilement accéder à ces informations. Tout d'abord, nous obtenons un tableau des données extraites de la base de données - dans ce cas, nous utilisons la fonction PHP mysql_fetch_array. J'ai ensuite attribué la valeur du Adresse électronique champ à une variable pour que nous l'utilisions plus tard.

    Maintenant nous définissons la session. Nous enregistrons le nom d'utilisateur et l'adresse électronique de l'utilisateur dans la session, ainsi qu'une valeur spéciale pour nous permettre de savoir qu'ils ont été connectés à l'aide de ce formulaire. Une fois que tout cela est dit et fait, ils seront ensuite redirigés vers la zone membre en utilisant le META REFRESH dans le code..

    Alors, à quoi ressemble actuellement notre projet pour un utilisateur?

    Génial! Il est temps de passer à autre chose maintenant, de faire en sorte que les gens puissent accéder à votre site..

    Laissez les gens s'inscrire

    C'est très bien d'avoir un formulaire de connexion sur votre site, mais nous devons maintenant permettre à l'utilisateur de l'utiliser - nous devons créer un formulaire de connexion. Faire un fichier appelé register.php et y mettre le code suivant.

        Système de gestion des utilisateurs (Tom Cameron for NetTuts)    
    Erreur"; écho "

    Désolé, ce nom d'utilisateur est pris. S'il vous plaît revenir en arrière et essayez à nouveau.

    "; else $ registerquery = mysql_query (" INSERT INTO utilisateurs (nom d'utilisateur, mot de passe, EmailAddress)) VALEURS ('". $ nom d'utilisateur."', "" $ mot de passe. "," ". $ email." ') "); if ($ registerquery) echo"

    Succès

    "; écho "

    Votre compte a été créé avec succès. S'il vous plaît cliquez ici pour vous connecter.

    "; else echo"

    Erreur

    "; écho "

    Désolé, votre inscription a échoué. S'il vous plaît revenir en arrière et essayez à nouveau.

    "; else ?>

    registre

    Veuillez entrer vos coordonnées ci-dessous pour vous inscrire.




    Donc, il n’ya pas beaucoup de nouveaux PHP que nous n’avons pas encore appris dans cette section. Voyons si rapidement cette requête SQL et voyons si nous pouvons comprendre ce qu'elle fait..

    $ registerquery = mysql_query ("INSERT INTO utilisateurs (nom d'utilisateur, mot de passe, EmailAddress) VALUES ('". $ nom d'utilisateur. "'," ". mot de passe." ', "". $ email. "')");

    Nous ajoutons donc l’utilisateur à notre base de données. Cette fois, au lieu de récupérer des données, nous les insérons; Nous spécifions donc d'abord les colonnes dans lesquelles nous entrons les données (n'oubliez pas, notre ID utilisateur augmentera automatiquement). dans le VALEURS() zone, nous disons quoi mettre dans chaque colonne; dans ce cas, nos variables issues de la saisie de l'utilisateur. Alors, essayons! une fois que vous avez créé un compte sur votre tout nouveau formulaire d'inscription, voici ce que vous verrez pour l'espace membres.

    Assurez-vous qu'ils peuvent se déconnecter

    Nous sommes presque à la fin de cette section, mais nous avons encore besoin de quelque chose avant de terminer: un moyen pour les utilisateurs de se déconnecter de leurs comptes. C'est très facile à faire (heureusement pour nous); créer un nouveau fichier nommé logout.php et entrez ce qui suit.

     

    En cela, nous réinitialisons d’abord notre $ _SESSION tableau, puis nous détruisons la session entièrement.

    Et c'est la fin de cette section, et la fin du code PHP. Passons maintenant à notre dernière section.

    Étape 3 - Obtenez un style

    Je ne vais pas expliquer beaucoup de choses dans cette section. Si vous ne comprenez pas le langage HTML / CSS, je vous le recommande vivement pour les nombreux excellents tutoriels de ce site Web. Créer un nouveau fichier nommé style.css et entrez ce qui suit dedans; cela va coiffer toutes les pages que nous avons créées jusqu'à présent.

    * marge: 0; rembourrage: 0;  body font-family: Trebuchet MS;  a color: # 000;  a: survol, a: actif, a: visité text-decoration: none;  #main width: 780px; marge: 0 auto; marge supérieure: 50 px; rembourrage: 10px; bordure: 1px solide #CCC; couleur de fond: #EEE;  formulaire fieldset border: 0;  Form FieldSet p br clear: left;  label margin-top: 5px; bloc de visualisation; largeur: 100px; rembourrage: 0; float: gauche;  input font-family: Trebuchet MS; bordure: 1px solide #CCC; marge inférieure: 5px; couleur de fond: #FFF; rembourrage: 2px;  entrée: survol border: 1px solid # 222; couleur de fond: #EEE; 

    Voyons maintenant quelques captures d'écran de ce à quoi notre projet final devrait ressembler:

    Le formulaire de connexion.

    L'espace membre.

    Le formulaire d'inscription.

    Et enfin…

    Et c'est tout! Vous avez maintenant une zone membres que vous pouvez utiliser sur votre site. Je peux voir beaucoup de gens secouer la tête et crier à leurs moniteurs que cela ne leur sert à rien - vous avez raison. Mais ce que j'espère que tous les débutants en PHP auront appris, ce sont les bases de l'utilisation d'une base de données et de l'utilisation de sessions pour stocker des informations. Les compétences essentielles pour créer une application Web.

    • Abonnez-vous au flux RSS NETTUTS pour plus de commentaires et d'articles sur le développement Web au quotidien.