Firefox 4 & Xampp/PHP

  • Hallo,

    habe ein Problem, und zwar habe ich gerade Firefox auf 4.0 geupdated und nun werden mir manche PHP-Scripts nichtmehr richtig angezeigt. IE zeigt diese richtig an aber FF4 nicht.
    Muss da irgendeine Einstellung getroffen werden?

    Alles wird mit dem ' am Anfang ausgegeben.
    Also der Quellcode wird teilweise angezeigt.

    Was tun?

    Vielen Dank im Voraus

  • Wenn du Quelltexte zu sehen bekommst, dann verschickt der Server einen falschen MimeType. Der IE hat die im Grunde schon immer ignoriert, Firefox ist da erheblich strenger. Vor allem mit dem neuen HTML5 Parser, der inzwischen im Fx4 arbeitet.

  • Was du tun musst, richtet sich nach dem konkreten Fall. Den kann ich von extern nicht einschätzen.

    Die generierten fehlerhaften Seiten werden wohl als MimeType "text/plain" ausgeliefert.

    MimeType ist eine Header-Angabe einer gesendeten Datei, die klarstellt um welchen Dateityp es sich handelt und wie damit umgegangen werden soll (der IE ignoriert diese Angaben im Grunde, was nach Spezifikation auch ein Fehlverhalten und Sicherheitsrisiko ist). Diese Headerinformation wird in der Regel vom Webserver automatisch ausgeliefert, sofern nicht anderswo entsprechend eine Headerinformation vorgegeben wurde.

    Die Vorgaben können an verschiedenen Stellen erfolgen. Entweder wie bereits erwähnt, schaut der Server selbst nach (der apache müsste die Standarddinger in der httpd.conf stehen haben, wenn ich mich recht erinnere), oder man legt entsprechende .htaccess Dateien an, die vorgeben, welche MimeTypes welchen Dateien zugeordnet werden. Auch kannst Du über die header()-Funktion von PHP die ausgelieferten Seiten direkt als MimeType "text/html" markieren. Es könnte natürlich auch sein, dass ein Addon bei dir im Firefox querschießt. Hier könntest Du mal mit dem abgesicherten Modus von Firefox testen.

    Mangels genauerer Beschreibung und Bereitstellung von Testmöglichkeiten deinerseits, kann ich dir aber nicht sagen wo genau dein Problem besteht. Da musst du dann schon selbst stochern. Ich kann dir da nur die Richtung auf Basis meiner Einschätzung nennen.

    Wenn dir irgendwelche Begrifflichkeiten unverständlich sind, hilft evtl. auch mal Google. ; )

  • Also mein Script ist einfach in einer leeren php-Datei.
    Dachte <?php ?> würde den MimeType auf PHP setzten.
    Die Datei ist ja als php gespeichert.

    Da ich das ganze lokal mit xampp momentan nutze müsste ich den Header wohl manuell in diese Datei einfügen.
    Wie sieht so ein Header in einem Script aus? header() was muss zwischen die beiden Klammern?
    header('Content-type: application/php'); ???

    Vielen Dank

  • Es muss der MimeType rein, den Du mit dem PHP ausliefern willst. "text/html". Weil Browser verstehen kein PHP, nur HTML. ; )

    Du kannst ja erstmal testen, obs daran auch liegt. Öffne mal eine Seite, die nicht geht im Firefox und öffne dann im Firefox die Seiteninformationen (findet sich im Menü Extras). Dort sollte unter dem Eintrag "Typ" eben "text/html" stehen.

  • Also ich habe nun
    <?php
    header ("Content-type: application/text-html");

    in die 1. und 2. Zeile meines Scripts eingefügt.
    Jedoch zeigt er immernoch den PHP-Code an. Den HTML führt er weiterhin, also auch vorher schon aus.

    Also doch nicht der MimeType?

  • Ehe man sich mit Nebenschauplätzen beschäftigt, sollte man die reale Ursache erforschen.

    Zitat von ChillerT

    Jedoch zeigt er immernoch den PHP-Code an

    Weist auf einen verbogenen Server und / oder fehlerhafte Skripts hin.

  • Zitat von ChillerT

    Jedoch zeigt er immernoch den PHP-Code an. Also doch nicht der MimeType?


    Das kannst du selbst testen:

    Zitat von bugcatcher

    Du kannst ja erstmal testen, obs daran auch liegt. Öffne mal eine Seite, die nicht geht im Firefox und öffne dann im Firefox die Seiteninformationen (findet sich im Menü Extras). Dort sollte unter dem Eintrag "Typ" eben "text/html" stehen.


    Der falsche MimeType ist die häufigste Ursache wenn Quelltexte direkt angezeigt werden.

    PHP Code sollte aber eigentlich nie den Server verlassen, nur das was das PHP Script generiert. Wenn du also PHP Code mit im gelieferten Seitenquelltext hast, dann kann es an sich nur um einen fehlerhaftes Script handeln, in dem die PHP-Bereiche "falsch" markiert wurden, oder der Server selbst führt das PHP-Script gar nicht erst aus.

    Wie gesagt, da wir hier keine Einsicht auf deinen Server haben, ist das alles auch reichlich schwer zu diagnostizieren.

  • Also auf dem lokalen xampp-server und auf nem ohost-testwebspace verarbeitet er HTMl aber kein PHP.

    Zitat

    Typ: text/html
    Anzeigemodus: Kompatibilitätsmodus (Quirks)
    Kodierung: ISO-8859-1


    Das steht bei Seiteninformationen
    Sollte die Kodierung nicht UTF-8 sein? Mein Editor sagt er speichert es als UTF-8 und FF4 sagt es ist ISO???
    Denn der IE führt HTMl sowie PHP dieses scriptes aus

  • Das PHP-Script wird vom Server nicht ausgeführt. Er liefert nicht das Ergebnis des PHP-Scriptes, sondern das PHP-Script selbst. Das sollte unter keinen Umständen passieren und hat im Grunde nichts mit Browsern zu tun.

  • Zitat

    Das PHP-Script wird vom Server nicht ausgeführt. Er liefert nicht das Ergebnis des PHP-Scriptes, sondern das PHP-Script selbst. Das sollte unter keinen Umständen passieren und hat im Grunde nichts mit Browsern zu tun.


    Soweit war ich auch schon ^^
    Frage ist woran liegts bzw. wie kann man das Problem lösen?

  • Im profanen Fall prüft man das Skript auf eine nicht geschlossene Zeichenkette und schließt sie.

  • Wenn du meinst …

    Da die Ausgabe nicht mit einem "<?php"beginnt, wird das Skript auch wunschgemäß vom Server ausgeführt. Die Ausgabe endet jedoch auf einem "?>", somit ist eine Zeichenkette innerhalb eines Skripts nicht geschlossen - warum auch immer -.

    Dass dich das führende Apostroph der Anzeige nicht lenkt, ist schon etwas verwunderlich.

  • Die Zeichenkette von PHP wird mit "<?php" geöffnet und mit "?>" geschlossen.
    Damit ist die Zeichenkette doch geschlossen.

    Zitat

    Dass dich das führende Apostroph der Anzeige nicht lenkt, ist schon etwas verwunderlich.


    Den Satz habe ich allerdings nicht gecheckt ^^

  • Zitat von ChillerT

    Die Zeichenkette von PHP wird mit […]

    Da dir wieder einmal die Grundlagen abholt sind, darf ich mich aus deinem Thema verabschieden.

    Dennoch ein Tipp auf den Weg,

    Zitat von ChillerT

    Den Satz habe ich allerdings nicht gecheckt ^^

    wenn die Anzeige eine Sequenz wie in deinem Bild aufweist, fällt die Suche eigentlich nicht schwer.

    P.S. ein freundlicher Moderator möge dieses Thema bitte nach "Smalltalk" verschieben.

  • Zitat

    Da dir wieder einmal die Grundlagen abholt sind, darf ich mich aus deinem Thema verabschieden.


    Man hilft also nur denen, die die Grundlagen absolut beherschen, aha, gut zu wissen.
    Mal abgesehen davon war das eher eine Fragestellung als eine Feststellung von mir.

    Anstatt so zu Reagieren könnte man evtl. auch darauf hinweisen wo der Fehler liegt oder wo der Denkfehler ist.
    Wenn ich die Grundlage an einer bestimmten Stelle nicht verstanden habe wäre es hilfreich darauf hinzuweisen an welcher Stelle.

    Zitat

    fällt die Suche eigentlich nicht schwer


    Schön das der Meister es verstanden hat.

    Solch einen p.s.-Kommentar kannste dir auch sparen!

    Vielen Dank für Nichts im letzten Post.
    Hoffe auf jemand Hilfsbereiten der mir sagen kann wo meine Lücke/Problem/Denkfehler ist.
    Danke dafür im Voraus