Rolf B: URL per Button an Mediola Gateway senden

Beitrag lesen

Hallo Sigi,

Auf die letztgenannte Lösung wird es wohl, angesichts meines aktuell laufenden PHP Kurses, hinauslaufen. Dazu habe ich auch gleich noch eine Frage: Das PHP Script kann doch auch direkt vom Button aufgerufen werden, (habe ich noch nicht gemacht) läuft dann auf dem Server und kann den Befehl dann direkt an das Gateway absetzen, oder wird das auch vom Browser überwacht? Kann doch eigentlich nicht sein, weil der Code des Buttons auf dem Webserver abläuft, ausserhalb des Browser Zugriffs?!? (Die Page mit dem Button stellt der Webserver auf der Synology im selben Netz zur Verfügung)

Würde es dann reichen, einfach eine Datei auf das Gateway zu schreiben, ab "command" (einschliesslich), oder welcher Befehl wäre hierfür sinnvoll / zielführend?

Ich kenne das Gateway nicht und weiß deshalb nicht, ob command dort ein real existierendes Script ist oder eine virtuelle URI, die vom Mediola-Server ohne Bezug auf das Filesystem interpretiert wird. Ich weiß auch nicht, ob Du das Gateway als Webserver einsetzen kannst.

Aber es ist auf jeden Fall nicht Sinn der Sache, dorthin eine Datei zu schreiben. Wenn Du eine HTML-Seite auf das Mediola Gateway schreiben und von dort laden kannst, dann hast Du eh kein Problem, dann besteht das XSS Hindernis nicht. Dann brauchst Du keinen PHP-Vermittler, dann geht es direkt aus Javascript mit Fetch oder XMLHttpRequest. Probleme hast Du nur, wenn deine HTML Seite von einer anderen Adresse geladen werden muss.

Wenn Du es mit PHP von einem "Nicht-Mediola"-Server tun willst: Das Gateway reagiert auf HTTP Requests, d.h. dein PHP Script muss genau das tun. Das Auslösen eines HTTP Requests mit PHP besteht im Lesen einer Datei von dieser URL, das kannst Du mit file_get_contents() oder curl() tun. Einen nackten HTTP Request mit PHP auszulösen ist mühsam. Entweder programmierst Du das auf Socket-Ebene selbst, oder besorgst Dir eine PHP Library wie Guzzle oder php-restclient. Problem bei den Libraries ist, dass die Lernkurve dann erst richtig Fahrt aufnimmt, weil die über Composer installiert werden wollen, d.h. du hast dann gleich die nächste Library drin. Das könnte anstrengend werden.

Probier's aus PHP also erstmal mit file_get_contents, das dürfte am einfachsten sein. Einfach die Mediola-URL als Dateiname übergeben.

Rolf

--
sumpsi - posui - clusi