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 :

Variable session non retenue / problème sur Firefox


Sujet :

Langage PHP

  1. #1
    Nouveau membre du Club
    Inscrit en
    Mai 2003
    Messages
    46
    Détails du profil
    Informations forums :
    Inscription : Mai 2003
    Messages : 46
    Points : 29
    Points
    29
    Par défaut Variable session non retenue / problème sur Firefox
    Bonjour,

    J'ai une page register.php ou j'inclus à son début un common.php.
    La 1ere instruction dans common.php est session_start().

    Dans cette page register.php, je génère un code aléatoire que le user doit saisir pour s'assurer que ce n'est pas un bot.
    L'image aléatoire est générée à l'aide d'un fichier random.php ayant le code suivant :

    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
     
    include("common.php");
     
    $RandomStr = md5(microtime());// md5 to generate the random string 
     
    $ResultStr = strtoupper(substr($RandomStr,0,5));//trim 5 digit  
     
    $NewImage =imagecreatefromjpeg("../images/img.jpg");//image create by existing image and as back ground  
     
    $LineColor = imagecolorallocate($NewImage,233,239,239);//line color  
    $TextColor = imagecolorallocate($NewImage, 255, 255, 255);//text color-white 
     
    imageline($NewImage,1,1,40,40,$LineColor);//create line 1 on image  
    imageline($NewImage,1,100,60,0,$LineColor);//create line 2 on image  
     
    imagestring($NewImage, 5, 12, 2, $ResultStr, $TextColor);// Draw a random string horizontally  
     
    $_SESSION['EWEKEY'] = md5($ResultStr);// carry the data through session 
     
    header("Content-type: image/jpeg");// out out the image  
     
    imagejpeg($NewImage);//Output image to browser
    Donc dans qqe part dans register.php, j'ai ceci :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    <img src='../random.php'>

    Mon problème c'est que dans IE, tout fonctionne à merveille, alors que dans Firefox, je n'obtiens rien dans $_SESSION['EWEKEY'] qui est sensé garder le code généré pour que je fasse mes tests dans regsiter.php.

    Quand je désactive les deux lignes
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    header("Content-type: image/jpeg");// out out the image  
     
    imagejpeg($NewImage);//Output image to browser
    et que j'affiche $_SESSION['EWEKEY'], je trouve qu'elle a une valeur, visible à partir de register.php & bien sur random.php.
    Dès que je réactive les deux lignes qui rendent l'image, ça marche plus...

    Auriez-vous une idée sur l'origine du problème?

    Merci d'avance

  2. #2
    Membre confirmé
    Inscrit en
    Mai 2002
    Messages
    673
    Détails du profil
    Informations forums :
    Inscription : Mai 2002
    Messages : 673
    Points : 624
    Points
    624
    Par défaut
    J'ai au moins une idée d'ou le problème ne vient pas, c'est de ton navigateur... Tout ce qui a un rapport avec les session que ton navigateur passe d'une page à l'autre, c'est l'id de session. Si ça passe bien, tu as bien acces à toutes tes variables de session, dans le cas contraire, tu les perds toutes.

    Comment fais tu (extrait de code) pour tester le contenu de ta variable de session ?
    Si vous avez un message d'erreur, n'oubliez pas de le lire, la réponse à votre problème est surement dedans !

  3. #3
    Nouveau membre du Club
    Inscrit en
    Mai 2003
    Messages
    46
    Détails du profil
    Informations forums :
    Inscription : Mai 2003
    Messages : 46
    Points : 29
    Points
    29
    Par défaut
    ce que je fais dans la page register.php c'est ça:

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
     
    if ($_POST['save']) {
       if (md5($_POST["rnd"]) == $_SESSION["EWEKEY"]) {
           // Entrer ici veut dire que le code saisi par le user est correct
           // $_SESSION['EWEKEY'] est la variable générée par le src de l'image
           // aléatoire qui est random.php
       }
     
       ...
    }
    J'étais étonné de voir aussi que ça bloque uniquement sur FF, car logiquement ça n'a rien à voir avec le navigateur puisque c'est côté php que tout ceci se fait ...

  4. #4
    Nouveau membre du Club
    Inscrit en
    Mai 2003
    Messages
    46
    Détails du profil
    Informations forums :
    Inscription : Mai 2003
    Messages : 46
    Points : 29
    Points
    29
    Par défaut
    je viens de refaire un test sur IE et ... ça ne marche pas. Je suppose que c'était un problème de cache.

  5. #5
    Nouveau membre du Club
    Inscrit en
    Mai 2003
    Messages
    46
    Détails du profil
    Informations forums :
    Inscription : Mai 2003
    Messages : 46
    Points : 29
    Points
    29
    Par défaut
    je comprends plus rien .... ça marche vraiment sur IE et pas FF ...

    d'ailleurs, quand je tape entrée le submit du formulaire ne marche pas, faut que je clique sur le bouton .... maaaarre.

  6. #6
    Membre confirmé
    Inscrit en
    Mai 2002
    Messages
    673
    Détails du profil
    Informations forums :
    Inscription : Mai 2002
    Messages : 673
    Points : 624
    Points
    624
    Par défaut
    et t'as mis un echo '---'.$_SESSION["EWEKEY"].'---'; qui te renvoi vraiment rien ???

    ps : les '---', c'est juste pour localiser le echo a l'affichage...
    Si vous avez un message d'erreur, n'oubliez pas de le lire, la réponse à votre problème est surement dedans !

  7. #7
    Nouveau membre du Club
    Inscrit en
    Mai 2003
    Messages
    46
    Détails du profil
    Informations forums :
    Inscription : Mai 2003
    Messages : 46
    Points : 29
    Points
    29
    Par défaut
    absolument.

    quand j'exécute random.php en désactivant le header d'affichage de l'image, j'ai une valeur dan $_SESSION['EWEKEY'].

    mais quand j'essaye d'afficher sa valeur à partir de register.php, ça marche pas. J'ai rien.

  8. #8
    Nouveau membre du Club
    Inscrit en
    Mai 2003
    Messages
    46
    Détails du profil
    Informations forums :
    Inscription : Mai 2003
    Messages : 46
    Points : 29
    Points
    29
    Par défaut
    je reviens vers ce projet et je suis toujours dans la même impasse.
    c'est comme si la session n'existait pas!

    d'ailleurs j'ai un problème similaire dans d'autres pages :
    par exemple dans une page upload.php, j'ai ça au début :

    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
     
    <?php
    .....
    if ($_POST["btn_save"]) {
       $_SESSION["MSG"] = "Mon message";
       header("Location: ?msg=ok");
    }
     
    ...
    ?>
    <html>
    <head> bla bla bla bla </head>
    <body>
    <?php if ($_SESSION["MSG"]) { ?>
    <p>IL Y A UN MESSAGE </p>
    <?php } ?>
    </body>
    Ben dans l'exemple ci dessus, il ne m'affiche jamais le message !
    pourtant en faisant un echo et un exit dans le if ($_POST["btn_save"]), je trouve bel et bien la valeur que j'ai mis dans $_SESSION["MSG"]

    Ca me rend fou ce truc ...
    Any idea ?

  9. #9
    Jeh
    Jeh est déconnecté
    Membre actif Avatar de Jeh
    Profil pro
    Inscrit en
    Septembre 2003
    Messages
    203
    Détails du profil
    Informations personnelles :
    Âge : 42
    Localisation : France, Maine et Loire (Pays de la Loire)

    Informations forums :
    Inscription : Septembre 2003
    Messages : 203
    Points : 250
    Points
    250
    Par défaut session_write_close
    As-tu essayé avec un avant ton ?
    Verre vide je te plains, verre plein, je te vide.

  10. #10
    Nouveau membre du Club
    Inscrit en
    Mai 2003
    Messages
    46
    Détails du profil
    Informations forums :
    Inscription : Mai 2003
    Messages : 46
    Points : 29
    Points
    29
    Par défaut
    oui rien à faire ... même chose, les sessions ne marche pas dans cette page bien précise.
    En me loggant dans mon site après, ça marche, je retrouve des valeurs entre les pages ...je comprends vraiment pas ce qui se passe.

  11. #11
    Candidat au Club
    Profil pro
    Inscrit en
    Avril 2007
    Messages
    8
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Avril 2007
    Messages : 8
    Points : 2
    Points
    2
    Par défaut
    J'ai le meme probleme...

    As tu trouvé une solution ?

    merci

Discussions similaires

  1. Réponses: 3
    Dernier message: 05/06/2013, 16h37
  2. Réponses: 27
    Dernier message: 16/04/2013, 11h09
  3. [PHP 5.4] Problème sur Firefox pour téléchargement de fichier (readfile)
    Par guillaume_74 dans le forum Langage
    Réponses: 1
    Dernier message: 13/11/2009, 10h26
  4. Variable Public non retenue
    Par Swiper dans le forum Macros et VBA Excel
    Réponses: 13
    Dernier message: 29/08/2007, 12h16
  5. Problème sur firefox
    Par AlphonseBrown dans le forum Général JavaScript
    Réponses: 3
    Dernier message: 30/06/2006, 10h13

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