Markus: include("http://server.b/test.php"); test();

hallo zusammen...

ich habe auf server a eine index.php, diese beinhaltet einen include("http://server.b/test.php");

in dieser test.php gibt es eine funktion test()...

sobald ich dann in der server.a/index.php die funktion test() aufrufe, bekomme ich den fehler: "call to undefined function test ..."

gibt es da eine möglichkeit, diese funktion dennoch zu nutzen?

wäre über ratschläge, tipps oder workarounds sehr erfreut...

bis dann!

markus

  1. Hallo,

    soweit ich weiß, ist es nicht so ganz ohne weiteres möglich einfach eine externe Seite eines anderen Servers zu importieren. Ich denke du solltest eine FTP-Verbindung herstellen und über diese auf die Datei zugreifen. Schließlich bekommst Du mit deinem include() auch nur die fertige html seite vom Server geliefert und da ist bestimmt keine php-funktion mehr drin (wenn das include denn funktioniert).

    Grüße, Matthias

    p.s. halt uns auf dem laufenden

    1. Hallo

      Schließlich bekommst Du mit deinem include() auch nur die fertige html seite vom Server geliefert und da ist bestimmt keine php-funktion mehr drin (wenn das include denn funktioniert).

      Mit include() wird der komplette inhalt der Datei an die stelle gesetzt wo der befhel steht. Also auch php-Befehle und nicht nur die generierte html!

      Tobias

      --
      http://www.tobiasklare.de
      fo:) ch:? rl:( br:^ n4:° ie:{ mo:) va:| fl:) ss:| ls:<
      Die Erklärung zum Selfcode findest du hier: http://emmanuel.dammerer.at/selfcode.html
      Einen Decoder für den Selfcode findest du hier: http://peter.in-berlin.de/projekte/selfcode
      1. Hi,

        Schließlich bekommst Du mit deinem include() auch nur die fertige html seite vom Server geliefert und da ist bestimmt keine php-funktion mehr drin (wenn das include denn funktioniert).
        Mit include() wird der komplette inhalt der Datei an die stelle gesetzt wo der befhel steht. Also auch php-Befehle und nicht nur die generierte html!

        Vorausgesetzt, daß der ferne Server php-Code ausliefert...
        Es geht um include("http://...");

        cu,
        Andreas

        --
        Der Optimist: Das Glas  ist halbvoll.  - Der Pessimist: Das Glas ist halbleer. - Der Ingenieur: Das Glas ist doppelt so groß wie nötig.
        http://mud-guard.de/? http://www.andreas-waechter.de/ http://www.helpers.de/
        1. Vorausgesetzt, daß der ferne Server php-Code ausliefert...
          Es geht um include("http://...");

          es geht, sobald ich die beiden .php auf einem server leigen habe und per pfad includiere...

          lasse ich beide auf dem einen server und includiere per url, so erkennt er die funktionen nicht mehr... einzelne variablen des includierten skriptes außerhalb von funktionen können im includierenden (übergeordneten) skript ab dem include genutzt werden, funktionen nicht...

          ist das seltsam oder eine sicherheitseinstellung?

          1. hi,

            Vorausgesetzt, daß der ferne Server php-Code ausliefert...
            Es geht um include("http://...");
            es geht, sobald ich die beiden .php auf einem server leigen habe und per pfad includiere...

            lasse ich beide auf dem einen server und includiere per url, so erkennt er die funktionen nicht mehr... einzelne variablen des includierten skriptes außerhalb von funktionen können im includierenden (übergeordneten) skript ab dem include genutzt werden, funktionen nicht...

            ist das seltsam oder eine sicherheitseinstellung?

            immer noch nicht gerafft?

            bei einem aufruf per
            include "loakle_datei.php";
            wird der php-code nicht geparst, sondern in das script in dem das inklude steht übernommen, das ist wie copy & paste, so dass der code inklusive eventueller funktionsdefinitionen dort so drin steht, als wäre er ´"richtig" an dieser stelle reingeschrieben worde.

            bei einem include über "http://..." hingegen parst der server die datei zunächst, also wird nicht mehr der php-code ausgeliefert, sondern lediglich die _ausgabe_ des php-scriptes.

            jetzt klar?

            gruss,
            wahsaga

  2. Hi,

    ich habe auf server a eine index.php, diese beinhaltet einen include("http://server.b/test.php");
    in dieser test.php gibt es eine funktion test()...
    sobald ich dann in der server.a/index.php die funktion test() aufrufe, bekomme ich den fehler: "call to undefined function test ..."
    gibt es da eine möglichkeit, diese funktion dennoch zu nutzen?

    Wenn server a  (((NICHT Windows) oder (PHP-Version >= 4.3.0)) und (allow_url_open == true)) == true: ja.

    Siehe auch http://www.php.net/manual/en/function.include.php
    cu,
    Andreas

    --
    Der Optimist: Das Glas  ist halbvoll.  - Der Pessimist: Das Glas ist halbleer. - Der Ingenieur: Das Glas ist doppelt so groß wie nötig.
    http://mud-guard.de/? http://www.andreas-waechter.de/ http://www.helpers.de/
    1. Hi,

      ich habe auf server a eine index.php, diese beinhaltet einen include("http://server.b/test.php");

      Ach ja, das ganze solltest Du Dir aber gut überlegen, wenn Du nicht Kontrolle über server b hast.
      So ein Script ist schnell mal durch ein anderes ersetzt (das z.B. Dateien löscht - dies geschieht ja dann auf server a).

      Und wenn Du Kontrolle über server b hast, dann wäre es doch sowieso einfacher, das File EINMAL auf server a zu schieben...
      Der http-Request für den include braucht ja einiges an Zeit, und die geht Dir von Deiner max-exec-Time ab...

      cu,
      Andreas

      --
      Der Optimist: Das Glas  ist halbvoll.  - Der Pessimist: Das Glas ist halbleer. - Der Ingenieur: Das Glas ist doppelt so groß wie nötig.
      http://mud-guard.de/? http://www.andreas-waechter.de/ http://www.helpers.de/
  3. Moin!

    gibt es da eine möglichkeit, diese funktion dennoch zu nutzen?

    Rufe die URL, die du includen willst, einmal in deinem Browser auf. Lasse dir den Quelltext anzeigen. Wenn da PHP-Quellcode drinsteht, der eine Funktion test() definiert, dann hast du ein großes Rätsel. Wenn nicht, solltest du eigentlich selber sehen, dass das, was du includest, kein PHP-Code ist.

    - Sven Rautenberg

    --
    ss:) zu:) ls:[ fo:} de:] va:) ch:] sh:) n4:# rl:| br:< js:| ie:( fl:( mo:|