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 :

Aide espace login [MySQL]


Sujet :

PHP & Base de données

  1. #1
    Membre habitué
    Profil pro
    Inscrit en
    Décembre 2006
    Messages
    244
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Décembre 2006
    Messages : 244
    Points : 159
    Points
    159
    Par défaut Aide espace login
    Bonjour,

    Dans le cadre d'un espace reservé par session, je rencontre un petit bug :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    $login=$_POST['login'];
    $pass=$_POST['pass'];
    echo "$login<br>";
    echo $pass;
    $sql = mysql_query("SELECT count(*) FROM membres WHERE login=$login and pass=$pass");
    Les "echo" sont la pour vérifiés si les variables sont bien remplis. Par contre dans la requete sql, sa ne fonctionne pas. Logique car en sql il faut mettre login="lelogin" ou entre ' '
    Mais la, comment faire pour que la requete sql soit accepté ?

    Merci
    L'informatique au service de l'écologie avec ecomail.fr - Mon hébergeur : Microheb

  2. #2
    Membre averti
    Profil pro
    Inscrit en
    Décembre 2006
    Messages
    297
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Décembre 2006
    Messages : 297
    Points : 303
    Points
    303
    Par défaut
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    $login=$_POST['login'];
    $pass=$_POST['pass'];
    echo "$login<br />";
    echo $pass;
    $sql = mysql_query("SELECT count(*) FROM membres WHERE login='".$login."' and pass='".$pass."'");
    pense à sécurisé le script en ajoutant si possible des addslashes si get_magic_quotes_gpc() n'est pas activé.

  3. #3
    Membre habitué
    Profil pro
    Inscrit en
    Décembre 2006
    Messages
    244
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Décembre 2006
    Messages : 244
    Points : 159
    Points
    159
    Par défaut
    Merci pour cette réponse rapide. Je vais regarder sa tout de suite

    Ps : je débute en php :s
    L'informatique au service de l'écologie avec ecomail.fr - Mon hébergeur : Microheb

  4. #4
    Membre habitué
    Profil pro
    Inscrit en
    Décembre 2006
    Messages
    244
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Décembre 2006
    Messages : 244
    Points : 159
    Points
    159
    Par défaut
    Etrange, cela ne fonctionne toujours pas :s
    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
    <?php
    require("config.inc.php");
    mysql_connect($server,$user,$password);
    mysql_select_db($base);
    $login=$_POST['login'];
    $pass=$_POST['pass'];
    echo "$login<br />";
    echo $pass;
    $sql = mysql_query("SELECT count(*) FROM membres WHERE login='".$login."' and pass='".$pass."'");
    //$sql=1;
    //$exist=1;
    if($sql!=1) {
    	echo "<center>Veuillez vérifier vos données</center>";
    	include("formulaire.php");
    }
    else {
    session_start();
    session_register("login");
    echo "<center>Bienvenu sur votre espace membre : $login</center>";
     
    echo "<br>";
    $sess_nom=session_name();
    $sess_id=session_id();
     
    echo "<a href=\"index.php\">Page Essai</a><br>";
    echo "<a href=\"deco.php\">Deco</a>";
    }
    ?>
    Ps : J'ai en fait repris un script trouvé dans un tutorial, je le comprend totalement, mais quand sa bug.. c'est embetant
    L'informatique au service de l'écologie avec ecomail.fr - Mon hébergeur : Microheb

  5. #5
    Membre averti
    Profil pro
    Inscrit en
    Décembre 2006
    Messages
    297
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Décembre 2006
    Messages : 297
    Points : 303
    Points
    303
    Par défaut
    et moi je ne nulle en SQL
    si ça peut t'aider (je l'espère)
    sinon, si ça te retourne une erreur montre la nous...

  6. #6
    Membre habitué
    Profil pro
    Inscrit en
    Décembre 2006
    Messages
    244
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Décembre 2006
    Messages : 244
    Points : 159
    Points
    159
    Par défaut
    Aucune erreur retourné, il rentre juste dans la partie du if ou sa affiche "Vérifiez vos données"
    L'informatique au service de l'écologie avec ecomail.fr - Mon hébergeur : Microheb

  7. #7
    Membre averti
    Profil pro
    Inscrit en
    Décembre 2006
    Messages
    297
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Décembre 2006
    Messages : 297
    Points : 303
    Points
    303
    Par défaut
    il existe bien des des occurrences entre tes saisies et les valeurs dans la base de donnée?

    peux tu nous donner un exemple de login et de mot de passe que tu as testé?

  8. #8
    Membre habitué
    Profil pro
    Inscrit en
    Décembre 2006
    Messages
    244
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Décembre 2006
    Messages : 244
    Points : 159
    Points
    159
    Par défaut
    Dans la DB :
    ID/Login/pass
    2 test test
    Si par exemple je fais :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    SELECT count( * )
    FROM membres
    WHERE login = 'test'
    AND pass = 'test';
    J'obtient:
    Et enfin si dans mon code je remplace les variables par test et test :
    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
    <?php
    require("config.inc.php");
    mysql_connect($server,$user,$password);
    mysql_select_db($base);
    $login=$_POST['login'];
    $pass=$_POST['pass'];
    echo "$login<br />";
    echo $pass;
    $sql = mysql_query("SELECT count(*) FROM membres WHERE login='".test."' and pass='".test."'");
    //$sql=1;
    //$exist=1;
    if($sql!=1) {
    	echo "<center>Veuillez vérifier vos données</center>";
    	include("formulaire.php");
    }
    else {
    session_start();
    session_register("login");
    echo "<center>Bienvenu sur votre espace membre : $login</center>";
     
    echo "<br>";
    $sess_nom=session_name();
    $sess_id=session_id();
     
    echo "<a href=\"index.php\">Page Essai</a><br>";
    echo "<a href=\"deco.php\">Deco</a>";
    }
    ?>
    Eh bien, sa ne change rien, il concidere toujours que sa rend 0
    L'informatique au service de l'écologie avec ecomail.fr - Mon hébergeur : Microheb

  9. #9
    Membre habitué
    Profil pro
    Inscrit en
    Décembre 2006
    Messages
    244
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Décembre 2006
    Messages : 244
    Points : 159
    Points
    159
    Par défaut
    Et meme avec un
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    or die (mysql_error());
    Sa me rend toujours la meme chose

    Edit : Un echo $sql; aprés la requete me rend : Etrange...
    L'informatique au service de l'écologie avec ecomail.fr - Mon hébergeur : Microheb

  10. #10
    Membre habitué
    Profil pro
    Inscrit en
    Décembre 2006
    Messages
    244
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Décembre 2006
    Messages : 244
    Points : 159
    Points
    159
    Par défaut
    J'ai trouver une solution :
    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
    <?php
    require("config.inc.php");
    mysql_connect($server,$user,$password);
    mysql_select_db($base);
    $login=$_POST['login'];
    $pass=$_POST['pass'];
    echo "$login<br />";
    echo "$pass<br>";
    $sql = mysql_query("SELECT count(*) AS nb_entree FROM membres WHERE login='".$login."' and pass='".$pass."'") or die (mysql_error());
    echo $sql;
    $res=mysql_fetch_array($sql);
    echo $res['nb_entree'];
    //$sql=1;
    //$exist=1;
    if($res['nb_entree']!=1) {
    	echo "<center>Veuillez vérifier vos données</center>";
    	include("formulaire.php");
    }
    else {
    session_start();
    session_register("login");
    echo "<center>Bienvenu sur votre espace membre : $login</center>";
     
    echo "<br>";
    $sess_nom=session_name();
    $sess_id=session_id();
     
    echo "<a href=\"index.php\">Page Essai</a><br>";
    echo "<a href=\"deco.php\">Deco</a>";
    }
    ?>
    J'ai rajouté un fetch_array et une variable ou est stocké le nombre de résultat en retour du count(*) et la, sa fonctionne
    L'informatique au service de l'écologie avec ecomail.fr - Mon hébergeur : Microheb

  11. #11
    Membre averti
    Profil pro
    Inscrit en
    Décembre 2006
    Messages
    297
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Décembre 2006
    Messages : 297
    Points : 303
    Points
    303
    Par défaut
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    SELECT * FROM membres WHERE pseudo='$pseudo' AND pass='$password'
    voici un exemple type.

    Je pense que le ça devrait marcher (changement des quotes)
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    'SELECT count(*) FROM membres WHERE login=\''.$login.'\' and pass=\''.$pass.'\''

  12. #12
    Membre habitué
    Profil pro
    Inscrit en
    Décembre 2006
    Messages
    244
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Décembre 2006
    Messages : 244
    Points : 159
    Points
    159
    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
    21
    22
    23
    <?php
    require("config.inc.php");
    mysql_connect($server,$user,$password);
    mysql_select_db($base);
    $sql = mysql_query("SELECT count(*) AS nb_entree FROM membres WHERE login='".$_POST['login']."' and pass='".$_POST['pass']."'") or die (mysql_error());
    $res=mysql_fetch_array($sql);
    if($res['nb_entree']!=1) {
    	echo "<center>Veuillez vérifier vos données</center>";
    	include("formulaire.php");
    }
    else {
    session_start();
    session_register("login");
    echo "<center>Bienvenu sur votre espace membre : $login</center>";
     
    echo "<br>";
    $sess_nom=session_name();
    $sess_id=session_id();
     
    echo "<a href=\"index.php\">Page Essai</a><br>";
    echo "<a href=\"deco.php\">Deco</a>";
    }
    ?>
    Ainsi sa fonctionne parfaitement ! Merci beaucoup pour ton aide en tout cas
    L'informatique au service de l'écologie avec ecomail.fr - Mon hébergeur : Microheb

  13. #13
    Membre averti
    Profil pro
    Inscrit en
    Décembre 2006
    Messages
    297
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Décembre 2006
    Messages : 297
    Points : 303
    Points
    303
    Par défaut
    oké désolé de t'avoir amener sur de fausse piste (les quotes)
    merci à toi

  14. #14
    Membre habitué
    Profil pro
    Inscrit en
    Décembre 2006
    Messages
    244
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Décembre 2006
    Messages : 244
    Points : 159
    Points
    159
    Par défaut
    Hey !! Ne t'excuse pas On a tout les deux appris un truc comme sa
    L'informatique au service de l'écologie avec ecomail.fr - Mon hébergeur : Microheb

  15. #15
    Membre averti
    Profil pro
    Inscrit en
    Décembre 2006
    Messages
    297
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Décembre 2006
    Messages : 297
    Points : 303
    Points
    303
    Par défaut
    l'aide mutuelle c'est sympa en plus c'est donnant donnant

    mais tu mérites plusieurs merci, tout simplement,
    d'une, tu poses une question,
    de deux, tu réponds a ta question,
    de trois, tu postes ton parcours pour arrivé à la solution
    de quatre, tu poste la solution
    de cinq, des personnes (moi mais je ne serais pas le seul) savent ou trouvé une réponses en cas de troue de mémoire

    Merci

+ Répondre à la discussion
Cette discussion est résolue.

Discussions similaires

  1. Espace login pour les clients et les admins
    Par suggadaddy dans le forum Général Java
    Réponses: 2
    Dernier message: 11/03/2015, 09h54
  2. Aide: fonction login toute simple
    Par t3__rrY dans le forum Général Dotnet
    Réponses: 6
    Dernier message: 03/12/2013, 18h18
  3. Aide SVP probleme "espace"
    Par Kermouse dans le forum C
    Réponses: 8
    Dernier message: 18/06/2006, 19h29
  4. BESOIN D'AIDE : Javascript Portail Login Authentification
    Par cybervore dans le forum Général JavaScript
    Réponses: 1
    Dernier message: 27/02/2006, 17h18
  5. Réponses: 3
    Dernier message: 10/01/2005, 12h21

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