J'ai des problèmes avec un fichier PHP qui ne fonctionne pas correctement. Le type de contenu n'est reçu reçu par aucun navigateur. Firebug interprète le fichier en tant que texte / html au lieu de CSS. Voici le fichier: J'ai testé pour mettre une ligne avec Normal .CSS-Files fonctionne comme un charme. P> Que puis-je faire pour résoudre ce problème? P> < Strong> Mise à jour: strong>
A changé Le fichier complet de la demande de John: p> update # 2: forte >
Ajout Mise à jour # 4: strong>
Ont réinstallé Apache + PHP sur le serveur pour voir si le problème disparaît, mais non. Même vieux, vieux vieux ... p> p> echo 'test'; code> avant la ligne d'en-tête et s'attendant à voir les en-têtes classiques "déjà envoyés "Erreur, mais rien n'apparaît! p>
par défaut_mimetype = "text / html" code> sur
par défaut_mimeType = "text / css" code> dans php.ini et toutes les pages ont été immédiatement interprétées comme CSS, il doit donc y avoir une manière Pour simplement envoyer des en-têtes CSS pour ce fichier :) p>
ini_set ('faulau_mimeType ',' Text / css '); CSS'); CODE> sur le fichier PHP corrige ce fichier, mais cela ne résout pas le problème qui cause cette erreur ... P>
AddTtTy Text / CSS .CSS CODE> à la fois sur .htaccess et Apache config. Toujours pas de chance. Également testé pour envoyer des en-têtes séparés de Charset:
en-tête ('Type de contenu: Texte / CSS'); Code> - toujours pas de chance ... p>
14 Réponses :
La raison est que la fonction Si vous mettez un Essayez d'imprimer un code CSS après l'en-tête pour tester s'il fonctionne réellement. P>
lire Cette page Pour plus d'infos P>
Edit: Avez-vous changé votre message? : -) p> en-tête code> ne fonctionne que si elle est la première à être appelée! p>
echo code> avant, le type de contenu devient automatiquement
texte / html code> p> p>
Salut mec! Oui, édité le message pour le rendre un peu plus clair. Désolé!
Ce sonne semblable à votre serveur Web interpréte le script sous forme de fichier normal. At-il une extension .php et faire d'autres fichiers .php fonctionnent comme prévu? P>
Salut! Ça fait bien. Tout le reste fonctionne comme un charme et mod_rewrite est activé également!
a l'air parfaitement ok et la ligne avec le echo code> devrait générer définitivement un avertissement. Pourrait-il être que vous modifiez le mauvais fichier? P>
J'ai bien peur de ne pas, c'est le premier de ma liste de contrôle à essayer :)
Ceci est généralement causé par une erreur fatale (c'est-à-dire une erreur de syntaxe) qui entraîne l'intervalle du script avant l'exécution de l'un des codes (avant que display_errors ne puisse être défini via INI_SET () au moment de l'exécution). Essayez de changer Display_Errors dans le fichier de configuration PHP (php.ini). P>
Effectivement nettoyé tout le fichier et il suffit d'avoir la ligne d'en-tête là-bas. Il ne veut toujours pas interpréter comme CSS.
Postez le CSS, quelque chose provoque une erreur fatale. C'est pourquoi l'instruction ECHO au bas n'a rien fait et les erreurs PHP ne sont pas affichées. Il pourrait y avoir quelque chose dans votre CSS qui enfreint le script (particulièrement vrai si vous l'avez fait écho, il est facile de manquer une citation non évaluée)
Bonjour John, a affiché le fichier complet dans le premier post, même s'il n'est qu'une ligne de CSS qui devrait être valide ...
Vous pouvez essayer Voir ci-dessous sur le ici P >
La langue de style par défaut peut également être définie avec
HTTP en-têtes. Ce qui précède meta
La déclaration équivaut à l'HTTP
Header: P>
au lien , il est mentionné d'ajouter J'ai récemment eu une menace coiffeuse
Problème avec Firefox et XHTML 1.0
Transitional. P>
Cela a fonctionné bien avec d'autres navigateurs,
et aussi avec HTML 4.1. P>
couper une longue histoire courte,
Les fichiers JS et CSS générés PHP étaient
toujours rapporté par les en-têtes comme
Texte / HTML, tandis que dans le HTML, ils étaient
Texte / CSS et application / JavaScript;
Firefox ayant été dit la page était
Xhtml 1.0 est devenu anal additionnel et
refusé de styler la page. (Je pense
Le JS a toujours travaillé mais je l'ai réparé
de toute façon.) p>
solution: p>
en-tête ('Type de contenu: Text / CSS'); et
Hauteur ('Type de contenu:
Application / JavaScript '); P>
blockQuote>
edit 3 strong>
Il y avait un POST À propos de certaines formes qui ne soumettent aucune donnée en raison d'un utilitaire appelé AVG Linkscanner. Depuis que vous avez réinstallé Apache + PHP et que je suppose que vous n'avez pas réinstallé le système d'exploitation, vous pouvez peut-être enquêter sur cela / essayer en tournant des utilitaires / plugs-ins. P> type de style de contenu: Texte / CSS CODE> P>
Type de style de contenu: Texte / CSS CODE> P>
blockQuote>
addTtype texte / CSS .CSS. code> dans le fichier de configuration Apache.
Peut-être que vous pouvez donner un essai p>
Nan! N'a rien changé j'ai peur :(
Re-bonjour. J'ai essayé d'envoyer juste le type de contenu sans préparation de caractères plus tôt. Rien de nouveau. Merci pour ton aide!
La "langue de la feuille de style par défaut" s'applique au style attribut b>, les éléments de style prennent leur langue à partir de l'attribut de type requis, les feuilles de style liées prennent leur choix à partir de l'en-tête HTTP.
Peut-être que la fonction Test: p> en-tête () code> est désactivée dans votre configuration?
print ini_get('disable_functions');
Il peut être intéressant de vérifier avec Curl pour voir quels horizons sont en cours d'envoi .
Essayez ceci à partir d'une ligne de commande et vérifiez le "Text / CSS": P>
print_r(ob_list_handlers());
Guess Wild Guess: ouvrez votre fichier avec quelque chose qui afficherait tout BOM . Si vous voyez des caractères étranges avant Php code> vous avez votre problème. Vérifiez vos options d'éditeur actuelles pour enregistrer le fichier UTF-8 et le faire enregistrer sans bom. P>
Peut-être qu'il y a des problèmes avec la mise en cache.
Essayez ceci: p>
header('Content-type: text/css'); header("Cache-Control: no-cache, must-revalidate"); header("Expires: Sat, 26 Jul 1997 05:00:00 GMT"); echo 'body {background-color: #000000; }';
Salut! Rien dans les journaux du serveur. Je vais essayer votre premier ttstep maintenant et revenir. Merci
Vous voudrez peut-être ajouter la propriété code> type code> peut être remplacé dans le ou les fichiers .htaccess. (E.G. FORCETYPE CODE> et
AddType code>)
J'ai trouvé le fichier complet est en retrait.
<?php header('Content-Type: text/css; charset=UTF-8'); echo 'body {background-color: #000000; }'; ?>
Vérifiez votre fichier php.ini pour le réglage de sortie_buffering. S'il n'est pas défini sur "OFF" que PHP effectue automatiquement la mise en mémoire tampon de sortie pour vous. Définissez cela pour éteindre et echo quelque chose avant la commande d'en-tête et que vous devriez voir «l'erreur classique». P>
Vous ne devriez pas utiliser la fermeture?>. Je sais que c'est une suggestion controversée, mais trop de fois que les gens ajoutent un retour et / ou un espace après cela, ce qui obtient une sortie sur le navigateur (avant l'en-tête). Il y a très peu de cas où il ne l'utilise pas causerait de problème. P>
Ce n'est plus controversé (au moins, pas depuis juin 2012). PSR-2 interdit explicitement à l'aide de la fermeture ?> code> à la fin d'un fichier
.
sortie_buffering = OFF code> dans php.ini était la raison pour laquelle il est pourquoi il conserve l'envoi de
Type de contenu = Texte / HTML Code>. Le régler à 1 résolvez-le. P>
Dans mon cas, j'ai eu des difficultés pendant des heures avec mon code en-tête ("text / javascript"); code>, vous demandez pourquoi le type de réponse MIME n'a pas été envoyé. Le code PHP correct est
en-tête ('type de contenu: texte / javascript'); code>. Il n'y a pas de détection d'erreur appropriée pour cette erreur de programmation dans PHP, Apache, les navigateurs ou les outils de développeur Web. P>
Pouvez-vous voir quels headers sont envoyés aux navigateurs de Figrebug?
Je sais que c'est une question idiote, mais fermez-vous le PHP avant de sortir le CSS? Bien sûr, si vous avez écho à la CSS, ignorez-moi.
Salut Matt! Ouais! Le CSS est écho, merci!
Merci industrielle! J'ai testé le code et génère l'amende CSS (et avec le type MIME correct). Essayez de changer 'Display_Errors' à "On" dans php.ini. Il existe définitivement une erreur funky survenue mais ne pas être affichée. EDIT: Savez-vous si vous utilisez mod_php ou FastCGI avec Apache?
Salut! D'après ce que je peux dire, j'utilise mod_php. Les erreurs sont sur, mais rien n'apparaît :(
Ok les gars, personne n'a aucune idée?
Le CSS réel est-il envoyé au navigateur?
Industrial: quelle est l'extension de votre fichier CSS ou PHP?
Le CSS est envoyé, mais lu comme HTML tel que décrit.
Le fichier CSS est chargé par un fichier PHP, de sorte que la feuille de style liée est un fichier PHP.
Et vous absolument, certainement, croisement de votre cœur-heart-et-espoir-mourir, n'a pas de blancheur avant le
Php code>?
J'ai essayé toutes les réponses et l'outil de développeur de réseau Firefox me dit toujours que le fichier .js renvoyé par mon routeur.php est de type HTML au lieu de JavaScript. Chrome, le type est rapporté comme "script". Donc, cela ressemble vraiment à un bug dans Firefox. J'aimerais pouvoir poser ma propre question et fournir mon code, mais je ne suis pas autorisé à poster des questions ici, uniquement des commentaires et des réponses.