guill76
Messages postés193Date d'inscriptionmercredi 24 août 2005StatutMembreDernière intervention 3 juin 2016
-
10 sept. 2006 à 22:24
guill76
Messages postés193Date d'inscriptionmercredi 24 août 2005StatutMembreDernière intervention 3 juin 2016
-
13 sept. 2006 à 19:10
Salut,
SI Quelqu'un pouvait m'expliquer le pb suivant et comment le résoudre:
Dans le corps de mon script principal index.php , j'insere une balise image echo ''
Dans le fichier img.php se trouve l'instanciation d'un objet de classe image ainsi qu'une methode qui renvoit l'image créée (la seule sortie sur cette page avec son header bien sur).
Lors de l'appel d'une méthode de cette classe image, je créé un map html et le stocke dans une variable de session puis la récupére dans le script principal.
Le problème c'est que ma session est déjà ouverte par session_start() avant l'exécution d'image.php et que l'affectation du map en variable de session, qui nécessite un autre session_start (), n'est plus en cache lorsque j'essaie de la récupérer dans le script principal.
Voici les étapes de mon script:
<?php
session_start();
?>
<html>
<?php echo '';
$map= $_SESSION['map'];
echo '<map name ="img">'.$map.'</map>';
//Et là le message Notice: Undefined index: map in D... apparait alors que map est bien présent dans
// le fichier de session.
?>
</html>
le truc serait peut être d'utiliser ob_start et ob_end_flush mais j'ai essayé (peut-être mal) et ça ne marche pas.
MERCI pour votre aide,
malalam
Messages postés10839Date d'inscriptionlundi 24 février 2003StatutMembreDernière intervention 2 mars 201025 11 sept. 2006 à 15:20
Hello,
bah ouais...la variable sera prise en compte seulement au 2d retour vers le serveur.
Tu ne vas pas pouvoir faire ça comme ça...
Si tu raffraichis ta page, tu verras que ta variable est initialisée, après.
Un truc dans le genre devrait marcher (à creuser, je n'ai pas vérifié):
<?php
session_start ();
?>
guill76
Messages postés193Date d'inscriptionmercredi 24 août 2005StatutMembreDernière intervention 3 juin 2016 12 sept. 2006 à 13:47
salut, ouais mais en fait ce que je disais n'était pas juste car si je fais sleep() après le tag< img>, ma variable de session n'est pas encore dans le fichier bien que j'ai fait un commit dans la methode appellée par img.php.
J'ai l'impression que le script principal s'execute dans son intégralité avant que img.php ne soit éxécuté.
malalam
Messages postés10839Date d'inscriptionlundi 24 février 2003StatutMembreDernière intervention 2 mars 201025 13 sept. 2006 à 08:07
Ce qui est normal...le html est toujours executé après le php. Or, ta balise est une balise html. Donc oui, c'est bien ce qu'il se passe. Tout le php est exécuté, le html généré...donc appel à ton img.php, mise en session...à la fin. Je suppose.
malalam
Messages postés10839Date d'inscriptionlundi 24 février 2003StatutMembreDernière intervention 2 mars 201025 13 sept. 2006 à 08:12
d'ailleurs mon code ne peut pas marcher du coup, lol.
Ca se passe comme ça : ton utilisateur appelle ta page avec ta balise img. la PHP de cette page est exécuté. le html généré envoyé au navigateur. Le navigateur parsele html...voit la balise img qui appelle une page php. On retourne au serveur juste à ce moment là. Ta page img.php est exécuté...mais du coup, la session n'est pas "vue" dans la 1ère page. Mais elle eexiste, et si tu raffraichis, ou change de page, évidemment, elle est là.
Vous n’avez pas trouvé la réponse que vous recherchez ?