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 :

PHP problème de session


Sujet :

Langage PHP

  1. #1
    Membre actif
    Homme Profil pro
    Architecte technique
    Inscrit en
    Février 2004
    Messages
    477
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Moselle (Lorraine)

    Informations professionnelles :
    Activité : Architecte technique
    Secteur : Service public

    Informations forums :
    Inscription : Février 2004
    Messages : 477
    Points : 223
    Points
    223
    Par défaut PHP problème de session
    Bonjour,

    Je viens de remarquer un problème avec mon site web. Je suis chez Free et j'utilise les session pour sauvegarder des informations sur les utilisateurs.

    Chez moi en utilisant easyphp 1.8 tout fonctionne. Mais chez free il y a un problème. Je m'explique:

    J'ai une page qui permet de s'authentifier (login + mdp). Lorsque l'utilisateur se connecte je fais une vérification par rapport à la base de données. Si l'utilisateur est bien enregistré je sauvegarde son login dans une variable de session.

    De la automatiquement l'utilisateur est redirigé vers la page d'accueil qui écrit bienvenue "nomLogin". Jusque la tout fonctionne encore chez free.

    Le problème survient maintenant, l'utilisateur souhaite voir les dernières news du site et clique sur le lien. Les news s'affichent mais je récupère un login totalement faux. En occurence, celui d'un autre utilisateur.

    Je ne comprends pas du tout surtout que se login je ne le tape jamais alors si vous pouviez m'eclaircir!

    A noter que dans chaque page ou j'utilise des variables de sessions, j'effectue un session_start(). Je récupère ma variable en faisant $_SESSION["login"];

    Merci d'avance!

  2. #2
    Membre régulier
    Inscrit en
    Avril 2006
    Messages
    82
    Détails du profil
    Informations forums :
    Inscription : Avril 2006
    Messages : 82
    Points : 78
    Points
    78
    Par défaut
    alors la il me fodrait un ptit bout de ton code pour pouvoir regarder de facon un peu plus clair...

  3. #3
    Membre actif
    Homme Profil pro
    Inscrit en
    Août 2003
    Messages
    235
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 42
    Localisation : France, Paris (Île de France)

    Informations forums :
    Inscription : Août 2003
    Messages : 235
    Points : 269
    Points
    269
    Par défaut
    as-tu créé ton répertoiren sessions chez Free ?

  4. #4
    Membre régulier
    Inscrit en
    Avril 2006
    Messages
    82
    Détails du profil
    Informations forums :
    Inscription : Avril 2006
    Messages : 82
    Points : 78
    Points
    78
    Par défaut
    euh... ce que je trouve bizarre c'est que tu te retrouve avec un autre nom ... qe celui que t'as rentré.

    Pour ma part tu dois effectuer dans ton code à un moment donné un petite bourde qui fait que tu récupère le mauvais nom mais la j'ais pas assez d'infos sur ce que tu as codé pour te renseigné je vois juste que deja tu sais utiliser une SESSION or ce que ej voudrais c'est plutot voir l'endroi ou tu as fais l'erreur

  5. #5
    Membre actif
    Homme Profil pro
    Inscrit en
    Août 2003
    Messages
    235
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 42
    Localisation : France, Paris (Île de France)

    Informations forums :
    Inscription : Août 2003
    Messages : 235
    Points : 269
    Points
    269
    Par défaut
    Ton test est faux, tu mets dans ta variable session quand l'utilisateru n'a rien entré.

  6. #6
    Membre actif
    Homme Profil pro
    Architecte technique
    Inscrit en
    Février 2004
    Messages
    477
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Moselle (Lorraine)

    Informations professionnelles :
    Activité : Architecte technique
    Secteur : Service public

    Informations forums :
    Inscription : Février 2004
    Messages : 477
    Points : 223
    Points
    223
    Par défaut
    Alors la c'est ce que j'ai dans mon script php une fois que l'utilisateur a valider le formulaire d'authentification.

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
     
    //Ouverture de la session
    session_start();     
     
    // On interdit PHP d'afficher des messages d'erreur
    error_reporting(0);
     
    ...Connexion a la BD et vérification
     
     //Sauvegarde du login dans la variable de session
    $_SESSION["login"]  = $_POST["login"];
    ça c'est ce que j'ai lorsque l'authentification a fonctionné:

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
     
    //Ouverture de la session
    session_start();
     
    $login = $_SESSION["login"];
     
    echo "<p>
    Bienvenue $login <br />
    </p>
    et ça c'est ce que j'ai sur la page qui pose problème:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
     
    <?
    session_start();
     
    echo $_SESSION["login"];
    Ici je me retrouve avec un mauvais login, celui d'un autre utilisateur.

  7. #7
    Membre actif
    Homme Profil pro
    Architecte technique
    Inscrit en
    Février 2004
    Messages
    477
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Moselle (Lorraine)

    Informations professionnelles :
    Activité : Architecte technique
    Secteur : Service public

    Informations forums :
    Inscription : Février 2004
    Messages : 477
    Points : 223
    Points
    223
    Par défaut
    J'ai bin créer mon dossier sessions chez free!

  8. #8
    Membre régulier
    Inscrit en
    Avril 2006
    Messages
    82
    Détails du profil
    Informations forums :
    Inscription : Avril 2006
    Messages : 82
    Points : 78
    Points
    78
    Par défaut
    teste l'existence de tes $_POST avec

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    if(!empty($_POST['nom'])){
    Parce que j'ai un doute sur ce que tu obtien et fais afficher ta variable $_POST ...

  9. #9
    Membre actif
    Homme Profil pro
    Inscrit en
    Août 2003
    Messages
    235
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 42
    Localisation : France, Paris (Île de France)

    Informations forums :
    Inscription : Août 2003
    Messages : 235
    Points : 269
    Points
    269
    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
    //Ouverture de la session
    session_start();     
     
    // On interdit PHP d'afficher des messages d'erreur
    error_reporting(0);
     
    // Verification du formulaire
    if($_POST["login"] != null && $_POST["mdp"] != null)
    {       
            ...Connexion a la BD et vérification
     
           //Sauvegarde du login dans la variable de session
    unset($_SESSION["login"]);
    $_SESSION["login"]  = $_POST["login"];
    }

  10. #10
    Membre actif
    Homme Profil pro
    Architecte technique
    Inscrit en
    Février 2004
    Messages
    477
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Moselle (Lorraine)

    Informations professionnelles :
    Activité : Architecte technique
    Secteur : Service public

    Informations forums :
    Inscription : Février 2004
    Messages : 477
    Points : 223
    Points
    223
    Par défaut
    Je viens de faire un test sur le post de login! C'est bon le login est bien réceptionné avant le test d'authentification.

  11. #11
    Membre régulier
    Inscrit en
    Avril 2006
    Messages
    82
    Détails du profil
    Informations forums :
    Inscription : Avril 2006
    Messages : 82
    Points : 78
    Points
    78
    Par défaut
    ou alors :

    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
    //Ouverture de la session
    session_start();     
     
    // On interdit PHP d'afficher des messages d'erreur
    error_reporting(0);
     
    // Verification du formulaire
    if( !empty($_POST["login"]) && !empty($_POST["mdp"]) )
    {       
            ...Connexion a la BD et vérification
     
           //Sauvegarde du login dans la variable de session
    unset($_SESSION["login"]);
    $_SESSION["login"]  = $_POST["login"];
    }
    [/quote]

  12. #12
    Membre actif
    Homme Profil pro
    Architecte technique
    Inscrit en
    Février 2004
    Messages
    477
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Moselle (Lorraine)

    Informations professionnelles :
    Activité : Architecte technique
    Secteur : Service public

    Informations forums :
    Inscription : Février 2004
    Messages : 477
    Points : 223
    Points
    223
    Par défaut
    Question:

    A la fin de mon authentification je fais une redirection vers la page bienvenue monsieur... en faisant:

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
     
    header("Location: <a href="http://anthony.pfeffer.free.fr/index.php" target="_blank">http://anthony.pfeffer.free.fr/index.php</a>");
    Est ce que le header ne me perd pas ma session?

  13. #13
    Membre régulier
    Inscrit en
    Avril 2006
    Messages
    82
    Détails du profil
    Informations forums :
    Inscription : Avril 2006
    Messages : 82
    Points : 78
    Points
    78
    Par défaut
    normalement non sauf si tu utilise un unset de session quelques part dans ton code et comme je vois que c'est vers ton index que renvoit ton header je me dis qu'il dois y en avoir un dans le coin

  14. #14
    Membre actif
    Homme Profil pro
    Inscrit en
    Août 2003
    Messages
    235
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 42
    Localisation : France, Paris (Île de France)

    Informations forums :
    Inscription : Août 2003
    Messages : 235
    Points : 269
    Points
    269
    Par défaut
    Enleves ton header et fait un echo de ta session juste en dessous de l'unset et de l'initialisation de la session. Tu verras theoriqueemnt le bon utilisateur.
    Si avec le header ca plante, ta session doit être écrasé entre ces 2 codes.

  15. #15
    Membre actif
    Homme Profil pro
    Architecte technique
    Inscrit en
    Février 2004
    Messages
    477
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Moselle (Lorraine)

    Informations professionnelles :
    Activité : Architecte technique
    Secteur : Service public

    Informations forums :
    Inscription : Février 2004
    Messages : 477
    Points : 223
    Points
    223
    Par défaut
    je viens d'essayer avec le unset mais sans succès! Auparavant je n'ai jamais utilisé unset!

  16. #16
    Membre actif
    Homme Profil pro
    Inscrit en
    Août 2003
    Messages
    235
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 42
    Localisation : France, Paris (Île de France)

    Informations forums :
    Inscription : Août 2003
    Messages : 235
    Points : 269
    Points
    269
    Par défaut
    Citation Envoyé par Pfeffer
    je viens d'essayer avec le unset mais sans succès! Auparavant je n'ai jamais utilisé unset!
    Ben tu as peut etre un autre $_SESSION['login'] = ... incrusté, ce qui expliquerait ton écrasement de variable.

  17. #17
    Membre régulier
    Inscrit en
    Avril 2006
    Messages
    82
    Détails du profil
    Informations forums :
    Inscription : Avril 2006
    Messages : 82
    Points : 78
    Points
    78
    Par défaut
    affiche ton index pour que j'y hete un coup d'oeil...

  18. #18
    Membre actif
    Homme Profil pro
    Architecte technique
    Inscrit en
    Février 2004
    Messages
    477
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Moselle (Lorraine)

    Informations professionnelles :
    Activité : Architecte technique
    Secteur : Service public

    Informations forums :
    Inscription : Février 2004
    Messages : 477
    Points : 223
    Points
    223
    Par défaut
    j'ai enlevé le header! Une fois l'authentiication effectuée j'ai bien la bonne valeur dans ma variable!

    Donc ma session doit être écrasée! Mais comment est ce possible ?

  19. #19
    Membre actif
    Homme Profil pro
    Inscrit en
    Août 2003
    Messages
    235
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 42
    Localisation : France, Paris (Île de France)

    Informations forums :
    Inscription : Août 2003
    Messages : 235
    Points : 269
    Points
    269
    Par défaut
    Citation Envoyé par Pfeffer
    j'ai enlevé le header! Une fois l'authentiication effectuée j'ai bien la bonne valeur dans ma variable!

    Donc ma session doit être écrasée! Mais comment est ce possible ?
    Ben tu dois avoir forcémment un code qui l'écrase quelquepart. Envoie nous le code qu'il y a entre.

  20. #20
    Membre actif
    Homme Profil pro
    Architecte technique
    Inscrit en
    Février 2004
    Messages
    477
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Moselle (Lorraine)

    Informations professionnelles :
    Activité : Architecte technique
    Secteur : Service public

    Informations forums :
    Inscription : Février 2004
    Messages : 477
    Points : 223
    Points
    223
    Par défaut
    Voivi mon index.php:

    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
     
    <?php
    session_start();
     
    if(isset($_GET["newContent"]))
    {
     //utilisateur souhaitant afficher une information
     //qu'il soit connecté ou non. 
     $content = $_GET["newContent"];  
    }else $content = "Content/News/news1.php";
     
    if(isset($_SESSION["connect"]) && !isset($_GET["newContent"])) 
    {
     switch($_SESSION["connect"])
     {
     //utilisateur ayant fait une erreur de saisie de mdp ou de login
     case "0": $content = "Content/Text/connectionDeny.php";         
              break;
     //utilisateur connecté
     case "1": $content = "Content/Text/connectionSuccessfull.php";
                 break;
     //Problème de connexion 
     default: $content = "Content/Text/connectionProblem.php";
           break;
     } 
    }
    ?>
    après c'es du code html basique avec inclusion de module php mais qui n'utilise en rien les variables de sessions.

Discussions similaires

  1. [MySQL] problème de session php
    Par carmen256 dans le forum PHP & Base de données
    Réponses: 5
    Dernier message: 16/04/2009, 20h39
  2. [AJAX] AJAX & Session php problème.
    Par prosciuto dans le forum AJAX
    Réponses: 9
    Dernier message: 09/04/2009, 12h17
  3. Problème de SESSION avec les "pseudo-frame" PHP
    Par kergad dans le forum Langage
    Réponses: 10
    Dernier message: 24/05/2008, 01h12
  4. problème PHP avec les sessions
    Par soufian2290 dans le forum Langage
    Réponses: 2
    Dernier message: 24/01/2007, 18h00
  5. Problème de sessions PHP/SQL
    Par Mousk dans le forum Langage
    Réponses: 6
    Dernier message: 11/08/2006, 15h02

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