Include et header
Résolu/Fermé
Houssine@
Messages postés
37
Date d'inscription
jeudi 2 juin 2016
Statut
Membre
Dernière intervention
3 janvier 2019
-
30 nov. 2016 à 19:51
Houssine@ Messages postés 37 Date d'inscription jeudi 2 juin 2016 Statut Membre Dernière intervention 3 janvier 2019 - 1 déc. 2016 à 16:20
Houssine@ Messages postés 37 Date d'inscription jeudi 2 juin 2016 Statut Membre Dernière intervention 3 janvier 2019 - 1 déc. 2016 à 16:20
bonsoir
j'ai mis un include dans ma page et quand j''ai voulu faire un header pour aller a une autre page
il m'affiche cette erreur
(Warning: Cannot modify header information - headers already sent by (output started at C:\Program Files (x86)\EasyPHP-DevServer-14.1VC9\data\localweb\projects\menuresponsive.php:94) in C:\Program Files (x86)\EasyPHP-DevServer-14.1VC9\data\localweb\projects\class\connexion.class.php on line 58)
et quand j'ai mis mon header() avant l'include il n'affichait plus cet message
je voudrais savoir pourquoi ?
merci d'avance
j'ai mis un include dans ma page et quand j''ai voulu faire un header pour aller a une autre page
il m'affiche cette erreur
(Warning: Cannot modify header information - headers already sent by (output started at C:\Program Files (x86)\EasyPHP-DevServer-14.1VC9\data\localweb\projects\menuresponsive.php:94) in C:\Program Files (x86)\EasyPHP-DevServer-14.1VC9\data\localweb\projects\class\connexion.class.php on line 58)
et quand j'ai mis mon header() avant l'include il n'affichait plus cet message
je voudrais savoir pourquoi ?
merci d'avance
A voir également:
- Include et header
- C# include ✓ - Forum C#
- Request header or cookie too large - Forum Réseaux sociaux
- Bad lzo decompression header byte 42 - Forum Linux / Unix
- Your browser sent a request that this server could not understand. size of a request header field exceeds server limit. ✓ - Forum Bureautique
- 400 bad request - nginx/0.6.32 ✓ - Forum Réseaux sociaux
2 réponses
DelNC
Messages postés
2234
Date d'inscription
samedi 25 octobre 2014
Statut
Membre
Dernière intervention
22 février 2020
2 002
30 nov. 2016 à 19:58
30 nov. 2016 à 19:58
Bonjour
sur le site que je fais, il y a plusieurs partie que je mets dans les pages grâce à des include.
Voilà un exemple
sur le site que je fais, il y a plusieurs partie que je mets dans les pages grâce à des include.
Voilà un exemple
<html> <?php include("include_header.php"); ?> <body> .....
Reivax962
Messages postés
3672
Date d'inscription
jeudi 16 juin 2005
Statut
Membre
Dernière intervention
11 février 2021
1 011
1 déc. 2016 à 14:41
1 déc. 2016 à 14:41
Bonjour,
Pour expliquer un peu les choses.
Quand le serveur PHP renvoie une réponse au navigateur client, il commence par envoyer les en-têtes http (les "header" en question). Ces "header" contiennent des choses comme l'adresse de la page, les cookies à placer, le statut de la réponse, le type de réponse...
Ensuite seulement, il envoie le contenu, c'est-à-dire tout ce qui est explicitement envoyé (les "echo") ou implicitement (le code html en dehors des balises <?php ?>).
Dans les faits, dès que PHP voit du contenu à envoyer, il va :
- générer les headers et les envoyer ;
- commencer à envoyer le contenu de la réponse.
Maintenant, si, après ce premier envoi, tu demandes à modifier les headers (par exemple, avec session_start() qui place un cookie, ou avec une redirection comme dans ton cas, ou en changeant le type de réponse...), PHP ne peut plus le faire, car il a déjà transmis les header au client.
C'est le sens du message d'erreur que tu obtiens.
Il faut donc s'assurer que toutes les fonctions qui modifient les headers soient exécutées AVANT de commencer à envoyer du contenu au client. Donc avant toute commande "echo" et avant tout texte en dehors de balises <?php ?>
Xavier
Pour expliquer un peu les choses.
Quand le serveur PHP renvoie une réponse au navigateur client, il commence par envoyer les en-têtes http (les "header" en question). Ces "header" contiennent des choses comme l'adresse de la page, les cookies à placer, le statut de la réponse, le type de réponse...
Ensuite seulement, il envoie le contenu, c'est-à-dire tout ce qui est explicitement envoyé (les "echo") ou implicitement (le code html en dehors des balises <?php ?>).
Dans les faits, dès que PHP voit du contenu à envoyer, il va :
- générer les headers et les envoyer ;
- commencer à envoyer le contenu de la réponse.
Maintenant, si, après ce premier envoi, tu demandes à modifier les headers (par exemple, avec session_start() qui place un cookie, ou avec une redirection comme dans ton cas, ou en changeant le type de réponse...), PHP ne peut plus le faire, car il a déjà transmis les header au client.
C'est le sens du message d'erreur que tu obtiens.
Il faut donc s'assurer que toutes les fonctions qui modifient les headers soient exécutées AVANT de commencer à envoyer du contenu au client. Donc avant toute commande "echo" et avant tout texte en dehors de balises <?php ?>
Xavier
Houssine@
Messages postés
37
Date d'inscription
jeudi 2 juin 2016
Statut
Membre
Dernière intervention
3 janvier 2019
1 déc. 2016 à 16:20
1 déc. 2016 à 16:20
merci beaucoup Reivax962 pour votre explication
30 nov. 2016 à 21:39
(Warning: Cannot modify header information - headers already sent by (output started at C:\Program Files (x86)\EasyPHP-DevServer-14.1VC9\data\localweb\projects\menuresponsive.php:94) in C:\Program Files (x86)\EasyPHP-DevServer-14.1VC9\data\localweb\projects\class\connexion.class.php on line 58)
30 nov. 2016 à 22:12