$_SERVER[PHP_SELF] bei include falsch

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

  • $_SERVER[PHP_SELF] bei include falsch

    Hallo!

    Habe eine Seite, auf der ich weitere PHP-Seiten(Tabellen) include.
    auf den Tabellenseiten habe ich das
    PHP-Code:
    <?php echo basename($_SERVER[PHP_SELF]); ?>
    drin.

    wenn ich nun auf meiner Hauptseite die Tabellenseiten include erscheint der Name der Hauptseite und nicht der der Teilseiten.

    Problem klar?

    siehe http://www.studentomat.de/testall.php (Hauptseite)

    includes 2 mal untereinander:

    http://www.studentomat.de/test.php

    Man sieht, obwohl test.php included ist, erscheint als Name testall.php.

    Ich sehe das Problem bei der Reihenfolge der Scriptausführung. Es wird erst included und dann der Name abgefragt. Kann man die Reihenfolge verändern, oder gibt eine andere Lösung?

    Grüße
    Kostenlos per SMS informieren lassen, wenn es Billig-Flieger-Aktionen mit 1€ Tickets gibt bei Flug7.de

  • #2
    ich weiß nicht, ob ich dein prob verstehe, ich hab php-vorlage, die mir am anfang immer
    Code:
    <?php
    /*
     setzt die pfade
     */
     
    for( $i = strpos( dirname ( $_SERVER['PHP_SELF'] ) , "/" , 0 ) ; $i <= strlen( dirname ( $_SERVER['PHP_SELF'] ) ) ; $i++ ) {
    	if( strpos( dirname ( $_SERVER['PHP_SELF'] ) , "/" , $i ) == $i ) $zumRoot .= "../";
    }
    include_once( $zumRoot . "pfade.php" );
    
    ?>
    schreibt. und in der pfade.php hab ich denn die pfade, ausgehend von wo auch immer und wie immer benötigt stehen. in den php-scripten steht denn immer ein include_once( $zumRoot . $meinPfad ."meineDatei.php" );

    hoffe, das hilft teil weiter

    megle

    Kommentar


    • #3
      danke dir!

      das ist es aber nicht.

      hast du die links oben bei mir mal geklickt? die ganze seite ist so aufgebaut. die einzelnen tabellen sind alle included.
      z.B.

      include menu.php
      include legende.php
      include logo.php

      nun brauche ich jeweils in den einzelnen "fragmenten" die funktion, die mir anzeigt, wie die datei heißt, die included wurde. PHP_SELF zeigt mit in diesem fall nur dreimal index.php an, obwohl da eigentlich stehen müsste menu.php darunter legende.php und darunter logo.php.


      hoffe habe es einigermaßen ausgedrückt.

      wozu ich das brauche: will eine edit-funktion nutzen, die per parameter den dateinamen übergibt z.b. menu.php. so übergibt es aber immer nur index.php. da hilft aber nix, wenn ich ja di menu.php ändern will.
      Kostenlos per SMS informieren lassen, wenn es Billig-Flieger-Aktionen mit 1€ Tickets gibt bei Flug7.de

      Kommentar


      • #4
        Original geschrieben von Jeronymo
        nun brauche ich jeweils in den einzelnen "fragmenten" die funktion, die mir anzeigt, wie die datei heißt, die included wurde. PHP_SELF zeigt mit in diesem fall nur dreimal index.php an, obwohl da eigentlich stehen müsste menu.php darunter legende.php und darunter logo.php.
        Da liegt ein Verständnisproblem vor.
        Es wird ein Script gestartet nämlich index.php. Egal welche weiteren Teilscripte Du einbindest (includest), sie werden in das aktive Script eingefügt. Somit ist die Ausgabe vollkommen korrekt.
        Du musst Dir ein include wirklich so vorstellen, als wenn der Code der include-Datei per Copy and Paste an der Stelle eingefügt wird, wo die include-Anweisung steht. Die aufgerufene Seite wird dabei nicht verlassen und $PHP_SELF verändert sich deshalb auch nciht.

        Wenn man manche Teilscripte von unterschiedlichen Ordnerleveln aus einbinden möchte, ist die einzige Lösung das Wurzelverzeichnis zu ermitteln und von da aus den absoluten Pfad zu ermitteln. Deshalb muss man bei vielen Scripten das Wurzelverzeichnis in der Konfiguration angeben.

        Kommentar


        • #5
          __FILE__
          I don't believe in rebirth. Actually, I never did in my whole lives.

          Kommentar

          Lädt...
          X