php wird auskommentiert

  • Hallo,


    ich wollte eine HTML-Seite in mehrere Abschnitte mit php teilen. Leider habe ich festgestellt, daß das php auskommentiert wird vom Browser. Also wird es vom Server gar nicht verarbeitet.

    ich habe Webhosting 2000 SE und die Website liegt unter domain/httpdocs. Nach den Einstellungen soll PHP aktiviert sein.

    Kann mir evtl einer sagen woran das liegt.


    Gruß goiko

  • Welche Dateiendung hat die aufgerufene Datei? Standardmäßig wird PHP nur in *.php Dateien ausgeführt ;)


    Möchte man es z.B. auch in *.html Dateien ausführen, muss man einige Einstellungen ändern. Das würde ich aus Sicherheitsgründen allerdings eher nicht empfehlen. Stattdessen bieten sich diverse Tricks mit mod_rewrite an, um die Adressen intern umzuschreiben.

    "Wer nur noch Enten sieht, hat die Kontrolle über seine Server verloren." (Netzentenfund)

  • Einfach um einige Fehler auszuschließen: funktioniert denn dieser Test?


    Datei namens 'info.php' mit folgendem Inhalt hochladen und im Browser aufrufen:


    PHP: info.php
    <?php phpinfo(); ?>


    Falls nein, müsste man sich mal die PHP-Einstellungen ansehen oder falls soweit korrekt an den Support wenden.

  • Also das funktioniert.

    Ich habe festgestellt, das es nur nicht funktioniert, wenn ich php in eine html-datei einbinde. Muß ich da noch was an den Einstellungen ändern?

  • Zeig doch mal ein Beispiel deines Codes. So wird’s sonst echt schwierig deinen Fehler zu finden.

    RS Brezn | VPS 500 G8 Plus | 2× VPS Karneval 2020 | VPS Pocket Admin | RS Cyber Quack | Webhosting EiWoMiSau


    Dieses Gebäude hat mir die Vorfahrt genommen! *hup*

    Gefällt mir 1
  • Also im Grunde das was KB19 bereits geschrieben hat. Ich vermute du versuchst in einer .html Datei PHP-Code auszuführen. Das wird ohne weiteres nicht funktionieren, weil der PHP-Interpreter (bei Standardeinstellung) nicht .html Dateien parsed.


    Das einfachste ist: ändere einfach deine .html Dateien in .php Dateien um. Dann kannst wie gewohnt einfach html verwenden und bei Bedarf einfach an gewünschter Stelle mit <?php ... ?> PHP einbinden. Ist zumindest die anfängerfreundlichste Variante. :)


    Oder du beschreibst mal genauer was du mit "PHP einbinden" meinst. Ein komplettes Beispiel würde helfen dir folgen zu können.

  • PHP hat in einer HTML-Datei halt eigentlich nichts verloren. HTML in einer PHP-Datei dagegen schon. Wenn du PHP und HTML mischen willst, dann solltest du als Dateiendung eben auch ".php" nehmen. Es lässt sich sicher auch irgendwie einstellen, dass ".html" Dateien auch durch PHP interpretiert werden sollen, aber normalerweise ist das nicht so eingestellt, wäre auch wenig effizient, weil jede rein statische HTML-Seite ja einfach nur ausgeliefert werden muss wie sie ist. Das geht natürlich zig-Mal schneller und mit viel weniger Ressourcen als wenn jede HTML-Datei erst nochmal durch den PHP-Interpreter gejagt würde. Ich gehe mal davon aus, dass man das im Shared Webhosting hier auch nicht selbst einstellen kann.


    Also benenne sie einfach um in "deinedatei.php", dann wird sie beim Aufruf vom Server interpretiert und dann das Ergebnis aber auch als HTML ausgeliefert, wie es sich gehört. Heißt sie dagegen "deinedatei.html", dann wird sie einfach ausgeliefert wie sie ist. Das auskommentieren übernimmt dann der Browser. Wobei im Seitenquelltext bei mir das PHP unverändert drinsteht, also nicht auskommentiert. Dafür ist es rot markiert -> fehlerhafte HTML Syntax und wird halt ignoriert. Schaust du die Datei dagegen in den Entwicklerwerkzeugen an, dann ist da der HTML Code korrigiert, was eben heißt, dass im Falle von eingebettetem PHP dies einfach auskommentiert ist. Das passiert genauso, wenn du im HTML ein </div> stehen hast, für das es kein zugehöriges <div> gibt. Auch das wird im Seitenquelltext dann rot markiert, in der Regel aber in den Entwicklerwerkzeugen nicht auskommentiert, sondern einfach gelöscht. In den Entwicklerwerkzeugen kann eine Seite aussehen, als wäre sie völlig korrekt - und in Wirklichkeit passt gar nichts, wenn man sie zum Beispiel validieren lässt oder halt den Seitenquelltext anschaut.

  • Stimmt, wenn ich die Seiten in PHP umbenenne funktioniert es. Ich glaube aber, das Seiten mit Endung .php, schlechter gelistet werden von google.

    Ich wollte einfach das Seitenmenü in eine extra Datei schreiben und in jede Seite rein holen. Brauch ich nicht alle zu ändern, wenn notwendig.

    Danke erst mal für eure Hilfe. Muß ich mir wohl was anderes einfallen lassen.


    Gruß goiko

  • Ich glaube, das interessiert Google einen Sch****. Google zieht allerhöchstens eventuell noch URLs ohne Suffix vor. Und wenn überhaupt, dann wohl weil sie kürzer sind. Ansonsten interessieren Google in allererster Linie, mit weitem Abstand vor anderen Dingen, was drinsteht in der Seite, also die Inhalte. Es ist aber sicher möglich, die URLS per .htaccess umschreiben zu lassen, so dass man das ".php" weglassen kann. Millionen von Wordpress-Seiten können nicht irren ;) . Schliesslich muss da letztlich auch die "index.php" aufgerufen werden und nicht die "index" oder "index.html".

  • Man verlinkt weder .html noch .php Dateien.

    Links setzt man stets auf technologie-neutrale URLs. Wenn die Datei also impressum.php heißt dann nur "impressum".


    Falls der Webserver nicht ohnehin schon so vorkonfiguriert ist, dass er dann impressum.php ausliefert hilft folgende generische Rewrite-Rule in der .htaccess-Datei oder vHost Konfiguration:


    Apache Configuration
    RewriteEngine on 
    AddType application/x-httpd-php .php
    RewriteCond %{REQUEST_FILENAME} !-d 
    RewriteCond %{REQUEST_FILENAME}\.php -f 
    RewriteRule ^(.*)$ $1.php [NC,L]
  • Man verlinkt weder .html noch .php Dateien.

    Links setzt man stets auf technologie-neutrale URLs. Wenn die Datei also impressum.php heißt dann nur "impressum".

    Also, ich meine Webserver nicht so konfiguriert, dass ein Link zu schubidu nach schubidu.php führt. :/

  • Ein ähnliches Verhalten wie beim Snippet von gunnarh kann man mit der "MultiViews" Option aber auch erreichen. Das sucht halt generell nach irgendwelchen Dateien mit beliebigen Dateiendungen, nicht nur auf PHP beschränkt.


    EDIT: Und je mehr ich darüber nachdenke (ich habe es mangels Apache-Installationen ewig nicht mehr eingesetzt) hat das mehr Nachteile, als es bringt. Die Lösung von gunnarh ist definitiv besser.

    "Wer nur noch Enten sieht, hat die Kontrolle über seine Server verloren." (Netzentenfund)

    Einmal editiert, zuletzt von KB19 ()

    Gefällt mir 1
  • Ja, als ich schrieb "Falls der Webserver nicht ohnehin schon so vorkonfiguriert ist, dass er dann impressum.php ausliefert ..." meinte ich Optionen wie MultiViews. Wer so etwas bereits aktiviert hat braucht meinen RewriteRule-Vorschlag also eventuell gar nicht. Persönlich habe ich gerne mehr Kontrolle darüber wie Apache das genau macht und verwende daher bevorzugt RewriteRules. Aber manche Leute stehen mit Regular Expressions und insbesondere Apache RewriteRules auf Kriegsfuß, denen ist vielleicht MultiViews lieber.