Ankündigung

Einklappen
Keine Ankündigung bisher.

php-Dateien werden im Browser nicht dargestellt

Einklappen

Neue Werbung 2019

Einklappen
X
  • Filter
  • Zeit
  • Anzeigen
Alles löschen
neue Beiträge

  • php-Dateien werden im Browser nicht dargestellt

    Hallo,

    nachdem ich bei Google keine Lösung für mein Problem zu finden konnte, versuche ich es hier. Es ist bestimmt eine absolute Anfängerfrage, aber ich komme an einer Stelle einfach nicht weiter.

    Ich habe auf meinem Linux-System LAMP installiert. Apache 2 läuft und PHP wohl auch.

    Bei meinem System liegt z.B. die test.php im Ordner /srv/http. rufe ich die Datei mit
    Code:
     localhost/test.php
    auf, wird die Testseite mit allen Informationen ordnungsgemäß angezeigt. Dies passiert mit jeder anderen php-Datei in gleicher Weise. Also muß der Webserver und PHP wohl funktionieren.

    Öfne ich die Datei im Browser über Datei öffnen und versuche sie aus dem Verzeichnis
    Code:
     /srv/http/test.php
    aufzurufen, fragt der Broser, was er machen soll. Sage ich ihm, er soll die Datei mit Firefox öffnen, öffnet er einen neuen Reiter und das Ganze geht von vorn los.

    Die Zugriffsrechte auf den Ordner sind so, dass praktisch jeder Benutzer drauf zugreifen kann.

    Welchen Lösungsansatz muß ich finden, um das abzustellen?

    LG Michael


  • #2
    http://php-de.github.io/jumpto/was-ist-php/
    Der Browser hat keinen PHP-Interpreter eingebaut.
    Zitat von nikosch
    Macht doch alle was Ihr wollt mit Eurem Billigscheiß. Von mir aus sollen alle Eure Server abrauchen.

    Kommentar


    • #3
      Vielen Dank für die schnelle Rückinfo. Komme aber noch nicht weiter.

      Wenn ich das richtig verstehe, wird meine Anfrage über localhost nach der test.php-Datei, ordnungsgemäß von meinem Webserver Apache2 dem php-Parser übergeben, die Anfrage in html umgewandelt, sodass der Browser die Testseite darstellen kann. Warum aber passiert das nicht, wenn ich über den Browser auf die Datei will. Müsste diese Anfrage nicht auch gleich an Apache weitergeleitet werden? Oder was muss ich einstellen, damit der Webserver mitbekommt, dass der php-Parser parsen soll?

      Der Parser muß funktionieren, sonst würde die Testseite nicht angezeigt werden.

      Davon abgesehen, könnte ich damit ja leben, aber wenn ich aus einer kleinen html-Datei ein noch kleineres Formular mit php auswerten will, passiert das Gleiche. Ich drücke den Absende-Button, die Anfrage müsste an den Webserver geschickt werden, der dem Parser sagen soll: Parse!" aber stattdessen geht das "Reiterspielchen" los. Html- und php-Datei liegen im o.g Verzeichnis.

      Übrigens verhalten sich meine anderen Browser (Chrome, Opera) ähnlich.

      Was läuft falsch?

      Kommentar


      • #4
        Der Parser muß funktionieren, sonst würde die Testseite nicht angezeigt werden.
        Es ist ein Unterschied, ob du eine Datei von der Festplatte öffnest, oder einen Webserver danach fragst.
        Über 90% aller Gewaltverbrechen passieren innerhalb von 24 Stunden nach dem Konsum von Brot.

        Kommentar


        • #5
          Und nein, Apache ist nicht magisch unter etwas wie "Windows" mit der Dateiendung .php verknuepft und prozessiert den Inhalt fuer die Ausgabe. Du kannst PHP auch ausserhalb eines Webservers starten und .php-Dateien (koennen auch anders benannt sein) starten. Das wird gerne gemacht, um Hintergrundaufgaben zu erledigen. Und das ist aber nicht das Gleiche, als wenn du PHP ueber einen Webserver startest, wenn HTML erzeugst du so in der Regel nicht.

          Was passiert also, wenn PHP ueber den Webserver laeuft? Es wird mit ein paar webserver-spezifischen Argumenten gestartet und erzeugt dann irgendwas, was der Webserver dann an den anfragenden Browser ausgibt. HTML ist dafuer beruehmt. Aber du kannst quasi beliebige Inhalte mit PHP erzeugen (nicht bloß durchschleusen): CSV-Daten, Exceldaten, Bilder, Sounddaten und theoretisch sogar Videos. Letzteres macht eher selten Sinn.

          PHP muss auf jeden Fall aktiv ausgefuehrt werden. Das passiert nicht, wenn du eine .php-Datei in den Browser ziehst. Das ist nur eine Text-Datei mit der Endung .php, nichts weiter.
          Standards - Best Practices - AwesomePHP - Guideline für WebApps

          Kommentar


          • #6
            Das ist schon verständlich. Wie kann ich aber unter den gegebenen Umständen sicherstellen, das z.B. ein Html-Formular über PHP ausgewertet werden kann? Wenn ich z.B. solche Formulare testen will, dann muss die Anfrage zum Webserver gelangen und PHP erzeugt HTML, das vom Browser dargestellt werden kann. Habe ich meine HTML-Datei mit dem Miniformular und meine PHP-Datei zur Auswertung im falschen Verzeichnis, sodass die Anfrage nicht an den Webserver übermittelt wird?

            Kommentar


            • #7
              Du hast deine Frage doch schon im ersten Beitrag selbst beantwortet.
              Alles was du an Formularen und Co. nutzen willst (d.h. immer wenn irgendeine Aktion mit PHP ausgeführt werden soll) rufst du sie über deinen Webserver auf.
              Code:
               localhost/test.php
              Liebe Grüße

              Kommentar


              • #8
                ... und jeder Verweis (link) innerhalb eines Html-Dokuments muss auch wieder eine Adresse ansprechen, auf der (d)ein Webserver horcht. Das lässt sich bequem uber relative Urls lösen.
                Standards - Best Practices - AwesomePHP - Guideline für WebApps

                Kommentar


                • #9
                  Zitat von mptaiko Beitrag anzeigen
                  Wenn ich z.B. solche Formulare testen will, dann muss die Anfrage zum Webserver gelangen und PHP erzeugt HTML, das vom Browser dargestellt werden kann. Habe ich meine HTML-Datei mit dem Miniformular und meine PHP-Datei zur Auswertung im falschen Verzeichnis, sodass die Anfrage nicht an den Webserver übermittelt wird?
                  Das meiste wurde schon gesagt, aber grundsätzlich: Nur weil der Server läuft heißt das ja nicht das er auch benutzt wird. Wenn du Dateien über den Webserver aufrufen willst, musst du das explizit machen, indem du im Browser eben (in deinem Fall) http://localhost/... aufrufst.
                  Wenn du aus deinem File-Browser eine Datei in einem Webbrowser öffnest ist es vollkommen unerheblich ob du einen Webserver laufen hast => du hast ihn nicht angesprochen, ergo wird er auch nichts tun.

                  Kommentar


                  • #10
                    Danke, manchmal sieht man den Wald vor lauter Bäumen nicht. Ich muß nur die html-Testdatei über localhost ansprechen und schon funktioniert alles perfekt!

                    Danke, danke, danke!

                    Kommentar

                    Lädt...
                    X