include

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

  • include

    hi

    wenn ich eine datei mit include in ein script einlese, kann ich ja die variablen aus include verarbeiten...

    geht das jetzt auch irgendwie umgekehrt, dass ich variablen, die ich auf der eigentlichen seite deklariere in der include-datei verarbeite?
    die include-datei befindet sich auf einem anderen server.

    index.php
    PHP-Code:
    ...
    $a 'test';
    include(
    'http://www.andererserver.de/include.php');
    ... 
    include.php
    PHP-Code:
    <?
    echo $a;
    ?>
    wie krieg ich hin, dass das funktioniert?
    gruß hanspeter

  • #2
    das geht nur dann, sofern auf dem externen server kein PHP installiert ist oder du die Datei nicht .php sondern z.B. .txt nennst da sie sonst ansonsten bevor sie zu dir kommt durch den PHP-Parser geht und somit der Code :
    PHP-Code:
    <?
    echo $a;
    ?>
    als eine leere Datei interpretiert wird, da ja $a leer ist.

    Grüße
    Matthias

    Kommentar


    • #3
      Re: include

      Original geschrieben von hanspeter
      PHP-Code:
      ...
      include(
      'http://www.andererserver.de/include.php');
      ... 
      *headdesk* *headdesk* *headdesk* *headdesk*

      PHP-Code:
      include ('/www/htdocs/sonstwas/blabla/direkt_übers_filesystem/include.php'); 
      in den seltesten Fällen will man wirklich das ERGEBNIS eines php-Skriptes includieren ~_~



      Was kommt denn wenn du
      http://www.andererserver.de/include.php
      im Browser aufrufst? Nicht der php-Source! (sollte zumindest nicht...) D.h. du includierst eine schon vollzogene Ausgabe von $a und das ist doch nicht was du willst!
      Du musst die Datei über das Filesystem includieren (siehe mein Beispiel)

      Ein netter Guide zum übersichtlichen Schreiben von PHP/MySQL-Code!

      bei Klammersetzung bevorzuge ich jedoch die JavaCoding-Standards
      Wie man Fragen richtig stellt

      Kommentar


      • #4
        also das mit der .txt datei klappt nicht.

        was ich aber ausprobiert habe, und was auch klappt, ist:
        ich gebe die variablen wie get-variablen mit:

        ...include.php?a=test

        @ghostgambler: versteh ich nicht. wie soll ich auf das script zugreifen?

        aber auch nicht mehr geht das auswerten von variablen, die in include.php deklariert wurden. hab das gefühl, das hat was mit dem was ghostgambler sagt, zu tun...

        Kommentar


        • #5
          Original geschrieben von hanspeter
          aber auch nicht mehr geht das auswerten von variablen, die in include.php deklariert wurden. hab das gefühl, das hat was mit dem was ghostgambler sagt, zu tun...
          hat es ... du musst die Datei direkt über das Filesystem includieren, also unter Windows z.B.

          PHP-Code:
          include('C:/xampp/htdocs/blabla/index.php'); 
          oder unter Linux eben
          PHP-Code:
          include('/xampp/htdocs/blabla/index.php'); 
          und nicht über
          PHP-Code:
          include('http://localhost/blabla/index.php'); 
          weil du bei letzterem die schon geparste Datei includierst!

          Ein netter Guide zum übersichtlichen Schreiben von PHP/MySQL-Code!

          bei Klammersetzung bevorzuge ich jedoch die JavaCoding-Standards
          Wie man Fragen richtig stellt

          Kommentar


          • #6
            irgentwie funktioniert das noch immer nicht.

            kann ich jetzt folgendes eingeben?
            include('/www/htdocs/meinserver.de/unterordner/include.php');

            wenn ich in der includedatei schreibe:
            echo 'test' dann gibt er 'test auch aus, aber wenn ich
            echo $a schreibe, dann gibt er das nicht aus. (ich arbeite jetzt ohne meine methode mit dem per get weitergeben)

            was auch nicht funkt ist, dass ich in include.php $b ein wert zuweise und dieser wert dann durch echo $b in der normalen datei ausgegeben wird...

            Kommentar


            • #7
              bitte den kompletten test-code zeigen.

              Kommentar


              • #8
                seite.php:
                PHP-Code:
                <!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
                <html>
                <head>
                <meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1">
                <title>Unbenanntes Dokument</title>
                </head>

                <body>
                <?php
                $a 
                'test';
                $seite 'http://web3.vs247071.vserver.de/lil/include2.php';
                echo 
                $seite;
                include(
                $seite);
                echo 
                $c;
                ?>
                </body>
                </html>
                include2.php
                PHP-Code:
                <?php
                echo '<br>include2.php: ';
                echo 
                $a;
                $c 'test2';
                ?>
                ist $seite = '/www/htdocs/web3.vs247071.vserver.de/lil/include2.php' funktioniert garnichts mehr

                Kommentar


                • #9
                  also das mit dem pfad hab ich jetzt gescheckt. weiß neuerdings auch, dass sich der pfad durch getcwd() anzeigen lässt. aber wei das ganze serverübergreifend gehen soll weiß ich noch immer nicht, denn der pfad, der bei getcwd() rauskommt ist ja nur der pfad auf dem aktuellen server...

                  Kommentar


                  • #10
                    Gar nicht, da Du Serverübergreifend immer nur die bereits geparste PHP-Seite erhältst. Entweder musst Du Deine Variablen per URL mitgeben oder das Ganze anders lösen.

                    Grüsse, Chris
                    [COLOR=orangered]Welch triste Epoche, in der es leichter ist, ein Atom zu zertrümmern als ein Vorurteil![/COLOR]

                    cubetech in Bern » Webdesign, Infrastruktur, Social Media, VoIP

                    Kommentar


                    • #11
                      oder du speicherst den Source auf dem anderen Server in einer .txt-Datei, sodass du den php-Code ungeparst erhälst

                      Ein netter Guide zum übersichtlichen Schreiben von PHP/MySQL-Code!

                      bei Klammersetzung bevorzuge ich jedoch die JavaCoding-Standards
                      Wie man Fragen richtig stellt

                      Kommentar


                      • #12
                        Original geschrieben von ghostgambler
                        oder du speicherst den Source auf dem anderen Server in einer .txt-Datei, sodass du den php-Code ungeparst erhälst
                        Jedoch wäre dies dann eine grössere Sicherheitslücke... Besonders wenn etwa in der txt noch MySQL-Zugangsdaten oder so stehen...

                        Grüsse, Chris
                        [COLOR=orangered]Welch triste Epoche, in der es leichter ist, ein Atom zu zertrümmern als ein Vorurteil![/COLOR]

                        cubetech in Bern » Webdesign, Infrastruktur, Social Media, VoIP

                        Kommentar


                        • #13
                          hab mal gelesen, dass man eine variable über return an das hauptscript zurückgeben kann. aber das funkt auch irgendwie nicht serverübergreifend.

                          kennt sonst irgendwer eine methode, wie man serverübergreifend von der includeten datei variablen an das hauptscript zurückgibt?

                          Kommentar


                          • #14
                            Das Include muß PHP-Code ausgeben, alles andere wandert sowieso gleich in den Ausgabepuffer des Hauptscripts.

                            PHP-Code gibt es aus, wenn es
                            a) nur eine Textdatei ist oder
                            b) sich selbst ausgibt

                            Letzteres kann man mit einem schwachen(!) Sicherheitscheck kombinieren.

                            include2.php:
                            PHP-Code:
                            <?php 
                            $hard_key 
                            'foobar';
                            if (isset(
                            $_GET['key']) && $_GET['key'] == $hard_key) {
                                echo <<<OUT
                            <?php
                            echo '<br>include2.php: ';
                            echo 
                            $a;
                            $c = 'test2';
                            ?>
                            OUT;
                            } else echo 
                            'piss off!';
                            ?>
                            seite.php fast wie gehabt:
                            PHP-Code:
                            <?php
                            $a 
                            'test';
                            $seite 'http://web3.vs247071.vserver.de/lil/include2.php?key=foobar';
                            echo 
                            $seite;
                            include(
                            $seite);
                            echo 
                            $c;
                            ?>

                            Kommentar


                            • #15
                              schön gedacht! funktioniert aber nicht

                              Kommentar

                              Lädt...
                              X