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 :

se loguer en php


Sujet :

PHP & Base de données

  1. #1
    Membre habitué
    Profil pro
    Inscrit en
    Avril 2010
    Messages
    11
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Avril 2010
    Messages : 11
    Par défaut se loguer en php
    Bonjour, j'ai un pb, je suis en train de créer un formulaire permettant de se logger pour un accés au site, cependant le code que j'ai trouvé et modifié comporte une erreur, car lors de la connexion le serveur internet s'arréte, cependant le login et mot de passe sont bien présent dans ma base de données.
    Merci de m'aider c'est assez urgent.
    Voici le 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
    38
    39
    40
    41
    42
    43
    44
    45
    46
    47
    48
    49
    50
    51
    52
    53
    54
    55
    56
    57
    58
    59
    60
    61
    62
    63
    64
    65
    66
    67
    68
    69
    70
     
    <?php 
     
    // on teste si le visiteur a soumis le formulaire de connexion 
    if (isset($_POST['connexion']) && $_POST['connexion'] == 'Connexion') { 
    if ((isset($_POST['login']) && !empty($_POST['login'])) && (isset($_POST['pass']) && !empty($_POST['pass']))) { 
     
    $base = mysql_connect ('localhost', 'root', ''); 
    mysql_select_db ('djp', $base); 
     
    // on teste si une entrée de la base contient ce couple login / pass 
    $sql = 'SELECT count(*) FROM membre WHERE login="'.mysql_escape_string($_POST['login']).'" AND pass_md5="'.md5(mysql_escape_string($_POST['pass'])).'"'; 
    $req = mysql_query($sql) or die('Erreur SQL !
    '.$sql.'
    '.mysql_error()); 
    $data = mysql_fetch_array($req); 
     
    mysql_free_result($req); 
    mysql_close(); 
     
    // si on obtient une réponse, alors l'utilisateur est un membre 
    if ($data[0] == 1) { 
    session_start(); 
    $_SESSION['login'] = $_POST['login']; 
    //<p><strong>Vous êtes bien connecté !!!!</strong></p> 
    header('Location: deco.php'); 
    exit(); 
    } 
    // si on ne trouve aucune réponse, le visiteur s'est trompé soit dans son login, soit dans son mot de passe 
    elseif ($data[0] == 0) { 
    $erreur = 'Compte non reconnu.'; 
    } 
    // sinon, alors la, il y a un gros problème  
    else { 
    $erreur = 'Probème dans la base de données : plusieurs membres ont les mêmes identifiants de connexion.'; 
    } 
    } 
    else { 
    $erreur = 'Au moins un des champs est vide.'; 
    } 
    } 
    ?> 
     
    <html> 
    <head> 
    <title>Accueil</title> 
    </head> 
     
    <body> 
    Connexion à l'espace membre :
     
    <form action="index.php" method="post"> 
    Login : <input type="text" name="login" value="<?php if (isset($_POST['login'])) echo htmlentities(trim($_POST['login'])); ?>">
     
    Mot de passe : <input type="password" name="pass" value="<?php if (isset($_POST['pass'])) echo htmlentities(trim($_POST['pass'])); ?>">
     
    <input type="submit" name="connexion" value="Connexion"> 
    </form> 
    <a href="inscription.php">Vous inscrire</a> 
    <?php 
     
    if (isset($erreur)) echo '
    
    ',$erreur; 
    ?> 
     
    <a href="formulaire.php?id=1"><p><strong>Bon d'intervention sur site : fiche à remplir</strong></p></a> 
     
    </body> 
    </html>

  2. #2
    Membre habitué
    Profil pro
    Inscrit en
    Avril 2010
    Messages
    11
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Avril 2010
    Messages : 11
    Par défaut
    Pour moi aprés longue étude l'erreur viendrai d'ici :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    <?php
    // on teste si une entrée de la base contient ce couple login / pass 
    $sql = 'SELECT count(*) FROM membre WHERE login="'.mysql_escape_string($_POST['login']).'" AND pass_md5="'.md5(mysql_escape_string($_POST['pass'])).'"';  
    $req = mysql_query($sql) or die('Erreur SQL !<br />'.$sql.'<br />'.mysql_error()); 
    $data = mysql_fetch_array($req);
    //var_dump($data);
    ?>

    Car lorsque j'effectue une inscription tout fonctionne bien, si je ne me deconnecte pas il retrouve le membre lors de l'identification. Cependant lorsque je me déconnecte, et que je cherche par la suite à réidentifier ce même membre il ne le trouve plus.
    L'erreur viendrai t-elle de ma requête??

  3. #3
    Rédacteur/Modérateur
    Avatar de andry.aime
    Homme Profil pro
    Inscrit en
    Septembre 2007
    Messages
    8 391
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Ile Maurice

    Informations forums :
    Inscription : Septembre 2007
    Messages : 8 391
    Par défaut
    Bonjour,
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    $sql = "SELECT count(*) FROM membre WHERE login='".mysql_escape_string($_POST['login'])."' AND pass_md5='".md5(mysql_escape_string($_POST['pass']))."'";
    On utilise des simple quote pour l'opérateur "=" dans un SQL.

  4. #4
    Membre habitué
    Profil pro
    Inscrit en
    Avril 2010
    Messages
    11
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Avril 2010
    Messages : 11
    Par défaut
    Meme en modifiant ça ne change pas, l'erreur ne venait donc pas de là mais merci

  5. #5
    Modérateur
    Avatar de Vil'Coyote
    Homme Profil pro
    Développeur adélia & Web
    Inscrit en
    Février 2008
    Messages
    4 583
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 44
    Localisation : France, Isère (Rhône Alpes)

    Informations professionnelles :
    Activité : Développeur adélia & Web
    Secteur : Industrie

    Informations forums :
    Inscription : Février 2008
    Messages : 4 583
    Par défaut
    la petite question bête si tu affiche le contenu de ta requête $sql à la reconnexion, cela te donne quoi? histoire de voir s'il ne manque pas des paramètres.
    la vie n'est pas cirrhose des foies ...

    Avant de poster un message Rechercher n'est pas qu'une option.
    FAQ Web - Tuto Web

Discussions similaires

  1. [EDI] Quel est l'éditeur que vous recommandez pour PHP ?
    Par Lana.Bauer dans le forum EDI, CMS, Outils, Scripts et API
    Réponses: 400
    Dernier message: 10/04/2018, 20h08
  2. Quel est le meilleur script PHP de portail (CMS) ?
    Par Lana.Bauer dans le forum EDI, CMS, Outils, Scripts et API
    Réponses: 187
    Dernier message: 18/10/2012, 07h45
  3. L'avenir est-il au PHP ?
    Par Manolo dans le forum Langage
    Réponses: 468
    Dernier message: 11/02/2008, 18h54
  4. [Mail] Loguer l'erreur mail php
    Par Joe Le Mort dans le forum Langage
    Réponses: 1
    Dernier message: 17/02/2007, 19h27

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