2010-07-23 5 views
4

Possible en double:
Headers already sent by PHPtêtes php déjà envoyé Une erreur

J'ai un seul fichier php, avec ce code dans le:

<?php header("Location: somepage.php"); ?> 

Absolument pas d'espace avant ou après l'ouverture ou la fermeture de php tags et je reçois le

Warning: Cannot modify header information - headers already sent by (output started at C:\ ... \test.php:1 

Habituellement, lorsque j'obtiens cette erreur, le 1 est le numéro de ligne du problème, mais dans ce cas, la ligne 1 n'a aucun espace supplémentaire. Je n'ai que ce code sur la page et je n'inclue aucun autre fichier. J'utilise xampp sur Windows XP. Des idées sur ce qui se passe ou comment je peux déterminer ce qui cause réellement le problème.

Merci

+1

Juste un soupçon, si vous n'avez pas besoin de générer des données non traitées, n'utilisez pas la balise de fermeture. –

+0

Merci, je le fais déjà habituellement, juste pour éviter cette erreur. – Joe

Répondre

11

Il y a des chances que vous avez ce qu'on appelle un BOM (Byte Order Mark) dans le fichier. En fonction de l'éditeur que vous utilisez, vous devez désactiver l'ajout de la nomenclature ...

+1

Merci pour le lien @Gordon – ircmaxell

+0

J'utilise Komodo Edit, ce qui ne m'a jamais posé de problème auparavant. J'ai essayé juste en utilisant le vieux bloc-notes ordinaire et j'ai toujours le problème. – Joe

+0

Eh bien, la seule autre chose que je peux penser à quelque chose à faire avec 'auto_prepend_file' ... Avez-vous vérifié votre PHPInfo? Aussi, vous dites que vous avez essayé d'utiliser le bloc-notes, avez-vous écrit directement dans le bloc-notes? Ou avez-vous copié et collé (puisque le bloc-notes n'affichera peut-être pas la nomenclature, mais il peut avoir été copié) ... – ircmaxell

0

Si vous êtes sûr que ce n'est pas une nomenclature qui provoque l'erreur, vérifiez votre httpd.conf et tous les fichiers .htaccess si le préfixe tous les autres fichiers. Regardez pour quelque chose comme ceci:

<FilesMatch "\.(html?)$"> 
php_value auto_prepend_file /server/path/to/my/www_root/subdir/file.ext" 
</FilesMatch> 

Vérifiez aussi votre php.ini: http://de.php.net/manual/en/ini.core.php#ini.auto-prepend-file

0

Essayez de copier/coller le contenu à un autre nouveau fichier en utilisant le Bloc-notes

+0

essayé ceci et cela n'a pas fonctionné. Toujours avoir l'erreur. – Joe

0

Essayez d'utiliser WAMP, il ne montre pas cette erreur, assurez-vous de ne pas avoir d'espaces avant ou après le code. Pour cela, si vous utilisez notepad ++ ou editplus, allez au formatage et sélectionnez le formatage Unix et les choses devraient fonctionner correctement.

OU

essayer de placer ce en haut de votre page:

<? ob_start(); ?> 

puis en bas de la place de la page cette ligne de code:

<? ob_flush(); ?> 
+0

Je ne vais pas installer wamp juste pour ça. De plus, si l'erreur est toujours là, ne pas le réparer ne va pas aider. – Joe

+0

s'il vous plaît voir la solution affichée, qui devrait servir votre but. Et vous ne rencontrerez plus jamais cet avertissement. – Yash

+1

Ce n'est pas vraiment une solution, mais un hack. Je voudrais réparer le problème. – Joe

Questions connexes