Page 1 sur 1

Problème header sans exit

Posté : 27 janv. 2016, 15:30
par kevin254kl
Bonjour à tous,

Pourriez vous m'aider? voici mon problème

Code : Tout sélectionner

$requete = "SELECT NUM_PROJET FROM POP_PROJET WHERE NUM_PROJET ='".$num_projet."'"; $statement = oci_parse($conn, $requete); oci_execute($statement,OCI_COMMIT_ON_SUCCESS); $numrows = oci_fetch_all($statement, $res); if($numrows > 0){ $_SESSION['MESSAGE'] = T_("Le numéro de projet ne doit pas exister!"); header('Location: ajt_projet.php'); exit ; }
ici je regarde si un projet existe déjà si j'enlève le exit celui-ci me redirige vers une autre page avec un header plus bas je ne comprends pas comment cela est possible auriez-vous une explication?

Re: Problème header sans exit

Posté : 27 janv. 2016, 15:40
par Saian
Bonjour, cela est possible car la fonction header n'arrête pas l'exécution du script qui continue jusqu'au bout. Donc si tu as un autre header location et que le script passe dessus, il remplace le précédent.

Si aucune autre ligne ne doit être exécutée après un header location le plus simple reste de mettre un exit en suivant, rien d'anormal à cela.

PS : quand on fait un header location ce n'est pas le serveur qui fait la redirection, c'est le navigateur qui en interprétant le header demande la nouvelle page.

Re: Problème header sans exit

Posté : 28 janv. 2016, 17:35
par kevin254kl
Super merci je ne savais pas ça je me coucherais moins bête.

Re: [RESOLU] Problème header sans exit

Posté : 29 janv. 2016, 00:35
par @rthur
D'une façon générale, dès qu'on ajoute dans son code un header("location:..."), il faut prendre l'habitude d'ajouter un exit immédiatement derrière.
Il n'y a aucune raison valable de ne pas mettre un exit vu qu'on demande une redirection immédiate vers une autre page, ça permet d'éviter des bugs :)