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

Langage PHP Discussion :

Login Box problème session


Sujet :

Langage PHP

  1. #1
    Candidat au Club
    Profil pro
    Étudiant
    Inscrit en
    Octobre 2008
    Messages
    2
    Détails du profil
    Informations personnelles :
    Âge : 33
    Localisation : France

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Octobre 2008
    Messages : 2
    Points : 2
    Points
    2
    Par défaut Login Box problème session
    Bonjour à tous,

    Ayant un peu la tête en vrac depuis ce matin à me taper du code etc pour un projet d'étude, je me suis attaqué tant bien que mal à mettre en place un système de "login" tout simple en php/MySQL.
    Je suis comme qui dirait presque au poil de réussir mais le script ne fonctionne pas dans sa totalité. J'utilise pour identifier mes utilisateurs une session qui prend la valeur "true" lorsque le l'utilisateur est trouvé et que le password associé correspond à l'enregistrement dans la base de donnée. (Je ne crypte pas les mots de pass, le projet est un simple concept et non une réel optique de mise en service dans une entreprise.
    Différents résultats obtenu avec le script:
    -> Si utilisateur non trouvé, le formulaire reste avec un message d'erreur au dessus "Nom d'utilisateur non trouvé" (fonctionne)
    -> Si utilisateur trouvé mais que le password ne correspond pas, message d'erreur = "Le mot de pass ne correspond pas à l'identifiant entré" (fonctionne)
    -> Si utilisateur trouvé et password correspond, le module de login disparait pour laisser place à "Bienvenue 'Utilisateur'! Logout" (ne fonctionne pas)

    Pour ce dernier cas de figure qui ne fonctionne pas, le résultat me renvoi complètement un truc vide, comme si le "if else" ne fonctionnait pas du tout et donc, le formulaire n'apparait plus du tout tant que je ne met pas ma $_SESSION à false manuellement.

    Voici mon code, si une âme charitable pourrait jeter un oeil s'il voit le pourquoi du problème.

    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
    71
    72
    73
    74
    75
    76
    77
    78
    79
    80
    81
    82
    83
    84
    85
    <?php
            include("admin/fonctions.php");
            connexion(); // connexion base de donnée
            getConfig($titre_site, $banniere, $responsable);         // récupération des infos générales du site
     
            session_start();
     
            $errorMessage = ''; // message d'erreur vide
            if (isset($_POST['login']) && isset($_POST['pw'])) {         // Si load de la page avec le formulaire de login
                    $search_ident="SELECT id_user, login FROM utilisateur";     // Selection de tous les users
                    $req=mysql_query($search_ident) or die('Erreur SQL !<br />'.$search_ident.'<br />'.mysql_error());
                    $ident_trouve=false;  
                    while ($data = mysql_fetch_array($req))
                    {
                            if($data['login']==$_POST['login']){  // Si le login entré correspond à un enregistrement de la colonne "login"
                                    $ident_trouve=true;    // utilisateur trouvé
                                    $get_id_user=$data['id_user'];  // récupère l'id pour selectionner la ligne entière (password)
                                    $name_user=$data['login'];   // sauvegarde du nom de l'user
                                    break;
                            }
                    }
     
                    if($ident_trouve==false){
                            $errorMessage="<font color='red'>Nom d'utilisateur non trouvé</font>";   //utilisateur non trouvé
                    }
                    else{
                            $get_enregistrement_user="SELECT password FROM utilisateur WHERE id_user='{$get_id_user}'";  // Selection de la ligne entière de l'utilisateur concerné
                            $req=mysql_query($get_enregistrement_user) or die('Erreur SQL !<br />'.$get_enregistrement_user.'<br />'.mysql_error());
                            $identification=false;
                            while ($data = mysql_fetch_array($req))
                            {
                                    if($data['password']==$_POST['pw']){ // si password correspond à celui de la ligne
                                    $identification=true;  // L'identification pourra être faite
                                    break;
                                    }
                            }
                            if($identification){  // Si ident peut être faite
                                    // On met la session en route (les identifiants/mdp correspondent à un enregistrement de la table)
                                    $_SESSION['basic_is_logged_in'] = true;
     
                                    // On redire vers la même page mais en étant logué
                                    header('Location: index.php');
                                    exit;
                            }
                            else{
                                    $errorMessage = "<font color='red'>Le mot de pass ne correspond pas à l'identifiant entré</font>";
                            }      
                    }
            }
    ?>
     
    <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd">
    <html xmlns="http://www.w3.org/1999/xhtml" xml:lang="en" lang="en">
    <head>
    <title><?php echo $titre_site ?></title>
    <meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
    </head>
    <body id="page1">
    <div class="tail-top">
            <div class="tail-bottom">
                    <div class="body-bg">
                            <!-- HEADER -->
                            <div id="header">
                                    <div class="extra"><img src="images/header-img.jpg" alt="" /></div>
                                    <div class="row-1">
                                            <div class="fleft"><a href="home.php"><img src="images/logo.gif" alt="" /></a></div>
                        <div class="fright">
                        <?php
     
                                            if ($errorMessage == '' && $_SESSION['basic_is_logged_in'] == true) {
                                                    echo "Bienvenue ".$name_user."! &nbsp;&nbsp; <a href='logout.php'><img src='images/logout.png'></a>";
                                            }
                                            else{
                                                    if ($errorMessage != ''){
                                                    echo $errorMessage."<br>";
                                                    }
                            echo "<form action='index.php' method='post'>
                                                            Identifiant: <input type='text' name='login' size='9' />
                                                            Mot de pass: <input type='password' name='pw' size='9' />
                                                            <input type='image' src='images/login.png' /><br />
                                                            <font size='-2'><a href='registration.php'>S'enregistrer</a>  |  <a href='passwordlost.php'>Mot de pass perdu?</a>  |  
                                                            <a href='admin/administration.php'><img src='images/administration-button.png' title='Panel d\'administration' /></a></font>
                                                    </form>";
                                            }
                                            ?>
    Voila, merci d'avance pour l'aide que je pourrais avoir.

    Apo.

  2. #2
    Candidat au Club
    Profil pro
    Étudiant
    Inscrit en
    Octobre 2008
    Messages
    2
    Détails du profil
    Informations personnelles :
    Âge : 33
    Localisation : France

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Octobre 2008
    Messages : 2
    Points : 2
    Points
    2
    Par défaut
    Problème résolu en fait, c'était la $name_user qui était pas défini car comme la page se reload, elle n'était pas sauvegarder comme variable de session.

    Donc, si jamais quelqu'un veut le code:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    while ($data = mysql_fetch_array($req))
                    {
                            if($data['login']==$_POST['login']){
                                    $ident_trouve=true;
                                    $get_id_user=$data['id_user'];
                                    $_SESSION['name_user']=$_POST['login'];
                                    break;
                            }
                    }
    Et dans le body:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    <?php
                                            if ($_SESSION['basic_is_logged_in'] == true) {
     
                                                    echo "Bienvenue <b>".$_SESSION['name_user']."</b>! &nbsp;&nbsp; <a href='logout.php'><img src='images/logout.png'></a>";
                                            }
                                            else{
                                                    if ($errorMessage != ''){
    ...
    Bonne soirée.

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

Discussions similaires

  1. [live box] problèmes d'ajout d'un pc en Wi-Fi
    Par Mousk dans le forum Dépannage et Assistance
    Réponses: 2
    Dernier message: 11/07/2006, 11h42
  2. problème session actualisation !
    Par lafracas dans le forum Langage
    Réponses: 1
    Dernier message: 11/06/2006, 16h04
  3. Problème session
    Par mLk92 dans le forum Langage
    Réponses: 7
    Dernier message: 24/03/2006, 14h17
  4. [Configuration] Problème avec un script de login utilisant une session
    Par HNT dans le forum EDI, CMS, Outils, Scripts et API
    Réponses: 2
    Dernier message: 27/09/2005, 20h56
  5. Problème session
    Par pete007 dans le forum ASP
    Réponses: 8
    Dernier message: 11/03/2004, 17h55

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