31 réflexions sur “Formulaire d’authentification login + mot de passe avec PHP et MySQL

  • mars 15, 2020 à 12:07 am
    Permalien

    Merci pour cet application du PHP, ça m’a aidé.

  • mars 29, 2020 à 6:13 pm
    Permalien

    Bonjour, merci beaucoup pour le code !
    J’ai une question, j’ai installé tout les codes pour essayer or lorsque l’on se login on n’est pas redirigés vers la page index, on reste sur la page login. J’ai l’impression que le :

    $_SESSION['username'] = $username;
    header("Location: index.php");

    ne marche pas et que comme il n’y pas d’username pour la session on retourne automatiquement sur le login.
    En espérant que vous puissiez m’éclairer,
    Bonen journée

    • mars 29, 2020 à 7:35 pm
      Permalien

      Bonjour Amélie,

      Dans le fichier « login.php » sur la ligne 18. Si la requête renvoie une ligne c’est-a-dire « $rows==1 » donc la variable de session $_SESSION[‘username’] aura automatiquement une valeur.

      if($rows==1){
           $_SESSION['username'] = $username;
            header("Location: index.php");
      }else{
           $message = "Le nom d'utilisateur ou le mot de passe est incorrect.";
      }

      Dans votre cas $rows==0 c’est pour cela il n’attribut aucune valeur à la variable de session $_SESSION[‘username’]

      Veuillez vérifier si l’utilisateur existe bien dans votre base de données.

      • mars 30, 2020 à 8:29 am
        Permalien

        Bonjour Thomas,

        Merci beaucoup pour votre réponse rapide !

        J’ai vérifié sur la base de données et il existe bel et bien l’utilisateur. Et d’ailleurs lorsque je rentre un utilisateur qui n’existe pas je reçois bien le message « Le nom d’utilisateur ou le mot de passe est incorrect » ce qui suggère que lorsque $rows==0 le message d’erreur apparaît. Le problème ne pourrait-il pas venir d’ailleurs?

        Encore merci,

        Amélie

        • mars 30, 2020 à 11:09 am
          Permalien

          Ça y est j’ai trouvé ! Le script ne marchait pas car il y a la déclaration du header avant le php, j’ai mis le script php avant le DOCTYPE et ça a marché ! Merci beaucoup

  • mars 30, 2020 à 11:35 am
    Permalien

    Super, j’était entrain de rédiger la réponse, j’ai pensé que vous perdez la session après la redirection, mais en fait c’est juste une question d’ordre, normalement ça sera quelque chose comme ça:

    <?php 
         session_start();
         // code...
    ?>
    <!DOCTYPE html>

    Bon courage pour la suite 🙂

  • avril 4, 2020 à 5:05 pm
    Permalien

    Bonjour Thomas ,

    Merci pour le code source , mais même problème qu’Amélie . J’ai pourtant essayé , (enfin je pense ) avoir mis le script php avant le DOCTYPE mais je reste sur la page du login . Les utilisateurs sont bien créés . Pouvez vous m’aidez ? , merci par avance .

    • avril 5, 2020 à 12:31 pm
      Permalien

      Bonjour,

      En fait la perte de session PHP après la redirection est un problème très courant:

      Assurez-vous que session_start(); se trouve au début de votre script, juste après l’ouverture du balise
      <?php. Assurez-vous également qu’il n’y a pas d’espaces / tabulations avant la déclaration d’ouverture <?php.

      Si ne marche pas, ajouter « exit » après l’appel du header comme suit.

      if($rows==1){
           $_SESSION['username'] = $username;
            header("Location: index.php");
            exit;
      }
  • avril 5, 2020 à 12:49 am
    Permalien

    Bonjour à tous merci pour le code plus haut.
    En ce qui me concerne, je ne sais rien de de la connexion à la base de données avec Mysqly , je me connecte avec le PDO.
    Pouvez vous svp m’aider à mettre en place un formulaire d’inscription et de connexion?

  • avril 5, 2020 à 5:26 pm
    Permalien

    merci énormément , maintenant cela fonctionne .

  • avril 16, 2020 à 2:54 pm
    Permalien

    Bonjour,
    Merci pour votre script.
    une petite question, comment interdire le browsing… Car malgré le script d’authentification il est possible d’écrire l’url et d’y accéder sans être authentifié ?
    merci.

    • avril 16, 2020 à 3:11 pm
      Permalien

      Bonjour,

      Ce cas est déjà traité dans le tuto, regardez le fichier login.php dans la ligne 20, si l’utilisateur s’est connecté avec succès, on a définit une variable de session $_SESSION['username'] = $username;

      Ensuite, chaque page vérifie l’utilisateur connecté ou non par le code ci-dessous (regardez le fichier index.php):

      <?php
        // Initialiser la session
        session_start();
        /* Vérifiez si l'utilisateur est connecté, sinon redirigez-le 
        vers la page de connexion*/
        if(!isset($_SESSION["username"])){
          header("Location: login.php");
          exit(); 
        }
      ?>

      Bon courage 🙂

  • avril 18, 2020 à 2:38 pm
    Permalien

    bonjour,

    j’ai suivi le tuto tout en creant des utilisateurs dans la base de donné, puis j’ai suivi la correction dans les commentaires mais je reste bloquer a la page de connexion me disant que c’est incorrect.
    merci pour ce tuto

    • avril 19, 2020 à 10:17 am
      Permalien

      Peut être que vous utiliser une ancienne version PHP.

      • avril 19, 2020 à 10:59 am
        Permalien

        j’utilise la version php5 5.12 es ce que sa suffit ou il faut passer a une version superieur ?

        • avril 19, 2020 à 11:37 am
          Permalien

          ok c’est bon j’ai réussi a régler le problème qui venait de ma base de donné, le tuto explique très bien mais aurez vous de le documentation si il est possible de rediriger vers une page en particulier selon le compte utilisé ?

          • avril 19, 2020 à 12:29 pm
            Permalien

            Cela pourrait vous intéresser.

  • avril 22, 2020 à 2:17 pm
    Permalien

    Bonjour,

    Merci, et félicitation pour tous ces tutos,
    je cherche comment faire pour ouvrir une page index différente pour chaque membre

    ex : membre Pierre ouvre une page 1
    membre Paul ouvre une page 2
    membre Jacques ouvre une page 3

    • avril 22, 2020 à 5:53 pm
      Permalien

      C’est-à-dire après l’authentification, vous pouvez passez le nom d’utilisateur en utilisant une requête, comme ceci: http://www.exemple.com/index.php?user=username Et personnalisez cette page en fonction de chaque utilisateur.

      • avril 22, 2020 à 7:47 pm
        Permalien

        Non la redirection chaque utilisateurs redirigés sur différentes pages
        merci cordialement,

  • avril 27, 2020 à 7:17 pm
    Permalien

    Bonjour, je pense avoir trouvé :
    dans le fichier « index.php » j’ai modifier les premières ligne PHP et j’ai mis

    if (session_id() == "")
    {
       session_start();
    }
    if (!isset($_SESSION['username']))
    {
       header('Location: login.php ');
       exit;
    }
    if ($_SESSION['username'] == 'jpg')
    {
       header('Location: jpg.php');
       exit;
    }
    if ($_SESSION['username'] == 'moi')
    {
       header('Location: moi.php');
       exit;
    }

    Ensuite j’ai crée des fichiers nommé par les nom des différents ‘location’

  • avril 28, 2020 à 6:35 pm
    Permalien

    J’ai essayé tout ce que vous avez mentionné. mais j’ai toujours le même soucis. L’index en page blanche et sans redirection vers login.php. Et lorsque je me connecte, le compte existe bien mais il me renvoi à la page de connexion..

    • avril 28, 2020 à 11:05 pm
      Permalien

      Je pense que la redirection faite par la fonction header() ne fonctionne probablement pas. Une page blanche signifie des erreurs. Vous pouvez vérifier les fichiers logs car ils contiennent toutes les erreurs pour voir quel est le problème. Il ne doit y avoir absolument aucun caractère envoyé au navigateur avant la redirection header(), sinon il échouera.

      Je pense que ces quelques espaces avant <? dans votre script (s’il ne s’agit pas d’une erreur de copier / coller) pourrait interférer avec la redirection head().

      Quoi qu’il en soit, vérifiez votre error.log et regardez ce que vous avez là.

      • avril 29, 2020 à 5:02 am
        Permalien

        J’ai pourtant essayé de supprimé tous les espaces pour être sûr mais toujours pareil. Je vais regarder à nouveau dans la journée. Je n’arrive pas à écrire de code en commentaire. Mais j’ai l’impression que c’est la balise écho plus bas qui pourrait poser problème ? La où il y a le du php, quand le membre est connecté (bienvenue « username ») je sais pas si vous voyez ce que je veux dire

        • avril 29, 2020 à 5:08 am
          Permalien

          J’ai oublié, je n’ai pas d’accès au fichier log. Ni sur mon FTP ni sur le site de mon hébergeur (j’utilise un hébergement gratuit donc avec options limités)

  • avril 29, 2020 à 4:22 pm
    Permalien

    J’ai enfin trouvé ! Je partage la solution si quelqu’un est dans la même situation. C’était tellement simple.. J’ai édité index.php avec notepad++ et j’ai changé l’encodage qui était en UTF-8 (BOM). Je l’ai passé en UTF-8 standard. Tout simplement… Merci quand même pour le coup de main

  • mai 7, 2020 à 7:24 pm
    Permalien

    Bonjour,

    comment faire pour que la personne qui vient de s’inscrire sur le formulaire,
    reçoive automatiquement un émail contenant les informations qu’il a renseignées
    merci
    cordialement

  • mai 11, 2020 à 12:43 pm
    Permalien

    Bonjour,
    Comment configurer « sendmail » avec une adresse email « gmx.fr »
    après de multiple test je ne trouve pas
    merci
    cordialement

    • mai 11, 2020 à 2:15 pm
      Permalien

      Avez-vous une autorité sur le domaine « gmx.fr » ?

Commentaires fermés.