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 :

Script de connexion, je ne sais pas ce qui bugge [MySQL]


Sujet :

PHP & Base de données

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre habitué
    Profil pro
    Inscrit en
    Août 2005
    Messages
    11
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Août 2005
    Messages : 11
    Par défaut Script de connexion, je ne sais pas ce qui bugge
    Bonjour à vous tous,
    je suis a la création d'un jeu en PHP, et il y a un bug au script de connexion :
    L'utilisateur arrive sur une page, et remplis ce formulaire :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    <h1>CONNECTION</h1>
    <form action="connection.deb.sec.php" method="post">
    Pseudo :<br />
    <input type="text" name="pseudo"><br />
    Mot de passe :<br />
    <input type="text" name="passe"><br />
    <input type="submit" value="Envoyer" name="B1"><br />
    </form>
    les données sont envoyées sur cette page :
    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
    38
    39
    40
    41
    42
    43
    <?php 
     
    require("bdd.sec.php3");
     
    $pseudo = $_POST['pseudo']; 
    $passe = $_POST['passe']; 
     
    $db_link = mysql_connect($sql_serveur, $sql_user, $sql_passwd);
    mysql_select_db($sql_bdd, $db_link);
    $requete1=mysql_db_query("SELECT pseudo,passe FROM membre WHERE pseudo='".$pseudo."' AND passe='".$passe."'", $db_link);
    $data = mysql_num_rows($requete1);
     
     
    if ($data==0) 
    {
    header("Location:index.php3?erreur=connexion");
    }
     
    else 
    {
    $requete = "SELECT * FROM membre WHERE pseudo='$pseudo' AND passe='$passe'";
    $reponse = mysql_query($requete);
    $data = mysql_fetch_array($reponse); 
    $cite = $data["cite"];
    $passe = $data["passe"];
    $email = $data["email"];
    $age = $data["age"];
     
    mysql_close();
     
    $timestamp_expire = time() + 600; // Le cookie expirera dans 10 minutes
     
    setcookie('pseudo', $pseudo , $timestamp_expire);
    setcookie('cite', $cite , $timestamp_expire); 
    setcookie('passe', $passe , $timestamp_expire);
    setcookie('email', $email , $timestamp_expire);
    setcookie('age', $age , $timestamp_expire);
     
    header("Location:accueil.jeu.php3");
     
    }
     
    ?>
    Le problème est que une fois qu'on a mi un bon pseudo et un bon mot de passe, il ne s'affiche rien, et on reste sur la page "connection.deb.sec.php".
    J'ai alors essayé de mettre le header location en commentaire, et d'afficher erreur a la place, que voici :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    if ($data==0) 
    {
    echo "erreur";
    //header("Location:index.php3?erreur=connexion");
    }
    effectivement, c'est bien "erreur" qui s'affiche, mais le pseudo et le mot de passe sont bons !
    j'ai pensé a une erreur dans la table MySQL, mais la voici :
    Type pseudo cite passe email age
    dond franchement je voie pas, j'ai déjà demandé de l'aide a des amis très bon en dévellopement php, mais rien n'y fait... vous auriez une idée ?

  2. #2
    Expert confirmé Avatar de Mr N.
    Profil pro
    Inscrit en
    Septembre 2004
    Messages
    5 418
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Septembre 2004
    Messages : 5 418
    Par défaut
    utilise mysql_query au lieu de mysql_db_query

  3. #3
    Membre habitué
    Profil pro
    Inscrit en
    Août 2005
    Messages
    11
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Août 2005
    Messages : 11
    Par défaut
    merci mais j'ai déjà essayé...

  4. #4
    Membre habitué
    Profil pro
    Inscrit en
    Août 2005
    Messages
    11
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Août 2005
    Messages : 11
    Par défaut
    personne n'a d'idée :'( on a déjà tellement cherché...

  5. #5
    Membre éprouvé Avatar de oceane751
    Profil pro
    Intégrateur Web
    Inscrit en
    Novembre 2004
    Messages
    1 280
    Détails du profil
    Informations personnelles :
    Localisation : France, Paris (Île de France)

    Informations professionnelles :
    Activité : Intégrateur Web

    Informations forums :
    Inscription : Novembre 2004
    Messages : 1 280
    Par défaut
    essaye ça..

    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
     
    $req = SELECT pseudo,passe FROM membre WHERE pseudo='".$pseudo."' AND passe='".$passe."'";
    if ($requete1 = mysql_query ($req) or die (mysql_error()))
     {
    $machin = mysql_fetch_array($requete1);
     
    if (($machin['pseudo'] == $pseudo) && ($machin['mdp] == $mdp))
    {
    header("Location:accueil.jeu.php3");
    }
    }
    else
    {
    header("Location:index.php3?erreur=connexion");
    }
     
    mysql_close();
    sinon pour le reste je comprends pas trop ce que tu veux faire.
    c'est bien du code pour identification pseudo + mdp que tu veux faire?

  6. #6
    Membre éprouvé Avatar de oceane751
    Profil pro
    Intégrateur Web
    Inscrit en
    Novembre 2004
    Messages
    1 280
    Détails du profil
    Informations personnelles :
    Localisation : France, Paris (Île de France)

    Informations professionnelles :
    Activité : Intégrateur Web

    Informations forums :
    Inscription : Novembre 2004
    Messages : 1 280
    Par défaut
    sinon

    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
    38
    39
    40
    41
    42
    43
     
     
    $requete1=mysql_db_query("SELECT pseudo,passe FROM membre WHERE pseudo='".$pseudo."' AND passe='".$passe."'");
     
    $req = mysql_query ($requete1) or die (mysql_error());
     if($req)
     {
    $machin = mysql_fetch_array($req);
     
    if($machin)
        {
       if ($requete = "SELECT cite,  email, age FROM membre WHERE pseudo='$pseudo' AND passe='$passe'")
    {
     
     $res = mysql_query($requete);
    while($data = mysql_fetch_array($res))
    {
    $cite = $data["cite"];
    $email = $data["email"];
    $age = $data["age"];
     
    header("Location:accueil.jeu.php3");
     
     
    $timestamp_expire = time() + 600; // Le cookie expirera dans 10 minutes
     
    setcookie('pseudo', $pseudo , $timestamp_expire);
    setcookie('cite', $cite , $timestamp_expire); 
    setcookie('passe', $passe , $timestamp_expire);
    setcookie('email', $email , $timestamp_expire);
    setcookie('age', $age , $timestamp_expire);
     
    }
    }
    }
    }
     
    else 
    {
    header("Location:index.php3?erreur=connexion");
    }
     
    mysql_close();
    j'ai certainement fait des erreurs,mais je pense que c'est dans ce style là..

  7. #7
    Invité
    Invité(e)
    Par défaut
    Pour voir s'il ya des erreurs mysql , à chaque instruction rajoute :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    or die('Erreur :'.mysql_error());
    Donc pour ton code ca donne :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
     
    $db_link = mysql_connect($sql_serveur, $sql_user, $sql_passwd) or die('Erreur :'.mysql_error());
    mysql_select_db($sql_bdd, $db_link) or die('Erreur :'.mysql_error());
    $requete1=mysql_db_query("SELECT pseudo,passe FROM membre WHERE pseudo='".$pseudo."' AND passe='".$passe."'", $db_link) or die('Erreur :'.mysql_error());
    $data = mysql_num_rows($requete1) or die('Erreur :'.mysql_error());

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

Discussions similaires

  1. Réponses: 16
    Dernier message: 10/11/2011, 00h40
  2. Création d'un script, je ne sais pas comment l'aborder
    Par qualifio dans le forum Développement
    Réponses: 9
    Dernier message: 19/05/2011, 14h39
  3. pb dans mon script, je sais pas comment faire
    Par gengiskhan72 dans le forum C
    Réponses: 5
    Dernier message: 30/06/2009, 20h16
  4. script de connexion par ssh
    Par black_code dans le forum Modules
    Réponses: 2
    Dernier message: 25/07/2005, 15h10

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