PHP innerhalb HTML
Tommy
- htaccess
- html
- php
0 Auge
0 Tommy0 Felix Riesterer
-2 Hans Baumann
0 Auge
0 Tommy1 Der Martin
0 encoder
0 encoder
0 Tommy
Hallo, noch eine weitere Frage zu .htaccess.
Um php in HTML einzubinden, habe ich nach einer Recherche in der .htaccess folgendes Statement eingefügt.
AddHandler application/x-httpd-php .html .htm
Leider hat dies nicht funktioniert, daher weitere Suche, Ergebnis:
AddType application/x-httpd-php .html .htm
Jetzt aber öffnet sich, wenn ich die Seite aufrufe, ein Fenster zum Download der HTML-Datei.
Gibt es eine Variante, die funktioniert?
Hallo
AddType application/x-httpd-php .html .htm
Jetzt aber öffnet sich, wenn ich die Seite aufrufe, ein Fenster zum Download der HTML-Datei.
Das geschieht typischerweise dann, wenn auf dem Webserver PHP nicht installiert oder für den Webserver nicht erreichbar ist. Läuft bei dir ein Webserver [1]? Läuft auf dem Webserver – so er denn läuft – ein PHP-Interpreter?
Tschö, Auge
Deine Fragen zu .htaccess lassen zumindest das vermuten. ↩︎
Hi,
der PHP-Interpeter ist vorhanden, denn wenn ich die Datei in .php umbenenne, funktioniert es.
Allerdings soll die Anwendung mit der Endung html erstellt werden.
Liebe(r) Tommy,
es ist möglich, Requests intern auf ein PHP-Script umzuleiten, damit dieses dann entscheidet, was es mit dem Request tut. So kann der scheinbar harmlose Aufruf einer HTML-Datei dazu führen, dass der Webserver die tollsten Dinge tut, weil ein PHP-Script dabei abgearbeitet wird.
Das könnte dann in etwa so arbeiten:
https://example.org/dir/file.htm
→ https://example.org/script.php?target=/dir/file.htm
Liebe Grüße
Felix Riesterer
Hallo,
also ... ein html als php ausführen lassen, das sollte nie gemacht werden. Wenn der Kunde wirklich drauf besteht, dass es mit einem .html aufgerufen werden soll, dann einfach die file.html so gestalten: <meta http-equiv="refresh" content="0; URL=./file.php" /> Dann ist es sauber, Du musst nicht mit dem type-Änderungen tricksen - denn wenn ich so einen Webserver sehe, bei dem ein html nicht "gelesen" wird, sondern mit dem php-Interpreter bearbeitet wird, dann mach ich den Webserver sehr schnell platt ...
bitte: immer auch ein wenig auf Sicherheit achten. Danke,
Hans
Hallo
also ... ein html als php ausführen lassen, das sollte nie gemacht werden.
Ich bin zwar deiner Meinung, verstehe deine Begründung aber nicht. HTML-Dateien ohne PHP-Code durch den PHP-Interpreter zu schicken geht auf die Performanz. Vor Jahren nahmen einige nach veröffentlichten Messungen den Faktor 1000 an, um den der Umweg über den Interpreter trotz nicht vorhandenem PHP-Code langsamer sei. Auch wenn das mit heutigen PHP-Versionen vielleicht sehr viel schneller sein sollte, langsamer als die reine Auslieferung eines statischen HTML-Dokuments bleibt es dennoch.
bitte: immer auch ein wenig auf Sicherheit achten.
Was aber die „Sicherheit“ damit zu tun hat, erschließt sich mir nicht.
Wenn denn unsicherer Code in einem PHP-Skript ist, ist der unsicher, egal ob die Dateieindung .html
oder .php
lautet. Das macht also keinen Unterschied.
Wenn der Kunde wirklich drauf besteht, dass es mit einem .html aufgerufen werden soll, dann einfach die file.html so gestalten: <meta http-equiv="refresh" content="0; URL=./file.php" />
Diese Umleitung kommt ihrerseits mit Performanzkosten daher. Das finde ich nicht so schlau.
Tschö, Auge
Hallo Hans,
nein, durch einen Redirect im HTML würde ich das keinesfalls lösen, das fällt spätestens auf wenn im Browser "zurück" geklickt wird. Ich hatte dafür schon ein - gegeben, aber wieder zurückgenommen weil das meiste ja durchaus richtig ist. Vorhandene - sind also von anderen, aber der Grund wird die Idee mit dem Meta Refresh sein.
Wenn man nur wenige html Dateien mit PHP behandeln will, sollte man dafür in der .htaccess Regeln vorsehen. Warum es bei Tommy scheitert, weiß ich allerdings gerade auch nicht
Ich stimme dir jedoch zu, dass eine Generalzuweisung von HTML an den PHP Interpreter vermieden werden sollte, weil man sich damit die Möglichkeit verbaut, statische Seiten effizient auszuliefern.
Rolf
Hallo
es ist möglich, Requests intern auf ein PHP-Script umzuleiten, damit dieses dann entscheidet, was es mit dem Request tut.
Das mag in Fällen hilfreich sein, aber hier geht es, wenn ich Tommy richtig verstanden habe, darum HTML-Dateien grundsätzlich durch den PHP-Interpreter zu jagen.
Seine erste im Ausgangsposting gezeigte Zeile sollte das prinzipiell tun.
AddHandler application/x-httpd-php .html .htm
Alle Beschreibungen, die ich finde, enthalten allerdings zusätzlich noch verklausuliert die Version des PHP-Interpreters („application/x-httpd-php72“ in dem Beispiel für PHP 7.2) und die PHP-Dateitypenendung(en) neben denen für HTML-Dateien („.php .php5 .html .htm“ [1]). Zumindest der Handler in den von mir gefundenen Beispielen (x-httpd-php72
) sieht sehr nach Linux aus, keine Ahnung, ob das unter Windows identisch aussähe.
Es wäre wohl sinnvoll, den gesamten Inhalt der .htaccess-Datei zu kennen.
Tschö, Auge
Ich kenne zwar noch *.php3
(lange ist's her), habe aber *.php5
noch nie gesehen. Wer's auch immer (heute noch) braucht, soll es stehen lassen, alle anderen können es weglassen. ↩︎
Hallo
Seine erste im Ausgangsposting gezeigte Zeile sollte das prinzipiell tun.
AddHandler application/x-httpd-php .html .htm
Ja, so wird es auch in vielen Dokumentationen beschrieben. Und ich muss nun einmal in eine *.html Datei mehrere PHP-Schnipsel einfügen.
Auch mit der einzigen Zeile
AddHandler application/x-httpd-php .html .htm
in .htacces klappt es nicht.
Warum wird das Vorgehen hier so zerissen, wenn die Möglichkeit hierfür so oft im Internet erwähnt wird?
Moin,
Auch mit der einzigen Zeile
AddHandler application/x-httpd-php .html .htm
in .htacces klappt es nicht.
it's a long shot, aaaber: Ist dein Webserver wirklich ein Apache? Und wenn ja: Erlaubt dein Hoster die Verwendung lokaler Config-Dateien?
Das könntest du leicht verifizieren, indem du irgendeinen Blödsinn-String als Direktive in die .htaccess einträgst. Wird die Webseite dann immer noch fehlerfrei ausgeliefert, ist das ein klares Zeichen dafür, dass .htaccess ignoriert wird.
Normalerweise müsste bei dieser Probe ein "500 Internal Server Error" kommen.
Warum wird das Vorgehen hier so zerissen, wenn die Möglichkeit hierfür so oft im Internet erwähnt wird?
Weil es ineffizient ist. Weil es unnötige CPU-Last auf der Serverseite erzeugt. Weil für jede HTML-Seite der PHP-Parser angeschmissen wird, der dann in der Mehrzahl der Fälle feststellt: Nichts für mich zu tun, ich reich das Zeug einfach nur durch.
Einen schönen Tag noch
Martin
Hi,
it's a long shot, aaaber: Ist dein Webserver wirklich ein Apache? Und wenn ja: Erlaubt dein Hoster die Verwendung lokaler Config-Dateien?
ja, andere Anweisungen in .htaccess werden durchgeführt, fehlerhafte werden als Fehler erkannt
Warum wird das Vorgehen hier so zerissen, wenn die Möglichkeit hierfür so oft im Internet erwähnt wird?
Weil es ineffizient ist. Weil es unnötige CPU-Last auf der Serverseite erzeugt. Weil für jede HTML-Seite der PHP-Parser angeschmissen wird, der dann in der Mehrzahl der Fälle feststellt: Nichts für mich zu tun, ich reich das Zeug einfach nur durch.
Warum ist dies weniger ineffizient, wenn die Datei *.php heißt?
Schöne Grüße Tommy
@@Tommy
ja, andere Anweisungen in .htaccess werden durchgeführt, fehlerhafte werden als Fehler erkannt
Dann musst du wohl mal beim Support deines Hosters nachfragen. Bei mir funktioniert AddHandler application/x-httpd-php .html
problemlos. (Nicht, dass man das so tun sollte – wie schon hier im Thread angesprochen.)
Hast du vielleicht ein Superbillig-Angebot gebucht, das kein PHP beïnhaltet und deshalb ist AddHandler application/x-httpd-php
gesperrt?
Warum ist dies weniger ineffizient, wenn die Datei *.php heißt?
Den Suffix .php
würdest du nur an diejenigen Dateien vergeben, die PHP-Code enthalten. Die anderen, die nicht durch den PHP-Interpreter gehen sollen, behalten die Endung .html
.
🖖 Live long and prosper
Hi,
Dann musst du wohl mal beim Support deines Hosters nachfragen. Bei mir funktioniert
AddHandler application/x-httpd-php .html
problemlos. (Nicht, dass man das so tun sollte – wie schon hier im Thread angesprochen.)Hast du vielleicht ein Superbillig-Angebot gebucht, das kein PHP beïnhaltet und deshalb ist
AddHandler application/x-httpd-php
gesperrt?
PHP wird ja ausgeführt, wenn die Datei auch php heißt.
Warum ist dies weniger ineffizient, wenn die Datei *.php heißt?
Den Suffix
.php
würdest du nur an diejenigen Dateien vergeben, die PHP-Code enthalten. Die anderen, die nicht durch den PHP-Interpreter gehen sollen, behalten die Endung.html
.
Die Datei enthält sehr viel HTML-Zeilen und einige PHP-Aufrufe, die auf Anforderung des Anwenders z.B. eine Tabelle umsortieren und ausgeben. Gruß Tommy
@@Tommy
Hast du vielleicht ein Superbillig-Angebot gebucht, das kein PHP beïnhaltet und deshalb ist
AddHandler application/x-httpd-php
gesperrt?PHP wird ja ausgeführt, wenn die Datei auch php heißt.
Dann musst du deinen Hoster fragen, warum das mit AddHandler
auf deinem Webserver nicht geht.
Was spricht denn dagegen, die eine(?) Datei in .php
umzubenennen und einen Redirect einzurichten? (temp
? permanent
?)
🖖 Live long and prosper
Hallo Tommy,
Die Datei enthält sehr viel HTML-Zeilen und einige PHP-Aufrufe, die auf Anforderung des Anwenders z.B. eine Tabelle umsortieren und ausgeben.
zur Thema „Alle html-Dateien durch den PHP-Parser schicken“
Ein PHP-Parser verbraucht deutlich mehr Ressourcen als das einfache Ausliefern einer html-Datei. Wenn aber (fast) alle html-Dateien ein paar Zeilen php-enthalten, kannst du auch alle html-Dateien durch den PHP-Parser schicken.
Wobei man sich überlegen sollte, ob wirklich jede Seite bei jedem Aufruf vom php neu generiert werden muss, oder ob man das nicht besser einmal bei Inhaltsänderungen macht. Sind die Inhalte wirklich so dynamisch?
Zum Tabellen sortieren haben wir was im Wiki: https://wiki.selfhtml.org/wiki/JavaScript/Tutorials/Tabellen_dynamisch_sortieren
Gruß
Jürgen
@@JürgenB
Zum Tabellen sortieren haben wir was im Wiki: https://wiki.selfhtml.org/wiki/JavaScript/Tutorials/Tabellen_dynamisch_sortieren
Das ist aber ein anderer Anwendungsfall.
Ob man die Daten besser serverseitig sortiert oder das jedem Client überlässt, hängt davon ab, wie wahrscheinlich es ist, dass Nutzer die initial sortierten Daten nochmals anders sortiert haben wollen. Evtl. auch von der Menge der Daten.
🖖 Live long and prosper
Hallo Gunnar,
initial Sortieren muss man aber nicht bei jedem Seitenaufruf, es sei denn, die Daten ändern sich bei (fast) jedem Aufruf. Sonst reicht es doch, die Daten schon sortiert auf den Server zu legen.
Gruß
Jürgen
@@JürgenB
initial Sortieren muss man aber nicht bei jedem Seitenaufruf, es sei denn, die Daten ändern sich bei (fast) jedem Aufruf. Sonst reicht es doch, die Daten schon sortiert auf den Server zu legen.
Ich dachte dabei an eine durch den Nutzer bestimmte Sortierung – per Parameter:
https://example.net/data?sortby=name
vs.
https://example.net/data?sortby=date
.
Wenn der Nutzer danach eine andere Sorierung wünscht, könnte ein neuer Request an den Server geschickt werden oder die schon beim Client vorhandenen Daten könnten clientseitig umsortiert werden.
🖖 Live long and prosper
Hallo Gunnar,
Hast du vielleicht ein Superbillig-Angebot gebucht, das kein PHP beïnhaltet und deshalb ist
AddHandler application/x-httpd-php
gesperrt?
auch das müsste einen 500er schmeißen, weil dann der Handler application/x-httpd-php nicht bekannt ist.
Den Suffix
Den Suffix? Ich kenn Präfix und Suffix als deutsches Fremdwort mit das, also Neutrum. Andere Meinungen? 🤔
Einen schönen Tag noch
Martin
@@Der Martin
Den Suffix
Den Suffix? Ich kenn Präfix und Suffix als deutsches Fremdwort mit das, also Neutrum. Andere Meinungen? 🤔
Der Bugfix, der Suffix. 😜
Wiktionary sagt: das.
Ähm, [zʊˈfɪks]? Wer sagt denn sowas?
🖖 Live long and prosper
Hallo,
Der Bugfix, der Suffix. 😜
jaja, demnächst erzählst du mir auch noch, Suffix käme von "Suff". 😂
Wiktionary sagt: das.
Ähm, [zʊˈfɪks]? Wer sagt denn sowas?
🤷
Einen schönen Tag noch
Martin
@@Gunnar Bittersmann
Der Bugfix, der Suffix. 😜
Nicht zu vergessen: der Idefix.
🖖 Live long and prosper
Hallo,
Der Bugfix, der Suffix. 😜
Nicht zu vergessen: der Idefix.
und der dedlfix!
Einen schönen Tag noch
Martin
Warum wird das Vorgehen hier so zerissen, wenn die Möglichkeit hierfür so oft im Internet erwähnt wird?
Mein Einwand kam, weil von einer html Datei nunmal nicht erwartet wird dass sie php enthält. Sonst nennt man sie nämlich php 😉
Also warum nicht so machen wie es allgemein üblich ist, sondern unbedingt etwas anderes das niemand richtig nachvollziehen kann und das nur mit umständlichen Spezialkonfigurationen funktioniert?
Mein Einwand kam, weil von einer html Datei nunmal nicht erwartet wird dass sie php enthält. Sonst nennt man sie nämlich php 😉
Ich könnte auch argumentieren, die Datei enthält überwiegend html, warum also php nennen? Im übrigen kennen die Vielzahl der Laien-Anwender eher den Begriff html als php.
@@Tommy
Ich könnte auch argumentieren, die Datei enthält überwiegend html, warum also php nennen?
Das Verhältnis ist irrelevant. Sobald der Code eine Zeile PHP enthält, muss er durch den PHP-Interpreter.
Im übrigen kennen die Vielzahl der Laien-Anwender eher den Begriff html als php.
Da HTML und PHP grundverschiedene Dinge sind, würde ich hier nicht von „kennen“ sprechen.
🖖 Live long and prosper
Ich habe eine Frage erlebt "Auf der Seite des Versandhauses... steht ein link .....php. Was passiert, wenn ich darauf klicke? Sonst sehe ich immer ....html"
@@Tommy
Ich habe eine Frage erlebt "Auf der Seite des Versandhauses... steht ein link .....php. Was passiert, wenn ich darauf klicke? Sonst sehe ich immer ....html"
IMHO sollte weder .html
noch .php
am Ende eines URLs stehen. Die serverseitig verwendete Technik geht Nutzer nichts an.
Auf Redirect habe ich dich schon hingeweisen.
Auch MultiViews wurden hier im Thread bereits erwähnt. Damit kannst du eine Datei foobar.html.php
nennen. Sie wäre per https://example.net/foobar.html
aufrufbar und würde durch den PHP-Interpreter laufen.
Wie war das? Haben MultiViews irgendwelche Nachteile? SEO?
🖖 Live long and prosper
Moin!
Wenn mit dem Aufruf von PHP mit der Performance argumentiert wird, dann gilt doch das gleiche (in geringerem Maße) auch für redirect.
Und ich kann diese Argumente nicht mehr hören. Als am Großrechner Cobol aufkam, kam genau dieses Argument der Performance, "Assembler ist wesentlich schneller". Und das ging weiter mit den 3. und 4. Sprachgenerationen.
Vergessen wurde dabei, dass auch die Rechner schneller wurden!
Also lasst den Thread-Ersteller doch sein PHP in eine HTML-Datei einbauen.
Vielleicht hört er auf den Rat, den Hoster zu kontaktieren, denn auch ich verwende die htaccess-Anweisung problemlos.
Servus
@@Mitleser
Vergessen wurde dabei, dass auch die Rechner schneller wurden!
Ja. Aber der Geschwindigkeitszuwachs sollte nicht durch Bullshit zunichte gemacht werden.
Also lasst den Thread-Ersteller doch sein PHP in eine HTML-Datei einbauen.
Lassen wir doch. Es ging ja darum, nicht alle .html
-Dateien durch den PHP-Interpreter zu jagen, sondern nur die (eine?), die tatsächlich PHP-Code enthält. Und auch das sollte man per .htaccess recht einfach hinbekommen.
🖖 Live long and prosper
Allerdings soll die Anwendung mit der Endung html erstellt werden.
Ich würde demjenigen der das so haben möchte erklären dass das mit großer Wahrscheinlichkeit nicht so sein soll, genauso wie man Bilder nicht mit der Endung .pdf oder .txt speichert.
Was ist denn der Grund um das so machen zu wollen/müssen? Vielleicht gibt es ja eine Lösung die das Problem besser angeht.
Moin,
Ich würde demjenigen der das so haben möchte erklären dass das mit großer Wahrscheinlichkeit nicht so sein soll, genauso wie man Bilder nicht mit der Endung .pdf oder .txt speichert.
oder Gewürzgurken in einem Glas mit Apfelmus-Etikett.
Was ist denn der Grund um das so machen zu wollen/müssen? Vielleicht gibt es ja eine Lösung die das Problem besser angeht.
Zum Beispiel MultiViews. Dann braucht's nicht einmal das Suffix .html im Request, weil der Apache selbst etwas Passendes raussucht.
Einen schönen Tag noch
Martin
Hi, einiges davon könnte/wollte ich mit SSI machen, allerdings steht auf
"Die Unterstützung von SSI seitens der Hoster ist rückläufig."
Nach Rücksprache sollen die Dateien definitiv auf html enden.
Schöne Grüße
Tommy
@@Tommy
"Die Unterstützung von SSI seitens der Hoster ist rückläufig."
Auch das bekommst du per Nachfrage bei deinem Hoster heraus.
Nach Rücksprache sollen die Dateien definitiv auf html enden.
Ich glaube, du stellst den falschen Leuten die falschen Fragen.
🖖 Live long and prosper
@@Tommy
"Die Unterstützung von SSI seitens der Hoster ist rückläufig."
Auch das bekommst du per Nachfrage bei deinem Hoster heraus.
Wenn Ihr schreibt, dass dies rückläufig ist, so ist zu erwarten, dass dies auch bei meinem Hoster gilt.
Ich glaube, du stellst den falschen Leuten die falschen Fragen.
Wen anders als die Besteller soll ich fragen?