sinvoller einsatz von include und funktionen

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

  • #16
    um deine frage zu beantworten: der unterschied liegt nach meinem angelesenen wissen nur darin, dass eine inc.php "gaparst" werden kann, eine .inc aber nicht und wenn der direkte pfad angegeben wird, als text ausgegeben wird. ich habe es zunächst nur mit inc.php und .php verwechselt.


    aber nochmal, ich fragte nach grenzen der einsatzfähigkeit sowohl nach oben als auch nach unten, sprich, macht es irgendwann keinen sinn mehr sie zu nutzen und was kommt dann. (antwort u.a. oop) und das sind, so dachte ich erfahrungswerte und nicht das wissen um deren prinzipielle funktion.
    tja - und das ist halt falsch.

    1. mit Parsen hat das nichts zu tun.

    2. auch das ist falsch: include hatmit Erfahrungswerten nichts zu tun.

    include bedeutet lediglich daß an der Stelle wo include steht der Text der in der zu includierenden Datei steht eingefügt wird.

    Nicht mehr und nicht weniger.

    PHP-Code:
    // Beispiel:

    // index.php:
    echo "ich bin die index";
    include 
    "andere.php"

    // andere.php
    echo "hallo";

    // Das ergibt nach dem includen (aus "PHP-Sicht"):

    echo  "ich bin die index";
    echo   
    "hallo"
    Das ist alles. Ob die zu includiernde Datei die Endung .rhabarber oder .php oder .html oder .inc oder inc.php oder php.inc hat ist egal.

    Kommentar


    • #17
      Original geschrieben von Koala
      Das ist alles. Ob die zu includiernde Datei die Endung .rhabarber oder .php oder .html oder .inc oder inc.php oder php.inc hat ist egal.
      bei einem include über das filesystem hast du sicherlich recht.
      aber warum geht niemand auf meinen einwand ein?

      Kommentar


      • #18
        ich hab das mit der css-Endung gelesen, das ist dann eben eine Ausnahme.

        Kommentar


        • #19
          @ 3DMax

          naja, ich hab schon probleme dem zu folgen oder zu verstehen aber das wird nicht überraschen

          Kommentar


          • #20
            Nochmal zu der Include-Frage:

            Include packt einfach, wie Koala bereits beschrieben hat, den Inhalt einer Datei in eine andere, an genau die Stelle, wo das Include steht. Im Kontext der Includierenden Datei wird dann alles der Reihe nach ausgeführt.

            Das was du jetzt wahrscheinlich meinst, ist, dass es auch möglich ist, PHP-code in z.b. eine Textdatei (.txt) oder irgendwas anderes (.inc) zu schreiben und diesen zu includieren. Das include stört sich nicht daran, aber wenn jemand auf diesen Namen käme und ihn direkt im Browser eingibt, dann sieht er bei einer .txt oder einer .inc den PHP-code, während er bei einer .php-datei nur deren Ausgabe sieht.
            Das wäre dann kritisch, wenn darin z.B. Mysql-Verbindungsdaten stünden (include("mysqlconnect.txt") oder sowas).

            Das kann im Server umgestellt werden, dass er zum Beispiel auch .incs parsen soll - oder man nennt eben alle incs um in ....php.

            Außerdem wäre dazu zu sagen, wenn du zum Beispiel einen Aufbau hast mit einer Index-datei, die vielleicht überprüft ob jemand eingeloggt ist, und dann je nach geklicktem Link eine andere Datei includet (news.php, wasweißich.php), und jemand auf die idee kommt, die news.php direkt im browser aufzurufen, dann werden sie zwar geparsed (d.h. man sieht nur ihre ausgabe, nicht ihren Quelltext), aber die geheimen Nachrichten wären immer noch zu sehen, da die ja von der news.php ausgegeben werden.

            Dann wäre es sinnvoll, die includes alle in einen Ordner zu packen, und diesen mit z.B. htaccess zu schützen.

            Alles kapiert?
            ich glaube

            Kommentar


            • #21
              Original geschrieben von damilchmann
              naja, ich hab schon probleme dem zu folgen oder zu verstehen aber das wird nicht überraschen
              naja, das von mir war in der tat ein sonderfall.

              aber jetzt nochmal zu include. es wurde bereits mehrfach geschrieben, dass dabei die dateiextension völlig egal ist, d.h., die datei kann z.b. "file.txt" heißen.
              bindest du jetzt diese datei mit include 'file.txt' ein, wechselt der php-parser zunächst in den html-modus. findet der parser jetzt in dieser datei den öffnenden php-tag "<?php", wechselt der parser von dem html-modus in den php-modus, bis zum schließenden php-tag "?>".

              so weit, so gut.
              rufst du jetzt jedoch diese datei direkt über http://localhost/file.txt auf, so wird dir der klartext im browser dargestellt. dies ist so, da der webserver (apache) aufgrund der dateiendung "txt", die datei als txt-file ausliefert. bei dateien mit der endung "php", startet der webserver erst einen php-prozess und übergibt ihm die datei und liefert danach erst die php-geparste datei aus.
              daher ist es richtig, include-dateien immer mit der endung .php zu versehen (".inc.php" geht auch, würde ich aber nicht so machen), um einen direkten aufruf über http zu verhindern bzw. zu vermeiden, dass die datei nicht von php geparst wird (z.b. zugriffsdaten für eine datenbank.)
              grundsätzlich kannst du alle include-dateien in einen separaten ordner packen und diesen mittels .htaccess schützen oder den ordner ganz außerhalb des document-root platzieren.

              so, hoffe, dass es dir jetzt klarer geworden ist.

              EDIT: ministry war schneller, naja, doppelt hält besser
              Zuletzt geändert von 3DMax; 12.05.2007, 22:43.

              Kommentar


              • #22
                OffTopic:
                Wie schön du das gesagt hast
                ich glaube

                Kommentar


                • #23
                  Original geschrieben von ministry
                  OffTopic:
                  Wie schön du das gesagt hast
                  jaja, ich hab's ja schon editiert

                  Kommentar


                  • #24
                    jub, verstanden - thx

                    frage noch an ministry. du hast die möglichkeit erwähnt, ausgehend von der index alle oder einige weitere "seiten" über include aufzurufen. hast dabei aber auch auf ein sicherheitsproblem hingewiesen, welches vielleicht mit htaccess in einem extra ordner gelöst werden könnten. auch auf die gefahr hin, dass wieder einige aufschreien aber um dann ausgehend von der index auf diesen geschützten ordner zugreifen zukönnen, müssen ja auch diese zugangsdaten in der index hinterlegt sein. wie kann man das verhindern oder verhindern, dass diese daten nicht an unbefugte gehen?

                    Kommentar


                    • #25
                      Das ist nicht nötig.

                      htaccess blockiert nur die Aufrufe über http, also Requests von einem Browser zum Beispiel. Includieren kannst du sie trotzdem.

                      Du kannst auch, wenn du Zugriff auf den Server hast, die Includes außerhalb des document-rootes ablegen. Dann kannst du sie includieren, aber sie können nicht von außen aufgerufen werden, quasi dasselbe.

                      Edit: 3DMax und ich sind uns heute sehr einig
                      Zuletzt geändert von ministry; 13.05.2007, 00:56.
                      ich glaube

                      Kommentar


                      • #26
                        Original geschrieben von damilchmann
                        um dann ausgehend von der index auf diesen geschützten ordner zugreifen zukönnen, müssen ja auch diese zugangsdaten in der index hinterlegt sein.
                        ne, den ordner machst du komplett für http dicht:
                        Code:
                        deny from all
                        zugangsdaten brauchst du also nicht. und per php kannst du trotzdem per include darauf zugreifen.

                        Kommentar


                        • #27
                          OffTopic:
                          langsam wirds mir unheimlich

                          Kommentar


                          • #28
                            OffTopic:
                            aber du wirst langsam schneller
                            ich glaube

                            Kommentar


                            • #29
                              Original geschrieben von ministry
                              OffTopic:
                              aber du wirst langsam schneller

                              Kommentar


                              • #30
                                und mir gehen endlich kleine lichter auf

                                danke

                                Kommentar

                                Lädt...
                                X