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 :

Problème avec les sessions


Sujet :

Langage PHP

  1. #1
    Futur Membre du Club
    Inscrit en
    Mai 2005
    Messages
    14
    Détails du profil
    Informations forums :
    Inscription : Mai 2005
    Messages : 14
    Points : 8
    Points
    8
    Par défaut Problème avec les sessions
    salut tt le monde
    voila mon pb j'ai utlisé une session pour sauvgarder les données d'une formulaire donc aprés la vérification de username et password dont voila 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
    if (isset($_POST['username']) && isset($_POST['password'])) {
            // on vérifie les informations du formulaire, à savoir si le pseudo saisi est bien un pseudo autorisé, de même pour le mot de passe
            if (validate($_POST['username'],md5($_POST['password']))) {
                    // dans ce cas, tout est ok, on peut démarrer notre session
                    // on la démarre :)
                    session_start ();
                    // on enregistre les paramètres de notre visiteur comme variables de session ($login et $pwd) (notez bien que l'on utilise pas le $ pour enregistrer ces variables)
                    $_SESSION['user'] = $_POST['username'];
                    $_SESSION['password'] = $_POST['password'];
                    // on redirige notre visiteur vers une page de notre section membre
                    header ('location: welcome.php');
            } else {
                   $msg='Password incorrect';
                       }
    }
    ce code existe dans une page default.php
    l'autre page ou les informations sont envoyées est appelé welcome.php et contient :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    <?php 
      session_start();
      if(isset($_SESSION['user'])){
        echo $_SESSION['user'];
      }else{
       echo 'error';
      }
     ?>
    et voila ce qui m'affiche
    Warning: session_start(): Cannot send session cache limiter - headers already sent (output started at c:\program files\easyphp1-8\www\ebiznas\welcome.php:1) in c:\program files\easyphp1-8\www\ebiznas\welcome.php on line 2
    .body { SCROLLBAR-FACE-COLOR: #3979bd; SCROLLBAR-HIGHLIGHT-COLOR: #cccc99; SCROLLBAR-SHADOW-COLOR: #666633; SCROLLBAR-3DLIGHT-COLOR: navy; SCROLLBAR-ARROW-COLOR: navy; SCROLLBAR-TRACK-COLOR: #e7e7e7; SCROLLBAR-DARKSHADOW-COLOR: #666633; SCROLLBAR-BASE-COLOR: #e7e7e7 } localhost sachant que le username est localhost
    je sais pas ou est le pb j' ai consulté bcp des tutos mes le pb reste le meme

  2. #2
    Membre éprouvé
    Profil pro
    Inscrit en
    Juillet 2005
    Messages
    774
    Détails du profil
    Informations personnelles :
    Âge : 41
    Localisation : Canada

    Informations forums :
    Inscription : Juillet 2005
    Messages : 774
    Points : 936
    Points
    936
    Par défaut
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    <?php 
      session_start();
      if(isset($_SESSION['user'])){
        echo $_SESSION['user'];
      }else{
       echo 'error';
      }
     ?>
    est ce q ce code se situe tout en haut de ta page welcome.php?

  3. #3
    Futur Membre du Club
    Inscrit en
    Mai 2005
    Messages
    14
    Détails du profil
    Informations forums :
    Inscription : Mai 2005
    Messages : 14
    Points : 8
    Points
    8
    Par défaut
    oui

  4. #4
    Expert éminent
    Avatar de Swoög
    Profil pro
    Inscrit en
    Janvier 2003
    Messages
    6 045
    Détails du profil
    Informations personnelles :
    Âge : 37
    Localisation : France

    Informations forums :
    Inscription : Janvier 2003
    Messages : 6 045
    Points : 8 339
    Points
    8 339
    Par défaut
    il doit y avoir un espace avant le <?php

  5. #5
    Membre éprouvé
    Avatar de ozzmax
    Inscrit en
    Novembre 2005
    Messages
    977
    Détails du profil
    Informations personnelles :
    Âge : 42

    Informations forums :
    Inscription : Novembre 2005
    Messages : 977
    Points : 959
    Points
    959
    Par défaut
    en tout cas session_start(); doit etre la premiere instruction en haut de tout...
    tu ne dois pas le mettre au travers de ton code..comme dans ton post dans un if...

    alors meme dans cette page écris session_start(); après ton <?php
    et ca devrait etre correct

  6. #6
    Futur Membre du Club
    Inscrit en
    Mai 2005
    Messages
    14
    Détails du profil
    Informations forums :
    Inscription : Mai 2005
    Messages : 14
    Points : 8
    Points
    8
    Par défaut
    il doit y avoir un espace avant le <?php
    il y a pas d'espace mon ami Swoög

  7. #7
    Expert éminent
    Avatar de Swoög
    Profil pro
    Inscrit en
    Janvier 2003
    Messages
    6 045
    Détails du profil
    Informations personnelles :
    Âge : 37
    Localisation : France

    Informations forums :
    Inscription : Janvier 2003
    Messages : 6 045
    Points : 8 339
    Points
    8 339
    Par défaut
    quand j'ai dit "il doit", je ne voulais pas dire "il est possible qu'il y ait"
    je veux dire "il doit y avoir un espace avant le <?php"

    parce que session_start(); est à la ligne 2 de ton fichier (comme le stipule ton mesage d'erreur)

    ton message d'erreur est caractéristique du fait qu'un envoie de caractère au navigateur a provoqué l'envoie des headers HTTP.
    de plus, le message d'erreur spécifie aussi que le premier envoie de donné qui provoque le message d'erreur se situe ligne 1 de ce même fichier,

    sachant que ta ligne un contient <?php et qu'il n'y a aucune fonction d'affichage, j'en déduis qu'il y a forcément un caractètre, même invisible qui s'est glissé avant ta balise <?php

    essaie de supprimer la ligne et de la réécrire... ^^

  8. #8
    Membre confirmé
    Profil pro
    Inscrit en
    Juillet 2005
    Messages
    1 221
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juillet 2005
    Messages : 1 221
    Points : 472
    Points
    472
    Par défaut
    C'est très dangereux de passer les paramètres de l'utilisateur dans la session. Si un pirate vol la session il récupère les informations du membre inscrit et peut ensuite se connecter à loisir sur son compte.
    Perso je prend juste l'id de l'utilisateur , ça ne sert à rien au pirate s'il le récupère.

  9. #9
    Membre éprouvé
    Avatar de ozzmax
    Inscrit en
    Novembre 2005
    Messages
    977
    Détails du profil
    Informations personnelles :
    Âge : 42

    Informations forums :
    Inscription : Novembre 2005
    Messages : 977
    Points : 959
    Points
    959
    Par défaut
    +1 psychobob!
    ouin garder le password en session cé plutot louche...une fois authentifier tu devrais juste conserver l'id car tu vas en avoir besoin tout au long j'imagine dans tes requetes...

Discussions similaires

  1. [Cookies] Problème avec les sessions PHP !!!
    Par boukay dans le forum Langage
    Réponses: 4
    Dernier message: 14/02/2006, 17h32
  2. Problème avec les sessions!!!
    Par frutix dans le forum Langage
    Réponses: 2
    Dernier message: 20/01/2006, 11h35
  3. problème avec les sessions
    Par DiverSIG dans le forum Langage
    Réponses: 2
    Dernier message: 28/11/2005, 11h01
  4. Problèmes avec les Sessions
    Par alexthomas dans le forum Langage
    Réponses: 5
    Dernier message: 20/11/2005, 21h53
  5. Problème avec les sessions
    Par philippef dans le forum Langage
    Réponses: 2
    Dernier message: 27/10/2005, 15h19

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