Wie kann ich über einen Button auf einer Html website auf dem Hostserver eine Website öffnen?
Ich möchte über einen auf dem Raspberry Pi gehostete webstite, auf der ein Button zu sehen ist, einen Seite öffnen. Das heißt wenn ich diesen Button drücke soll ein Bestimmter Link auf dem Pi geöffnet werden.
wie funktioniert das?
4 Antworten
Das heißt wenn ich diesen Button drücke soll ein Bestimmter Link auf dem Pi geöffnet werden.
Also soll der Webserver auf dem Pi eine Browserinstanz (z.B. Chromium) starten und dann in diesem eine Webseite öffnen?
Über die Kommandozeile dürfte das zunächst folgendermaßen realisierbar sein:
chromium-browser --app="YOUR URL"
(Weitere Optionen findest du hier).
Nun einmal angenommen, auf dem Pi ist tatsächlich ein Chromium-Browser installiert und deine Webseite läuft auf Basis von PHP / eines PHP-fähigen Webservers, welcher wiederum entsprechende Rechte hat, um Befehle auf der Konsole auszuführen.
Dann könnte deine Seite (bzw. demzufolge dein PHP-Skript namens index.php) folgendermaßen aussehen:
<!doctype html>
<title>Open page on Raspberry Pi</title>
<form>
<input name="open" type="submit" value="Open">
</form>
<?php
if (isset($_GET["open"])) {
shell_exec('chromium-browser --app="YOUR URL"');
}
?>
Das Formular mit seinem Button verweist auf dieselbe Seite, nur diesmal mit URL-Parameter (open). Da dieser Parameter existiert, wird die shell_exec-Funktion aufgerufen, die wiederum den obigen Befehl an die Konsole weitergibt.
- Lies die Fragestellung + den Kommentar: https://www.gutefrage.net/frage/wie-kann-ich-ueber-einen-button-auf-einer-html-website-auf-dem-hostserver-eine-website-oeffnen#comment-266816049
- Hast du dir meine Antwort von Beginn an aufmerksam durchgelesen?
Ich möchte über einen auf dem Raspberry Pi gehostete webstite, auf der ein Button zu sehen ist, einen Seite öffnen.
Die Fragestellung ist doch ganz einfach!
- Der Pi ist der Webserver
- Eine HTML Seite mit einem Button
- Wenn man Button drückt soll Andere Seite auf dem Pi geöffnet werden
Eigentlich also ein ganz normaler Link mit CSS für Erscheinungsbild eines Buttons.
Die neue Seite wäre normalerweise einfach eine Andere HTML Seite die auch auf dem Pi liegt.
Wenn die Neue Seite evtl auf dem Pi etwas dynamisches machen soll, müsste die Neue Seite z.b. anstatt eine HTML Seite eine PHP Seite sein, ( oder eine Andere Programmiersprache die es ermöglicht seine Aufgabe zu erledigen und eine HTML Seite als Ergebnis liefert)
Mit Formular .... hat die Frage also nichts zu tun.
Zumindest lese ich dort nichts was das umständliche Handling notwendig machen würde
Ja und ?
Link zu PHP Seite erfüllt doch z.b. ganz einfach die Forderung dass ein Link auf dem Server ausgeführt werden soll.
Aber vielleicht sollte der Fragesteller auch erst mal genau erklären was er eigentlich bezwecken möchte
Für Nachfragen an den Fragesteller findest du oben eine eigene Sektion. Dafür brauchst du mich nicht behelligen, zumal ich klar und deutlich geschrieben habe, worauf ich mich beziehe. Erst lesen, dann kommentieren.
Dann ließ die Frage
Wie kann ich über einen Button auf einer Html website auf dem Hostserver eine Website öffnen?D.h. der Button ist in einer HTML Seite und läuft damit bereits im Browser 🤣😂
Dazu braucht man keinen neuen Browser zu starten 😉
Damit wären wir wieder hier:
Lies die Fragestellung + den Kommentar: https://www.gutefrage.net/frage/wie-kann-ich-ueber-einen-button-auf-einer-html-website-auf-dem-hostserver-eine-website-oeffnen#comment-266816049
Hast du dir meine Antwort von Beginn an aufmerksam durchgelesen?
Auch wenn es dir schwer fallen mag, mach es immer und immer wieder, bis du es irgendwann verstehst.
Was ist so schwer zu verstehen an
"Einem Button auf einer HTML Seite"
D.h. der START ist eine HTML Seite!
Dein Formular das sich selbst nochmal aufruft ist also nicht notwendig😉
Außerdem liegt dein Button auf einer PHP und nicht auf einer HTML Seite
Ein direkter Aufruf aus dem HTML (Button) der das PHP-File aufruft würde also der Aufgabenstellung entsprechen und vollkommen reichen.
Ein zweiter Button auf dem PHP ist nicht notwendig
Wenn es wiederum nur um einen Request an eine Webseite geht (diese also nicht explizit visuell für den Nutzer sichtbar geöffnet werden muss), würde dieser PHP-Befehl vollkommen ausreichen:
file_get_contents("YOUR URL");
Je nach verwendeter programmiersprache mit Dingen wie "exec".
Dabei sollte aber in jedem Fall dringenst darauf geachtet werden, dass nur das ausgeführt wird, was ausgeführt werden soll.
Es steht nirgendwo, dass eine Datei ausgeführt werden soll. exec ist also nicht der richtige Weg.
Irgendetwas wirst du serverseitig selbstverständlich ausführen müssen, um dort eine Website in einem Browser oder sonstigem Programm zu öffnen. Nämlich eben diesen Browser/dieses Program. Oder ein Script, dass die Steuerung von Aktionen in diesem erlaubt.
Ich denke mal nicht:
Raspberry Pi, hier gibt es eine Webseite. Dort ist ein Button drauf. Wenn man den anklickt, soll eine andere Seite auf dem Pi geöffnet werden.
Ich denke mal die Betonung liegt auf "Button". Der Fragesteller will nicht auf einen Textlink klicken, sondern auf einen Button.
Raspberry Pi, hier gibt es eine Webseite. Dort ist ein Button drauf. Wenn man den anklickt, soll eine andere Seite auf dem Pi geöffnet werden.
Dabei soll aber egal sein, wo auf diesem Button gedrückt wird, egal, ob das auf dem Pi selbst geschieht oder auf einem anderen gerät, welches die Website aufruft.
Dann wirst du zusätlich eine serverseitige Sprache benutzen, die es dir erlaubt, auf dem Server Code auszuführen, der dort eine Website öffnet.
Soetwas dürfte es in eigentlich jeder Serversoftware geben. Eine der bekanntesten serverseitigen Scriptsprachen ist wohl PHP.
Du führst mit Dingen wie "exec" den passenden Befehl auf deinem Server aus:
https://www.php.net/manual/de/function.exec.php
Wie dieser aussieht, ist systemabhängig.
HTML läuft aber nicht auf dem Server sondern auf dem Browser des Users
Das geht mit einem ganz normalen Link. Das Aussehen des Links kannst Du durch Verwendung einer Grafik oder auch mit CSS beeinflussen. So kannst Du einen "Button" basteln.
Der link soll aber nicht auf dem endgerät sondern auf dem server ansich ausgeführt werden
Was ist den dieser "Link". "Link" heißt ja nur "Verknüpfung". Aber was genau wird denn da aufgerufen?
HTML wird immer auf dem Server heruntergeladen und in deinem Browser geöffnet und dargestellt
Wenn auf deiner Seite irgend etwas auf dem Server dabei passieren sollte - dann müsstest du mit PHP arbeiten, das läuft auf dem Server
Wenn auf deiner Seite irgend etwas auf dem Server dabei passieren sollte - dann müsstest du mit PHP arbeiten, das läuft auf dem Server
oder mit einer anderen Scriptsprache: Perl, Python, nodejs (serverseitiges JavaScript), ...
Auf der Webseite ist der Button?
Die Webseite ist doch HTML
D.h. die Links funktionieren ganz normal.
Du baust in den Button einen <a> Tag mit dem Link.
Wenn es eine relative Adresse ist zum Beispiel /test/test.html
Dann wäre der Link "./test/Test.html"
Wozu brauchst du PHP für einen einfachen HTML Link ?