IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)
Navigation

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les réponses en temps réel, voter pour les messages, poser vos propres questions et recevoir la newsletter

PHP & Base de données Discussion :

Petit erreur de Connexion


Sujet :

PHP & Base de données

  1. #1
    Membre à l'essai
    Homme Profil pro
    Étudiant
    Inscrit en
    Décembre 2017
    Messages
    20
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 33
    Localisation : France, Vendée (Pays de la Loire)

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Décembre 2017
    Messages : 20
    Points : 10
    Points
    10
    Par défaut Petit erreur de Connexion
    J'ai une petite erreur et je n'arrive pas à la trouver pouvez-vous m'aider.
    voici mon code:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
    23
    24
    25
    26
    27
    28
    29
    30
    31
    32
    33
    34
    35
    36
    37
     
    <?php
    session_start();
    if(isset($_POST['valider'])){
     
    $Utilisateur =htmlentities(trim($_POST['Utilisateur']));
    $MotDePasse  =htmlentities(trim($_POST['MotDePasse']));
    require_once("f-config.php");
    $login = mysqli_query($connect,
    "SELECT * FROM base WHERE Utilisateur='$Utilisateur' AND MotDePasse='$MotDePasse'"); 
     
        if(mysqli_num_rows($login) == 1){   
                $_SESSION['Utilisateur'] = $Utilisateur;
                header('location: membre.php');                                
                } else {
                header('location: Connexion.php'); 
        exit;
        }
    } elseif(isset($_POST['retour'])){ header('location: accueil.php'); } ?>
    <html>
        <head>
        </head>
        <body>
    <!-- 
    <a href="accueil.php">Retour</a><br>
    <hr>
     -->
        <form action="Connexion.php" method="post">
     
    <input type="text" name="Utilisateur" placeholder="Utilisateur">
    <input type="text" name="MotDePasse" placeholder="Mot De Passe"><br>
     
            <input type="submit" name="valider" value="Valider"> - 
            <input type="submit" name="retour" value="Retour"> 
        </form>
            </body>
    </html>
    Avant je travailler avec WampServer (un mini serveur sur l'ordinateur)
    Mais depuis 2 semaines j'ai mon propre site internet et le code que
    j'utilisais avant ne fonctionne pas sur mon site web donc
    j'ai du mal à comprendre quels sont mes erreurs.
    Merci de votre aide et de vos conseils.

  2. #2
    Modérateur
    Avatar de sabotage
    Homme Profil pro
    Inscrit en
    Juillet 2005
    Messages
    29 208
    Détails du profil
    Informations personnelles :
    Sexe : Homme

    Informations forums :
    Inscription : Juillet 2005
    Messages : 29 208
    Points : 44 155
    Points
    44 155
    Par défaut
    Peux-tu nous décrire la situation que tu rencontres ? les debugages et tests que tu as déjà faits ?

    Sinon, ce que tu fais est moche
    On ne protege pas une requête avec htmlentities.
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    <?php
    session_start();
    if(isset($_POST['valider'])){
     
    $Utilisateur = mysqli_real_escape_string($connect, $_POST['Utilisateur']);
    $MotDePasse  =mysqli_real_escape_string($connect,$_POST['MotDePasse']);
    require_once("f-config.php");
    $login = mysqli_query($connect,
    "SELECT * FROM base WHERE Utilisateur='$Utilisateur' AND MotDePasse='$MotDePasse'");
    N'oubliez pas de consulter les FAQ PHP et les cours et tutoriels PHP

  3. #3
    Invité
    Invité(e)
    Par défaut
    Bonjour,

    1- ton script est d'autant plus mauvais qu'il suppose que le mot de passe est enregistré EN CLAIR dans la base de données.
    Mauvaise pratique.
    Voir :



    2- Ensuite, on protège la requête.



    Il existe de nombreux scripts de connexion, et de nombreuses discussions résolues sur le sujet.
    Fais une recherche

  4. #4
    Membre à l'essai
    Homme Profil pro
    Étudiant
    Inscrit en
    Décembre 2017
    Messages
    20
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 33
    Localisation : France, Vendée (Pays de la Loire)

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Décembre 2017
    Messages : 20
    Points : 10
    Points
    10
    Par défaut Précision du problème
    Oui excusez-moi j'avais oublié de préciser quel était mon problème
    mon problème c'est que quand je valide mon formulaire de connexion
    pour accéder à mon espace Membre
    je n'y accède pas je reste toujours sur ma page de connexion

    je pense que mon problème se passe à ce niveau
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    if(mysqli_num_rows($login) == 1){   
                $_SESSION['Utilisateur'] = $Utilisateur;
                header('location: membre.php');                                
                } else {
                header('location: Connexion.php'); 
        exit;}
    et je sais tu veux mon mot de passe n'est pas sécurisée et en et il est en clair dans ma base de donnée c'est juste que pour l'instant je ne crie pas de protection le site n'est pas utilisé par du public et que pour certains tests j'aime mieux voir le mot de passe qui a été enregistré dans la base de données.

  5. #5
    Expert éminent sénior

    Homme Profil pro
    Développeur Web
    Inscrit en
    Septembre 2010
    Messages
    5 380
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Puy de Dôme (Auvergne)

    Informations professionnelles :
    Activité : Développeur Web
    Secteur : High Tech - Multimédia et Internet

    Informations forums :
    Inscription : Septembre 2010
    Messages : 5 380
    Points : 10 410
    Points
    10 410
    Par défaut
    Mets un exit après chaque header de redirection.

  6. #6
    Membre à l'essai
    Homme Profil pro
    Étudiant
    Inscrit en
    Décembre 2017
    Messages
    20
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 33
    Localisation : France, Vendée (Pays de la Loire)

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Décembre 2017
    Messages : 20
    Points : 10
    Points
    10
    Par défaut
    Citation Envoyé par ABCIWEB Voir le message
    Mets un exit après chaque header de redirection.
    j'ai essayé et ça ne fonctionne toujours pas
    merci quand même

  7. #7
    Modérateur
    Avatar de sabotage
    Homme Profil pro
    Inscrit en
    Juillet 2005
    Messages
    29 208
    Détails du profil
    Informations personnelles :
    Sexe : Homme

    Informations forums :
    Inscription : Juillet 2005
    Messages : 29 208
    Points : 44 155
    Points
    44 155
    Par défaut
    Tu as debugué un peu ?

    Par exemple tout simplement :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    var_dump(mysqli_num_rows($login));
    N'oubliez pas de consulter les FAQ PHP et les cours et tutoriels PHP

  8. #8
    Invité
    Invité(e)
    Par défaut
    Ce n'est pourtant pas difficile de mettre des echo dans ton code pour savoir où il passe, et verifier si les données sont correctes.

  9. #9
    Membre à l'essai
    Homme Profil pro
    Étudiant
    Inscrit en
    Décembre 2017
    Messages
    20
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 33
    Localisation : France, Vendée (Pays de la Loire)

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Décembre 2017
    Messages : 20
    Points : 10
    Points
    10
    Par défaut
    Citation Envoyé par jreaux62 Voir le message
    Ce n'est pourtant pas difficile de mettre des echo dans ton code pour savoir où il passe, et verifier si les données sont correctes.
    Ce n'est pourtant pas difficile de mettre des echo OUI je te l'accorde mais pour tout te dire je l'ai fait je suis une personne qui essaye de trouver d'abord la réponse par tous les moyens avant de demander à la communauté de m'aider et pour l'instant je suis toujours bloquée j'écoute tout ce que vous dites et j'ai essayé de mettre plein déco partout de faire étape par étape savoir où j'ai merdé et pour l'instant je ne trouve pas je pense que je ne connais pas tout et que j'ai besoin encore d'être et j'espère qu'on pourra m'aider

  10. #10
    Membre à l'essai
    Homme Profil pro
    Étudiant
    Inscrit en
    Décembre 2017
    Messages
    20
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 33
    Localisation : France, Vendée (Pays de la Loire)

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Décembre 2017
    Messages : 20
    Points : 10
    Points
    10
    Par défaut
    Citation Envoyé par sabotage Voir le message
    Tu as debugué un peu ?

    Par exemple tout simplement :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    var_dump(mysqli_num_rows($login));
    merci c'est une astuce que je ne connaissais pas mais elle m'a pas aidé à trouver la panne de mon code je vais le garder en réserve je te remercie de m'avoir donné cette astuce.

  11. #11
    Modérateur
    Avatar de sabotage
    Homme Profil pro
    Inscrit en
    Juillet 2005
    Messages
    29 208
    Détails du profil
    Informations personnelles :
    Sexe : Homme

    Informations forums :
    Inscription : Juillet 2005
    Messages : 29 208
    Points : 44 155
    Points
    44 155
    Par défaut
    Certes mais qu'a donner ce test ?
    N'oubliez pas de consulter les FAQ PHP et les cours et tutoriels PHP

  12. #12
    Invité
    Invité(e)
    Par défaut
    Bonjour,

    Ce n'est pourtant pas difficile de donner le resultat des echo ou var_dump, car on ne peut pas le DEVINER !

  13. #13
    Membre à l'essai
    Homme Profil pro
    Étudiant
    Inscrit en
    Décembre 2017
    Messages
    20
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 33
    Localisation : France, Vendée (Pays de la Loire)

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Décembre 2017
    Messages : 20
    Points : 10
    Points
    10
    Par défaut
    Citation Envoyé par sabotage Voir le message
    Certes mais qu'a donner ce test ?
    Excuse-moi j'ai eu un gros problème de souci familial ces derniers jours je n'ai pas pu être là pour te répondre le test ma bien indiqué qu'il récupéré bien les bonnes informations j'ai fait plusieurs tests en changeant la valeur de 1 à 0 et le résultat a été différent donc ça fonctionne bien mais même si le résultat est bon mon code m'envoie pas sur la page membre après comme s'il y avait un blocage.

  14. #14
    Modérateur
    Avatar de sabotage
    Homme Profil pro
    Inscrit en
    Juillet 2005
    Messages
    29 208
    Détails du profil
    Informations personnelles :
    Sexe : Homme

    Informations forums :
    Inscription : Juillet 2005
    Messages : 29 208
    Points : 44 155
    Points
    44 155
    Par défaut
    le test ma bien indiqué qu'il récupéré bien les bonnes informations
    Que donne le résultat du var_dump() exactement ?

    Peux-tu nous donner ton code actuel ?
    N'oubliez pas de consulter les FAQ PHP et les cours et tutoriels PHP

  15. #15
    Membre à l'essai
    Homme Profil pro
    Étudiant
    Inscrit en
    Décembre 2017
    Messages
    20
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 33
    Localisation : France, Vendée (Pays de la Loire)

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Décembre 2017
    Messages : 20
    Points : 10
    Points
    10
    Par défaut
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    <?php
    session_start();
    if(isset($_POST['valider'])){
     
    $Utilisateur    = ($_POST['Utilisateur']);
    $MDP            = ($_POST['MDP']);
     
    require_once("Fiche-de-base/config.php");
    $login = mysqli_query($connect,"select * from base where Utilisateur='$Utilisateur' and MDP='$MDP'"); 
     
     
     
        if(var_dump(mysqli_num_rows($login) == 1)) {
            $_SESSION['Utilisateur'] = $Utilisateur;
     
            header("location: Membre.php");
            } else {
            header('location:Connexion.php');
     
    } } elseif(isset($_POST['retour'])){ header('location: accueil.php'); } ?>
    voici mon code
    et ce que ça donne c'est une page blanche avec ça a marqué dessus
    bool(true) = quand j'indique un bon identifiant avec un bon mot de passe
    et bool(false) = quand j'ai indique un mauvais identifiant et un mauvais mot de passe
    j'ai pas arrêté de chercher pourquoi j'avais un problème j'ai même me énormément déco un peu partout pour voir où ça passait et une ça ne passait pas la seule chose que je vois c'est que nous ça ne passe pas à ce code là:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    header('location: Membre.php');
    qui est pour moi bizarre parce que sur un autre code que j'ai réalisé très simple ça fonctionnait très bien je te mets le code que j'ai réalisé pour que tu puisses voir
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    <?php
     
    if(isset($_POST['valider'])){
     
    $MDP            = ($_POST['MDP']);
    $MDPv           = ('xavier');
     
        if($MDP == $MDPv){   
        header('location: Membre.php');
      } else {
       header('location:Connexion.php');
    } } elseif(isset($_POST['retour'])){ header('location: accueil.php'); } ?>
    certes c'est pas un code conventionnelle mais ce code
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
     header('location: Membre.php');
    fonctionne
    j'ai beaucoup de mal à comprendre qu'est-ce qui se passe pourquoi ça ne fonctionne pas est-ce que je suis maudit où il y a-t-il quelque chose que les forums les sites l'explication les vidéos sur le net et autres n'explique pas aidez-moi je commence à désespérer.

  16. #16
    Membre à l'essai
    Homme Profil pro
    Étudiant
    Inscrit en
    Décembre 2017
    Messages
    20
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 33
    Localisation : France, Vendée (Pays de la Loire)

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Décembre 2017
    Messages : 20
    Points : 10
    Points
    10
    Par défaut à l'aide aidez-moi
    si quelqu'un a un exemple qui fonctionne je veux bien qui me le montre j'aime bien chercher mais j'aime aussi trouver la le problème c'est que je fais que chercher et je n'avance pas dans mes recherches et donc je ne trouve pas

  17. #17
    Expert éminent sénior

    Homme Profil pro
    Développeur Web
    Inscrit en
    Septembre 2010
    Messages
    5 380
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Puy de Dôme (Auvergne)

    Informations professionnelles :
    Activité : Développeur Web
    Secteur : High Tech - Multimédia et Internet

    Informations forums :
    Inscription : Septembre 2010
    Messages : 5 380
    Points : 10 410
    Points
    10 410
    Par défaut
    Salut,

    Je t'ai déjà dit de mettre un "exit" derrière un header location. Ce n'est pas parce que cela ne suffisait pas à résoudre ton problème précédemment (car il y avait des erreurs ailleurs) que cela n'est pas nécessaire. En fait parfois ce n'est pas nécessaire, mais pour ne pas avoir à se poser de question autant toujours le faire.

  18. #18
    Invité
    Invité(e)
    Par défaut
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
        if(var_dump(mysqli_num_rows($login) == 1)) {
    Enlève le var_dump.

  19. #19
    Membre à l'essai
    Homme Profil pro
    Étudiant
    Inscrit en
    Décembre 2017
    Messages
    20
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 33
    Localisation : France, Vendée (Pays de la Loire)

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Décembre 2017
    Messages : 20
    Points : 10
    Points
    10
    Par défaut
    Citation Envoyé par ABCIWEB Voir le message
    Salut,

    Je t'ai déjà dit de mettre un "exit" derrière un header location. Ce n'est pas parce que cela ne suffisait pas à résoudre ton problème précédemment (car il y avait des erreurs ailleurs) que cela n'est pas nécessaire. En fait parfois ce n'est pas nécessaire, mais pour ne pas avoir à se poser de question autant toujours le faire.
    Ok je vais les maîtres et les laisser.

    c'est juste que comme ça ne fonctionne pas
    j'essaye plein de choses diverses et variées
    j'essaie de chercher partout et j'avais peur
    Me bloque plus qu'autre chose.
    je voudrais te demander juste un petit service comment je dois placer exit
    Comme ça
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    if(mysqli_num_rows($login) == 1) {
            $_SESSION['Utilisateur'] = $Utilisateur;
     
            header("location: Membre.php");
     
            } exit; else {
            header('location:Connexion.php');
     
    } exit;
    } elseif(isset($_POST['retour'])){ header('location: accueil.php'); } ?>
    ou comme ça
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
     if(mysqli_num_rows($login) == 1) {
            $_SESSION['Utilisateur'] = $Utilisateur;
     
            header("location: Membre.php");
            exit;
            } else {
            header('location:Connexion.php');
     
        exit; } 
    } elseif(isset($_POST['retour'])){ header('location: accueil.php'); } ?>
    j'ai peur que si je l'ai place mal que ça crée des interférences avec
    if elseif else
    Merci de ton aide.

  20. #20
    Membre à l'essai
    Homme Profil pro
    Étudiant
    Inscrit en
    Décembre 2017
    Messages
    20
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 33
    Localisation : France, Vendée (Pays de la Loire)

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Décembre 2017
    Messages : 20
    Points : 10
    Points
    10
    Par défaut
    Citation Envoyé par jreaux62 Voir le message
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
        if(var_dump(mysqli_num_rows($login) == 1)) {
    Enlève le var_dump.
    var_dump()

    j'ai enlevé et ça marche toujours pas

+ Répondre à la discussion
Cette discussion est résolue.
Page 1 sur 2 12 DernièreDernière

Discussions similaires

  1. Erreur de connexion en mode ssh
    Par okoax dans le forum Réseau
    Réponses: 3
    Dernier message: 23/02/2005, 13h36
  2. Erreur de connexion au serveur SQL 3
    Par NeHuS dans le forum Langage SQL
    Réponses: 3
    Dernier message: 28/01/2005, 13h55
  3. Erreur de connexion à ma base sur serveur Debian - Apache
    Par GLDavid dans le forum Installation
    Réponses: 4
    Dernier message: 24/09/2003, 10h29
  4. Pgsql : erreur de connexion 'too many clients ...'
    Par petitmoosse dans le forum PostgreSQL
    Réponses: 3
    Dernier message: 21/08/2003, 14h03
  5. Erreur de connexion à PostGresql via pgAdminII
    Par LS dans le forum PostgreSQL
    Réponses: 4
    Dernier message: 21/08/2003, 09h51

Partager

Partager
  • Envoyer la discussion sur Viadeo
  • Envoyer la discussion sur Twitter
  • Envoyer la discussion sur Google
  • Envoyer la discussion sur Facebook
  • Envoyer la discussion sur Digg
  • Envoyer la discussion sur Delicious
  • Envoyer la discussion sur MySpace
  • Envoyer la discussion sur Yahoo