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 :

[Sécurité] Problème avec des variables de session


Sujet :

Langage PHP

  1. #1
    Rédacteur

    Avatar de zoom61
    Homme Profil pro
    ...
    Inscrit en
    Janvier 2005
    Messages
    9 430
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Haute Vienne (Limousin)

    Informations professionnelles :
    Activité : ...
    Secteur : Industrie

    Informations forums :
    Inscription : Janvier 2005
    Messages : 9 430
    Billets dans le blog
    11
    Par défaut [Sécurité] Problème avec des variables de session
    Salut,

    J'ai parcourus la FAQ et le forum, et il me semble avoir fait correctement les choses, mais je ne vois pas où est mon erreur

    Cela fonctionne correctement en passant de la page1.php à la page2.php, mais ensuite les sessions ne fonctionnent plus

    Est-que quelqu'un peut me dire où j'ai fait une erreur
    Merci.

    Voici mes fichiers : Pièce jointe 3800

    J'espère que je me suis bien fait comprendre.

  2. #2
    Membre Expert
    Profil pro
    Inscrit en
    Mai 2004
    Messages
    792
    Détails du profil
    Informations personnelles :
    Localisation : Belgique

    Informations forums :
    Inscription : Mai 2004
    Messages : 792
    Par défaut
    Essaye de mettre le session_start() avant tout le reste. En première ligne de chaque page.

  3. #3
    Rédacteur

    Avatar de zoom61
    Homme Profil pro
    ...
    Inscrit en
    Janvier 2005
    Messages
    9 430
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Haute Vienne (Limousin)

    Informations professionnelles :
    Activité : ...
    Secteur : Industrie

    Informations forums :
    Inscription : Janvier 2005
    Messages : 9 430
    Billets dans le blog
    11
    Par défaut
    Citation Envoyé par ripat
    Essaye de mettre le session_start() avant tout le reste. En première ligne de chaque page.
    Mais sur de nombreuses pages, session_start() est la première commande et ces pages ne fonctionnent pas pour autant

  4. #4
    Membre Expert
    Profil pro
    Inscrit en
    Mai 2004
    Messages
    792
    Détails du profil
    Informations personnelles :
    Localisation : Belgique

    Informations forums :
    Inscription : Mai 2004
    Messages : 792
    Par défaut
    Pour voir où ça coince, débogue chaque page avec un:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    echo '<pre>'; print_r($_SESSION);
    Juste après le session_start().

  5. #5
    Membre Expert
    Avatar de yiannis
    Profil pro
    Inscrit en
    Septembre 2005
    Messages
    1 494
    Détails du profil
    Informations personnelles :
    Âge : 60
    Localisation : France

    Informations forums :
    Inscription : Septembre 2005
    Messages : 1 494
    Par défaut
    Bonjour,

    places tes session_start() avant tes require()

  6. #6
    Rédacteur

    Avatar de zoom61
    Homme Profil pro
    ...
    Inscrit en
    Janvier 2005
    Messages
    9 430
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Haute Vienne (Limousin)

    Informations professionnelles :
    Activité : ...
    Secteur : Industrie

    Informations forums :
    Inscription : Janvier 2005
    Messages : 9 430
    Billets dans le blog
    11
    Par défaut
    Salut,

    J'ai bien placé les session_start() avant les require(). Mais cela ne fonctionne pas...

    De plus j'ai essayé les pages suivantes, et cela ne fonctionne pas pour la page3.php Alors que cela a bien fonctionné sur la page2.php

    Est-que quelqu'un peut me dire ce qui ne va pas D'avance merci. Car cela fait un certain temps que je me prends la tête dessus .

    page1.php
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    <?php
    session_start();
    ?>
    <html>
    <body>
    <form method="POST" action="page2.php">
    Entrez votre nom : <input type="TEXT" name="nom">
    <input type="SUBMIT" value="OK">
    </form>
    </body>
    </html>
    page2.php
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    <?php
    session_start();
    $nom = $_POST['nom'];
    $_SESSION['nom'] = $nom;
    ?>
    <html>
    <body>
    Bienvenue sur ce site <b><?php echo $nom; ?></b><br>
    Regardons ce qui se passe sur la 
    <a href="page3.php">page</a> suivante.<br>
    </body>
    </html>
    page3.php
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    <?php
    session_start();
    $nom = $_SESSION['nom'];
    ?>
    <html>
    <body>
    Vous êtes toujours parmi nous <b><?php echo $nom; ?></b>.<br>
    </body>
    </html>

  7. #7
    Membre Expert
    Profil pro
    Inscrit en
    Mai 2004
    Messages
    792
    Détails du profil
    Informations personnelles :
    Localisation : Belgique

    Informations forums :
    Inscription : Mai 2004
    Messages : 792
    Par défaut
    Tout me semble correct et devrait marcher. As-tu accès aux fichiers de session (dans le répertoire défini dans session.save_path). Si oui surveille ce que se passe avec le fichier de session. S'il disparaît de manière inattentue, vérifie les valeurs des variables de config suivantes:

    session.gc_maxlifetime
    session.gc_divisor
    session.gc_probability

  8. #8
    Rédacteur

    Avatar de zoom61
    Homme Profil pro
    ...
    Inscrit en
    Janvier 2005
    Messages
    9 430
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Haute Vienne (Limousin)

    Informations professionnelles :
    Activité : ...
    Secteur : Industrie

    Informations forums :
    Inscription : Janvier 2005
    Messages : 9 430
    Billets dans le blog
    11
    Par défaut
    Comment je fais pour vérifier les variables de config
    Citation Envoyé par ripat
    session.gc_maxlifetime
    session.gc_divisor
    session.gc_probability

  9. #9
    Membre Expert
    Profil pro
    Inscrit en
    Mai 2004
    Messages
    792
    Détails du profil
    Informations personnelles :
    Localisation : Belgique

    Informations forums :
    Inscription : Mai 2004
    Messages : 792

  10. #10
    Rédacteur

    Avatar de zoom61
    Homme Profil pro
    ...
    Inscrit en
    Janvier 2005
    Messages
    9 430
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Haute Vienne (Limousin)

    Informations professionnelles :
    Activité : ...
    Secteur : Industrie

    Informations forums :
    Inscription : Janvier 2005
    Messages : 9 430
    Billets dans le blog
    11
    Par défaut
    Je ne comprends pas, je fais quoi avec phpinfo()

    Ma question est peut-être bête, mais je ne vois vraiment pas.

  11. #11
    Membre Expert
    Profil pro
    Inscrit en
    Mai 2004
    Messages
    792
    Détails du profil
    Informations personnelles :
    Localisation : Belgique

    Informations forums :
    Inscription : Mai 2004
    Messages : 792
    Par défaut
    Tu exécutes un script avec:

  12. #12
    Rédacteur

    Avatar de zoom61
    Homme Profil pro
    ...
    Inscrit en
    Janvier 2005
    Messages
    9 430
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Haute Vienne (Limousin)

    Informations professionnelles :
    Activité : ...
    Secteur : Industrie

    Informations forums :
    Inscription : Janvier 2005
    Messages : 9 430
    Billets dans le blog
    11
    Par défaut
    Je crée un autre page avec ce code, ou je le mets dans une de mes pages (si oui à quel endroit !).

  13. #13
    Membre Expert
    Profil pro
    Inscrit en
    Mai 2004
    Messages
    792
    Détails du profil
    Informations personnelles :
    Localisation : Belgique

    Informations forums :
    Inscription : Mai 2004
    Messages : 792
    Par défaut
    Tu crées uns page à part avec uniquement cette ligne phpinfo(). Tu accèderas ainsi (en principe) à toutes tes variables de config. Pourrais-tu préciser également type de serveur (OS et mutualisé/dédié).

  14. #14
    Rédacteur

    Avatar de zoom61
    Homme Profil pro
    ...
    Inscrit en
    Janvier 2005
    Messages
    9 430
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Haute Vienne (Limousin)

    Informations professionnelles :
    Activité : ...
    Secteur : Industrie

    Informations forums :
    Inscription : Janvier 2005
    Messages : 9 430
    Billets dans le blog
    11
    Par défaut
    Je travaille en local avec Vertrigo Serv sous WinXP Familiale.

  15. #15
    Rédacteur

    Avatar de zoom61
    Homme Profil pro
    ...
    Inscrit en
    Janvier 2005
    Messages
    9 430
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Haute Vienne (Limousin)

    Informations professionnelles :
    Activité : ...
    Secteur : Industrie

    Informations forums :
    Inscription : Janvier 2005
    Messages : 9 430
    Billets dans le blog
    11
    Par défaut
    Voici les valeurs que j'obtiens en faisant phpinfo():

    session.gc_maxlifetime 1440 1440
    session.gc_divisor 100 100
    session.gc_probability 1 1
    Local Value Master Value

    Voilà, j'espère que cela permettra de résoudre mon problème.

  16. #16
    Membre Expert
    Profil pro
    Inscrit en
    Mai 2004
    Messages
    792
    Détails du profil
    Informations personnelles :
    Localisation : Belgique

    Informations forums :
    Inscription : Mai 2004
    Messages : 792
    Par défaut
    Rien d'anormal de ce côté non plus.

    As-tu été voir ce qui se passait dans les fichiers de session de ton serveur?

    Ils se trouvent dans le répertoire défini dans session.save_path. Vérifie s'il n'est pas effacé entre deux pages ou/et si son contenu n'est pas changé.

    Modus operandi:
    page1.php
    vérifier fichier session
    page2.php
    vérifier fichier session
    page3.php
    vérifier fichier session

  17. #17
    Rédacteur

    Avatar de zoom61
    Homme Profil pro
    ...
    Inscrit en
    Janvier 2005
    Messages
    9 430
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Haute Vienne (Limousin)

    Informations professionnelles :
    Activité : ...
    Secteur : Industrie

    Informations forums :
    Inscription : Janvier 2005
    Messages : 9 430
    Billets dans le blog
    11
    Par défaut
    Citation Envoyé par ripat
    session.save_path
    Je ne trouve pas le répertoire !

    C'est Vertrigo Serv que j'utilise

  18. #18
    Membre Expert
    Profil pro
    Inscrit en
    Mai 2004
    Messages
    792
    Détails du profil
    Informations personnelles :
    Localisation : Belgique

    Informations forums :
    Inscription : Mai 2004
    Messages : 792
    Par défaut
    Citation Envoyé par zoom61
    Je ne trouve pas le répertoire !


    Quelle est la valeur de session.save_path dans ton phpinfo()?

    Elle te donnera le répertoire où sont stockés les fichiers de session.

  19. #19
    Rédacteur

    Avatar de zoom61
    Homme Profil pro
    ...
    Inscrit en
    Janvier 2005
    Messages
    9 430
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Haute Vienne (Limousin)

    Informations professionnelles :
    Activité : ...
    Secteur : Industrie

    Informations forums :
    Inscription : Janvier 2005
    Messages : 9 430
    Billets dans le blog
    11
    Par défaut
    Toutes les valeurs contenues dans la commande phpinfo() sont les suivantes :Pièce jointe 3801

    J'espère que tu trouveras la solution à mon problème, car j'ai essayé Wamp5, et j'ai toujours la même chose

  20. #20
    Membre Expert
    Profil pro
    Inscrit en
    Mai 2004
    Messages
    792
    Détails du profil
    Informations personnelles :
    Localisation : Belgique

    Informations forums :
    Inscription : Mai 2004
    Messages : 792
    Par défaut
    Apparemment tu n'as pas de valeur dans la variable de config session.save_path. Je ne connais pas la valeur par défaut sous windows (c:\tmp ?) mais essaye de faire un echo session_save_path(); dans un script pour voir.

    Une fois que tu as trouvé où php dépose ses fichiers de session, vas-y voir ce qui se passe.

    Si ça ne marche pas, définis une valeur pour cette variable dans ta config. Et mets un répertoire où php pourra écrire et lire (droits). Ne pas oublier de redémarrer ton serveur après les modifications de ta config.

Discussions similaires

  1. problème avec les variables de session
    Par Lusso dans le forum Langage
    Réponses: 4
    Dernier message: 14/01/2010, 15h49
  2. Problème avec les variables de session
    Par L'aigle de Carthage dans le forum Langage
    Réponses: 8
    Dernier message: 14/04/2008, 17h20
  3. [fmincon] Problème avec des variables de classe Single
    Par Wassim123 dans le forum MATLAB
    Réponses: 5
    Dernier message: 11/10/2007, 17h01
  4. Réponses: 6
    Dernier message: 12/09/2007, 17h31
  5. Réponses: 15
    Dernier message: 31/01/2007, 22h03

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