[Résolu] Erreur php : Warning: Cannot modify header information
Forum Programmation : [Résolu] Erreur php : Warning: Cannot modify header information
Lire la meilleure réponse, apportée par mcpherson.
Bonjour à tous,
J'espère qu'il y aura une personne qui prendra le temps de m'aider carlà j'ai du mal, j'ai pas assez de connaissance en PHP.
J'ai modifié un site fait à partir de la structure nuked-clan : bdg-clan.com
J'ai deux problèmes qui sont peut-être liées.
1 - Sur firefox il y a ses 3 symboles en haut a gauche "" comme si quelque chose existais alorsque je n'ai pas mis de caractères.
2 - Quand je veut me connecter a mon panneaux d'administration j'ai cette erreur :
"Warning: Cannot modify header information - headers already sent by (output started at /home/bdgclan/www/themes/best_fire/theme.php:1) in /home/bdgclan/www/modules/Admin/login.php on line 45", que je ne connais pas du tout.
Voici maintenant un copier/coller des pages concerné par le message :
theme.php
| Citation : <?php
|
login.php
| Citation : <?php
|
Merci d'avance à tous pour vos réponses.
Cordialement NipaL
Si tu fais par exemple header après avoir fais du html avant, les en tètes ont été envoyé et par cette fonction tu essaie de les modifier pour les renvoyer ce qui est impossible.
pour ton problème, je ne comprend pas en fait à quoi sert ton theme.php, je ne vois pas où tu t'en sers après.
où utilise tu ce fichier?
si tu l'utilise avant les setCookie le problme vient de la puisque ton theme.php contient pleins de html ce qui inclue donc que les en tètes partent avant que tu fasse appel à cookie.
j'espère etre à peu près clair
Erreur très simple, tu fais appel à la fonction header() à mon avis pour rediriger, alors que tu as déjà commencé à envoyer de contenu chez le client (le visiteur). (tu as fait un echo ou tout autre chose équivalent à afficher un résultat.
header() modifie l'en-tête HTTP, soit ce qui est avant le contenu, si le contenu a commencé à être envoyé alors tu ne peux modifier ce qui était avant, d'où le message d'erreur.
Répondre à SiM07
Merci pour la réponse rapide, et certainement précise, mais je ne connais pas trop le php, et la fonction header() je ne voit pas ou elle ce situe, sauf si vous parlais de la balise html <head>.
Pour le problème je le comprends en gros je lui demande de modifié quelque chose déjà envoyé, c'est sur ça marche pas !
Je suis un noob en programmation de site surtout en PHP. Juste me dire ou l'erreur se situe dans les fichiers, car je ne voit pas l'appel de la fonction header().
Merci d'avance pour la réponse et excusez-moi de ma non-connaissances !!
je pense que ça n'est pas peut etre pas un appel à la fonction header pourtant récurrente mais l'utilisation de cookie ici : setcookie($cookie_admin, $user[0]); ligne 44
les cookies transite par en tetes http et tu dois avoir un quelconque affichage avant cette ligne.
vérifie que tu n'est pas de code html ou de echo ou des espaces avant l'ouverture de ta balise <?php en haut de page
Dans le fichier theme.php en haut il y a ça :
| Citation : <?php
|
Mais aucun espace avant et aucun code ni echo.
J'aimerais comprendre ce qu'un espace avant le "<?php" ferrait ?
Je sais que c'est le fichier "theme.php" car j'ai repris l'ancienne version du fichier et cela fonctionne normalement .
Merci pour les réponses, et pour votre aide.
et bien en fait, lorsque tu met des espaces ou du code html ou un quelquonque truc qui provoque un affichage, les entètes http ont déja été envoyé au serveur, c'est une spécificité du protocole http. or l'utilisation de cookie ou de la fonction header transmet des informations qui doivent etre contenu dans les ent tetes.
Si tu fais par exemple header après avoir fais du html avant, les en tètes ont été envoyé et par cette fonction tu essaie de les modifier pour les renvoyer ce qui est impossible.
pour ton problème, je ne comprend pas en fait à quoi sert ton theme.php, je ne vois pas où tu t'en sers après.
où utilise tu ce fichier?
si tu l'utilise avant les setCookie le problme vient de la puisque ton theme.php contient pleins de html ce qui inclue donc que les en tètes partent avant que tu fasse appel à cookie.
j'espère etre à peu près clair
tu es sur que tu n'as pas un saut de ligne en haut de theme.php ou un espace avtn la balise <?php??
montre le contenu de ta fonction :
redirect($url, 2);
http://jonathanschmidt.fr
Répondre à sparrowix
Ca peut aussi être en fin de fichier, après le ?>
Répondre à SiM07
c'est vrai il faut se méfier de "Warning: Cannot modify header information - headers already sent by (output started at /home/bdgclan/www/themes/best_fire/theme.php:1) in /home/bdgclan/www/modules/Admin/login.php on line 45",
apparemment c'est ligne 1 de theme.php mais des fois on trouve l'erreur en plein milieu
Le problème est réglé, j'ai pris l'ancienne version du fichier et je l'ai modifié, jusqu'à ne voir aucune différence, ou presque entre les deux fichiers, bizarre.
La seul différence qui pourrait expliquer cette erreur c'est le format du fichier.
En effet l'ancienne version était traité en format ANSI alors que celui qui posait problème en UTF-8.
J'ai observer la façon dont les saut de lignes sont traité, et ce n'est pas fait de la même manière donc il est possible qu'il y avait effectivement des espaces un peut partout mais invisible car le format n'indiquai rien comme espaces !!
Je savais que certaine personne ont ce même problème mais je n'avais jamais trouver cette explication avant.
En tout cas merci à tous ceux qui ont pris le temps de ce pencher sur mon sujet.
Si vous avez une explication concrète je la veut bien.
Il y a 519 utilisateurs connus et inconnus. Pour voir la liste des connectés connus, cliquez ici.
