Rolf B: html/php: button, der eine Datei ausführen lässt

Beitrag lesen

Hallo Her0ni,

dein Posting ist nicht sehr hilfreich. Seit Cheatah unsere beste Glaskugel zerdeppert hat... und die übrigen trüb sind, brauchen wir konkreteren Input.

Lasse ich das pi3d.php Sript manuell laufen

Und das heißt was? Rufst Du die URL durch Handeingabe in der Browser-Adresszeile auf?

klicke ich aber auf den Button auf der Internetseite funktioniert es nicht

"Funktioniert nicht" funktioniert nicht als Fehlerbeschreibung. Was erwartest Du, und was passiert statt dessen? Erscheint Fehlertext im Browser? Schau in die Entwicklerwerkzeuge des Browsers, was steht im Netzwerk-Tab? Kommt ein HTTP Fehlercode, kommt falscher Inhalt? Steht etwas im Error-Log des Webservers?

Hast Du Fehleranzeigen grundsätzlich abgeschaltet? Was steht diesbezüglich in deiner PHP.INI (Stichwort: display_errors)?

Du könntest zu Beginn deines PHP Scripts einmal einfügen:

error_reporting(E_ALL);
ini_set("display_errors", 1);

Werden dann Fehlermeldungen im Browser sichtbar?

Wenn manueller Aufruf bedeutet, dass Du das pi3d-Script auf der Kommandozeile deines Webservers (also des Computers) erfolgreich aufrufen kannst, dann wäre zu prüfen, mit welchen Rechten dein Webserver (diesmal: der HTTP Dienst. Apache, Tomcat, nginx, oderweißdergeierwas) unterwegs ist.

Der Webserver-Dienst läuft typischerweise unter einer technischen User-ID, nicht mit deinem interaktiven User. Und dann kommt er vielleicht gar nicht an /home/pi/start_pi3d.sh heran. Oder er kommt nicht an den Python-Interpreter heran. Oder das Script tut Dinge, die es mit den Rechten des Webserver-Dienstes nicht durchführen kann. Da gibt's viele Möglichkeiten, wofür Rechte fehlen können.

Auf Stackoverflow habe ich eine Diskussion dazu gefunden.

Im Übrigen hätte ich ein paar Haare zu spalten...

Das hier ist das Script des Webservers:
(...)

Nein, das ist kein Script. Das ist eine statische HTML Seite.

Und das ist das pi3d.php Script:

Ja, das ist ein Script.

Hinweis, unabhängig vom Thema: Gewöhne Dir an, ein PHP Script nicht auf ?> enden zu lassen. Grund: Man hat gerne mal hinter dem ?> ein Leerzeichen oder einen Zeilenumbruch übersehen, und dieses Whitespace kann einem, je nach dem Umständen, das Layout verhageln. Wenn das PHP Script per include eingebunden wird, kann es sogar die Funktion der Seite empfindlich stören, weil die erste Textausgabe dazu führt, dass PHP die Header sendet.

Ich möchte einen Button

<a> ist kein Button, sondern ein Link. Aber das <a> Element ist für deinen Zweck schon die richtige Idee.

Rolf

--
sumpsi - posui - obstruxi