Header tout seul qui ne fonctionne pas

Header tout seul qui ne fonctionne pas - PHP - Programmation

Marsh Posté le 13-12-2010 à 16:03:06    

Bonjour,
Pour faire des tests sur un serveur j'ai un fichier .php avec juste <?php header("Location: index.php" )?> qui me redirige bien sur l'index.
Sur un autre serveur ou j'exécute le même code <?php header("Location: index.php" )?>, il me renvoi l'erreur :  
"Cannot modify header information - headers already sent by ...."
 
Je ne comprend pas, j'ai mis le header en haut de page je peux pas faire mieux et sur un serveur ça marche mais pas sur l'autre. Existe t il des paramètres au niveau du php.ini qui bloquer ou mal executer le header?
 
Merci pour vos réponses
 
 

Reply

Marsh Posté le 13-12-2010 à 16:03:06   

Reply

Marsh Posté le 13-12-2010 à 16:12:54    

Est-ce vraiment en haut de page ? Pas d'espace, ni de saut de ligne avant le "<?php " ?
 
Sinon, quel encodage utilises-tu ? Si tu utilises UTF8 (ce que je te recommande, d'ailleurs), tu peux chercher du coté du BOM UTF8.

Reply

Marsh Posté le 13-12-2010 à 17:47:26    

Ouai c'est vraiment en haut de page c'est tout collé, aucune espace avant le <?php aucun espace entre le <?php et le header.
Oui je suis en UTF8.
Je comprend vraiment pas de quoi ça pourrait venir, vu que ça marche sur un serveur et pas sur un autre.

Reply

Marsh Posté le 13-12-2010 à 18:20:07    

Les espaces entre le <?php et le header ne comptent pas.
 
As-tu regardé s'il y avait un BOM utf8 ?

Reply

Marsh Posté le 13-12-2010 à 22:21:02    

Si le même code marche sur un serveur et pas sur l'autre, c'est parce qu'il doit y avoir quelque chose de spécial sur l'autre serveur. Le problème ne vient pas du code, mais du serveur. Je soupçonne fortement un bandeau publicitaire, ou une encapsulation quelconque. C'est sur un serveur gratuit, un serveur d'entreprise, autre chose. Une autre solution que cette redirection en PHP est de faire une redirection en javascript, qui passe peut-être mieux. Ou bien changer les paramètre de configuration du serveur Apache ou autre.

Reply

Marsh Posté le 14-12-2010 à 08:35:45    

En fait j'utilise le header parce que je veux faire un Export Excel de données de ma base et j'utilise ceci :
    header("Content-type: application/vnd.ms-excel" );
    header("Content-disposition:attachment;filename=$NomFichier.csv" );
 
J'ai pas trouvé d'autre solution pour faire mon export excel alors si il y a d'autre moyen en n'étant pas obligé de faire un header je veux bien vos avis.
Merci

Reply

Marsh Posté le 14-12-2010 à 09:40:54    

Non c'est bon merci faut que je m'achète de nouvelle lunette :), il y avait bien un espace avant le <?php qui faisait foirer sur l'autre serveur.
Merci

Reply

Sujets relatifs:

Leave a Replay

Make sure you enter the(*)required information where indicate.HTML code is not allowed