Aller au contenu

bug PHP ?


patdembe

Sujets conseillés

Imaginez que dans INDEX.PHP, vous avez les instructions suivantes :

<?php

session_start();

$_SESSION ['test'] = 'OK';

header('location:print.php');

$_SESSION['test'] = 'NOT OK';

?>

Et dans PRINT.PHP, il y a simplement :

<?php

session_start();

echo $_SESSION['test'];

?>

A votre avis, quel sera le resultat de l'echo ?

'OK', évidemment...

Eh bien non, vous obtennez 'NOT OK' !!!

:wacko:

Quelqu'un a une explication ???

Lien vers le commentaire
Partager sur d’autres sites

Ce qui est étonnant, c'est que ton header marche :

header('location:print.php');

J'aurais plutot vu ca comme ceci :

header('Location: print.php');

Sinon, il faut savoir que le header n'empèche pas l'exécution du script qui se trouve derrière, d'où l'utilité d'exécuter die() après header :)

Lien vers le commentaire
Partager sur d’autres sites

C'est normal pour moi

header('location:print.php');

ne veut pas dire fin du script le script continue a s'executer il faut pour être sur a mon avis toujours faire

header('location:print.php');

exit;

A+

Lien vers le commentaire
Partager sur d’autres sites

Posté (modifié)

Salut !

dire que le script continue ou s'interrompt après header n'est pas vraiment vrai.

Ainsi, les echos qui suivent ce header ne sont pas pris en compte, les appels mysql non plus. Par contre, les opérations sur les variables sessions,elles, le seront.

Ok, si on met die() ou exit; le problème est réglé, mais tout cela ne me semble pas très logique...

header('location... '); n'est si un branchement inconditionnel (goto), ni un appel de sous-routine.

Alors, c'est quoi exactement ???

Modifié par patdembe
Lien vers le commentaire
Partager sur d’autres sites

Les echo c'est normal vu le header envoyé le navigateur ne prendra plus rien en compte par contre les appels mysql je te fais confiance si tu le dis c'est que tu as essayé moi j'aurais parié qu'il se ferait quand même donc je prend note aussi de toute façon j'ai pris l'habitude de me servir de header comme si c'etait une branchement et donc je fais tjrs un exit derrière il n'empêche que ce que tu soulèves est bon a savoir pour éviter de chercher un jour.

Lien vers le commentaire
Partager sur d’autres sites

Veuillez vous connecter pour commenter

Vous pourrez laisser un commentaire après vous êtes connecté.



Connectez-vous maintenant
×
×
  • Créer...