Marc: per include oder require parameter übergeben

Ist es möglich, per require parameter an die aufgerufene Seite zu übergeben, die normalerweise in der url stehen würden?

z.B. require (".../soundso.php?id=12344");

Oder gibt es eine Möglichkeit, falls das so nicht funktioniert, die das macht, wie ich es mir vorstelle?

By the way: Macht es einen Unterschied, ob ich require oder inlcude benutze? Hab jetzt schon in mehreren Quellen geguckt, aber nirgends was über explizite Einsatzgebiete gelesen...

  1. Hallo Marc.

    Ist es möglich, per require parameter an die aufgerufene Seite zu übergeben, die normalerweise in der url stehen würden?

    Warum meinst du, dass dies erforderlich wäre?

    Wenn du eine Datei foo.php hast:

    echo 'Foo';  
    require 'bar.php';  
    echo 'Baz';
    

    Und eine Datei bar.php:

    echo 'Bar';

    Dann hast du letztendlich nichts anderes als:

    echo 'Foo';  
    echo 'Bar';  
    echo 'Baz';
    

    Die zweite Datei wird lediglich eingebunden, hat damit also Zugriff auf Variablen in der Hauptdatei und umgeekehrt.
    Du kannst also in bar.php eine in foo.php deklarierte Variable jederzeit nutzen. (Auf eine Abfrage auf Existenz dieser Variable solltest du aber dennoch nicht verzichten.)

    By the way: Macht es einen Unterschied, ob ich require oder inlcude benutze? Hab jetzt schon in mehreren Quellen geguckt, aber nirgends was über explizite Einsatzgebiete gelesen...

    Siehe PHP-Manual zu include und require:

    „require() und include() sind in jeder Hinsicht gleichwertig mit der einen Ausnahme: der Umgang mit Fehlern. include() erzeugt ein Warning während require() in einem Fatal Error endet. Mit anderen Worten: scheuen Sie sich nicht, require() zu benutzen, wenn Sie möchten, dass eine fehlende Datei die Ausführung ihres Skripts beendet.“

    Einen schönen Mittwoch noch.

    Gruß, Ashura

    1. Ich brauche es aus folgendem Grund:

      Es gibt 2 Seiten, die der User selber aufrufen kann:

      seite1.php
      seite2.php

      Beide sollen ohne Parameter aufgerufen werden.

      Jetzt greifen aber seite1.php und seite2.php mittels require() auf seite_inc.php zu, die, gesteuert durch Parameter, verschiedene Inhalte dynamisch produziert. Eben diese Parameter muss Sie irgendwie erreichen...

      1. Hallo Marc.

        Es gibt 2 Seiten, die der User selber aufrufen kann:

        seite1.php
        seite2.php

        Beide sollen ohne Parameter aufgerufen werden.

        Soweit OK.

        Jetzt greifen aber seite1.php und seite2.php mittels require() auf seite_inc.php zu, die, gesteuert durch Parameter, verschiedene Inhalte dynamisch produziert. Eben diese Parameter muss Sie irgendwie erreichen...

        Warum legst du diese „Paramter“ dann nicht einfach in seite1.php und seite2.php als Variablen fest und fragst in seite_inc.php einfach die Existenz einer dieser beiden Variablen ab. Danach verarbeitest du den Inhalt dieser Variable wie gewohnt.

        (Und um deine Frage konkret zu beantworten: Nein, Parameter können über das *Datei*system nicht übergeben werden. Es würde in der Tat nach einer Datei namens „soundso.php?id=12344“ gesucht.)

        Einen schönen Mittwoch noch.

        Gruß, Ashura

        1. Hallo Marc.

          Es gibt 2 Seiten, die der User selber aufrufen kann:

          seite1.php
          seite2.php

          Beide sollen ohne Parameter aufgerufen werden.

          Soweit OK.

          Jetzt greifen aber seite1.php und seite2.php mittels require() auf seite_inc.php zu, die, gesteuert durch Parameter, verschiedene Inhalte dynamisch produziert. Eben diese Parameter muss Sie irgendwie erreichen...

          Warum legst du diese „Paramter“ dann nicht einfach in seite1.php und seite2.php als Variablen fest und fragst in seite_inc.php einfach die Existenz einer dieser beiden Variablen ab. Danach verarbeitest du den Inhalt dieser Variable wie gewohnt.

          (Und um deine Frage konkret zu beantworten: Nein, Parameter können über das *Datei*system nicht übergeben werden. Es würde in der Tat nach einer Datei namens „soundso.php?id=12344“ gesucht.)

          Einen schönen Mittwoch noch.

          Gruß, Ashura

          Ok - dieser Gedanke hatte mir gefehlt - Ich bedanke mich.

      2. Moin!

        Jetzt greifen aber seite1.php und seite2.php mittels require() auf seite_inc.php zu, die, gesteuert durch Parameter, verschiedene Inhalte dynamisch produziert. Eben diese Parameter muss Sie irgendwie erreichen...

          
        $param = 1; // oder 2  
        require('seite_inc.php');  
        
        

        Und fertig ist der Lack.

        - Sven Rautenberg

        --
        My sssignature, my preciousssss!
    2. Hi,

      „require() und include() sind in jeder Hinsicht gleichwertig ...“

      Das steht da? Ist nicht korrekt.

      include() kann per return einen Wert zurückgeben. require() kann das nicht.

      Gruß, Cybaer

      --
      Hinweis an Fragesteller: Fremde haben ihre Freizeit geopfert, um Dir zu helfen. Helfe Du auch im Archiv Suchenden: Beende deinen Thread mit einem "Hat geholfen" oder "Hat nicht geholfen"!
      1. Hallo Cybaer.

        „require() und include() sind in jeder Hinsicht gleichwertig ...“

        Das steht da? Ist nicht korrekt.

        Ich habe nicht ohne Grund die wörtliche Rede gewählt.

        include() kann per return einen Wert zurückgeben. require() kann das nicht.

        Kann ich nicht bestätigen.

        foo.php:

          <?php  
          error_reporting(E_ALL);  
          
          echo "Foo\n";  
          echo require 'bar.php';  
          echo "Baz";  
          ?>
        

        bar.php:
        <?php return "Bar\n"; ?>

        Sowohl bei include als auch bei require wird das „Bar“ zurück gegeben.

        Könntest du deine Aussage spezifizieren?

        Einen schönen Donnerstag noch.

        Gruß, Ashura

        1. Hi,

          Kann ich nicht bestätigen.

          Oh, ja, tatsächlich. =:-)

          Könntest du deine Aussage spezifizieren?

          Dummerweise habe ich mich ungeprüft davon fehlleiten lassen, daß im (deutschen) Manual bei include() auf die Verwendung von return() hingewiesen wird, bei require() hingegen nicht.

          *Gut*, daß ich von diesem Fehlglauben nun ab bin! =:-))

          Gruß, Cy-"Gut, daß wir mal drüber gesprochen haben"-baer ;)

          --
          Hinweis an Fragesteller: Fremde haben ihre Freizeit geopfert, um Dir zu helfen. Helfe Du auch im Archiv Suchenden: Beende deinen Thread mit einem "Hat geholfen" oder "Hat nicht geholfen"!