[Lösungsalternative gefunden!] php-code in html-Datei wird ignoriert.

Begonnen von DocCyber, 29 April 2016, 22:53:27

Vorheriges Thema - Nächstes Thema

DocCyber

Hallo Forum,

zur Verkürzung der html-Dateien bei der Verwendung diverser Widgets möchte ich letztere in php-Dateien programmieren, um sie anschließend in den html-Code einzubinden:

<html>
...
<?php include 'widget.php' ?>
...
</html>


Leider wird bei dieser Art von gemischtem Code der eingebundene php-Code ignoriert.
(Das Inspektor-Tool im Firefox zeigt, dass das 'include' auskommentiert wird.)

Nach stundenlangem Suchen habe ich herausgefunden, dass html-Dateien nicht grundsätzlich durch php geparst werden. Damit das funktiiniert, muss es in einer conf-Datei separat definiert werden.
Allerdings habe ich nicht heraus gefunden, was genau ich wo festlegen muss.

Kann mir bitte jemand auf die Sprünge helfen?


P.S.
Bei mir läuft:
# FHEM auf einem RasPi
# Apache2 als Webserver
# php5
Behandle die Menschen so, als wären sie, was sie sein sollten. Dadurch hilfst du ihnen zu werden, was sie sein können. (Goethe)


RPi-4B mit HM-CFG-LAN und viele weitere HM Komponenten, diverse Shellys, Tuya-Geräte, SMA und Solis Wechselrichter, Elgris EnergyManager, go-e Wallbox

setstate

- deine Seite hat die Endung .php?
- beim Apache ist php aktiviert?
- deine Seite wird von diesem Apache geliefert?
- was sagt das Logfile des Apache?

DocCyber

#2
Zitat von: setstate am 30 April 2016, 06:47:25
- beim Apache ist php aktiviert?
- deine Seite wird von diesem Apache geliefert?
- was sagt das Logfile des Apache?
Ja. Test-Scripte in php laufen problemlos, wenn sie in der Browserzeile direkt eingegeben werden. Logfile ist ebenfalls fehlerfrei.
Zitat
- deine Seite hat die Endung .php?
Nein, hatte sie zunächst nicht.
Nach dem Umbenennen von index.html in index.php gab es dann aber eine Fehlermeldung (file not found) beim Aufruf des Tablet-UI.
Daraufhin habe ich dann das FTUI-Attribut directoryindex entdeckt und festgelegt, dass die Startdatei index.php sein soll:
define TABLETUI HTTPSRV ftui/ ./www/tablet Tablet-UI
attr TABLETUI directoryindex index.php


Damit sollte es funktionieren, dachte ich.
Aber wenn ich nun Tablet-UI aufrufe, fragt Firefox, was mit der Datei zu tun ist.  :o  (s. Screenshot)
Äußerst eigenartig, da Firefox erwiesenermaßen weiß, was mit php-Dateien zu tun ist.

Was mache ich noch falsch? Irgendwie stehe ich auf dem Schlauch.  :-[
Behandle die Menschen so, als wären sie, was sie sein sollten. Dadurch hilfst du ihnen zu werden, was sie sein können. (Goethe)


RPi-4B mit HM-CFG-LAN und viele weitere HM Komponenten, diverse Shellys, Tuya-Geräte, SMA und Solis Wechselrichter, Elgris EnergyManager, go-e Wallbox

setstate

Der Httpsrv von Fhem kann auch kein benutzt auch kein PHP Interpreter. Du musst schon deinen Apache benutzen. Der rennt auf Port 80 nehme ich an. Der liefert dann deine Seite aus nicht Fhem.
Wenn dann FTUI von Fhem Werte abholen soll, muss der auf der Seite der Pfad entsprechend konfiguriert werden. Außerdem muss noch erlaubt werden, dass du Kreuz und quer Abfragen darfst, weil du von einem anderen Port werte holst, das ist eine Sicherheitsmaßnahme und kann mit CORS=1 im Fhem umgangen werden.

DocCyber


Hallo setstate,

vielen Dank für deine Antwort.

Warum frage ich das alles?
Ich habe allein im Erdgeschoss 6 Rolläden, die ich mit FHEM steuern möchte. Wenn ich im Tabet-UI dann z.B. die Schaltzeiten zum Hoch- und Runterfahren mit je einem datetimepicker-Widget realisieren möchte, muss ich 12 Mal quasi den selben HTML-Code haben, der bei einem Fehler 12x geändert werden muss. Mit php ist das deutlich natürlich einfacher.

Möglicherweise haben ja auch andere User Interesse daran haben, wiederverwendbaren Code mit php zu schreiben. Das Vorhaben scheint aber nicht ganz so trivial zu sein.

Jedenfalls habe ich habe noch nicht verstanden, was genau ich machen muss.
Vllt hast du noch etwas mehr Zeit, um etwas detailierter zu erklären, wie es geht.

Zitat von: setstate am 30 April 2016, 15:21:56Du musst schon deinen Apache benutzen. Der rennt auf Port 80 nehme ich an.
Ja, Apache läuft auf Port 80.

ZitatWenn dann FTUI von Fhem Werte abholen soll, muss der auf der Seite der Pfad entsprechend konfiguriert werden.
Welche Seite meinst du?
Wo müssen die php-Dateien stehen, damit sie von FHEM / TableUI ausgeführt werden?
Im root_dir (bei mir ist das  /var/www) oder unter ./www/tablet?

ZitatAußerdem muss noch erlaubt werden, dass du Kreuz und quer Abfragen darfst, weil du von einem anderen Port werte holst, das ist eine Sicherheitsmaßnahme und kann mit CORS=1 im Fhem umgangen werden.
Wo bitte muss ich das einstellen?


Vielen Dank vorab!!
Klaus

Behandle die Menschen so, als wären sie, was sie sein sollten. Dadurch hilfst du ihnen zu werden, was sie sein können. (Goethe)


RPi-4B mit HM-CFG-LAN und viele weitere HM Komponenten, diverse Shellys, Tuya-Geräte, SMA und Solis Wechselrichter, Elgris EnergyManager, go-e Wallbox

Haecksler


DocCyber

Zitat von: Haecksler am 01 Mai 2016, 11:03:19
Das macht genau was du willst...

Hallo Stefan,

Ja, das sieht wie eine geeignete Lösung aus.
Zwar nicht so, wie ich es mir vorgestellt hatte (php), aber das war auch keine Bedingung.
Jedenfalls werde ich das ausprobieren.
Ohne deinen Hinweis hätte ich den Thread nicht gefunden.
Vielen Dank!

Klaus
Behandle die Menschen so, als wären sie, was sie sein sollten. Dadurch hilfst du ihnen zu werden, was sie sein können. (Goethe)


RPi-4B mit HM-CFG-LAN und viele weitere HM Komponenten, diverse Shellys, Tuya-Geräte, SMA und Solis Wechselrichter, Elgris EnergyManager, go-e Wallbox