PDA

Archiv verlassen und diese Seite im Standarddesign anzeigen : Xampp Problem beim Includen von Webseiten



PAN
19.05.2009, 13:10
Hey,

ich habe ein Problem bei Xampp
Undzwar:
Ich möchte eine Externe Seite Includen (in diesem Fall ist es Google)
Aber es kommt iwie immer ein Fehler:

Warning: include(www.google.de) [function.include (http://localhost/function.include)]: failed to open stream: No such file or directory in C:\Users\*****\XAMPP\xampplite\htdocs\index.php on line 4

Warning: include() [function.include (http://localhost/function.include)]: Failed opening 'www.google.de' for inclusion (include_path='.;C:\Users\*****\XAMPP\xampplite\ph p\pear\') in C:\Users\*****\XAMPP\xampplite\htdocs\index.php on line 4

Hoffe mir kann jemand Helfen.

MfG PAN

VeN0m
19.05.2009, 13:16
Moin moin PAN,

Ich denke mal, Du hast richtig gedacht aber das, was Du möchtest falsch ausgeführt ;).
Include() *klick* (http://de.php.net/manual/de/function.include.php) ist eine Funktion, um ein Script bzw. eine Datei zu inkludieren. Das heißt quasi, dass an der Stelle, wo der include()-Befehl steht der Inhalt der anderen Datei eingefügt wird. Auf diese Weise werden z.B. Verbindungsscripte etc. eingefügt. Übrigens kannst Du Dir www. sparen. Erwartet wird eher http:// (als Protokoll). Geht meines Wissens nach auf diese Art dennoch nicht.
Das, was Du suchst ist sicherlich eine Methode, um Google innerhalb Deines Scriptes anzeigen zu lassen. Das geht in HTML per Iframe:



<iframe src="http://google.de" frameborder="0" scrolling="auto">Ihr Browser unterstützt Inlineframes nicht!</iframe>


Zum lesen (falls interessiert): PHP.net - Include() (http://de.php.net/manual/de/function.include.php) und SelfHTML - Iframes (http://de.selfhtml.org/html/frames/eingebettete.htm)

Ich hoffe mal das hilft Dir und ich habe Dich richtig verstanden.
Viel Erfolg.

AlterHacker
19.05.2009, 13:43
laut der Fehlerbeschreibung machst du include("www.google.de"); und nicht include("http://www.google.de/");

Aber wie mein Vorposter schon geschrieben hat, sinnfrei.
$inhalt = implode('', file("http://www.google.de/"));
echo $inhalt;

noctem
19.05.2009, 13:47
@PAN:
Wie gesagt wurde: Probiere es mal mit http:// am Anfang (und vielleicht /index.php am Ende).
Ansonsten muss die Einstellung allow_url_include auf On gestellt sein. (Normal in der php.ini. Ob das bei Xampp anders ist weis ich nicht.)

@Power-Sven:
Es ist egal ob er die Seite per include() holt oder als iframe einbindet. Mit include kann man ebenso externe Dateien einbinden, wenn, wie oben erwähnt, allow_url_include aktiviert ist.
Ein iframe ist jedoch zweifellos die bessere Variante für das einbinden.

VeN0m
19.05.2009, 13:51
Es ist egal ob er die Seite per include() holt oder als iframe einbindet. Mit include kann man ebenso externe Dateien einbinden, wenn wie oben erwähnt, allow_url_include aktiviert ist.


Sorry, ja das meinte ich. Durch das includen eines Scriptes kommt dieses ja zur Ausführung aber die Methode ist nicht sonderlich elegant. Ich hatte das nur falsch ausgedrückt ;). Mit "es geht meines Wisens nach trotzdem nicht" meinte ich die php.ini-Einstellung allow_url_fopen(). Triff diese Einstellung erstmal. Viele Hoster schalten die mal eben aus, wegen Sicherheitsgründen etc.
Man kann natürlich per ini_set() versuchen die Einstellung für das aktive Script zu "umgehen"...


Ein iframe ist jedoch zweifellos die bessere Variante für das einbinden.

...aber warum umständlich, wenn es auch "einfach" geht, nicht wahr? ;)

noctem
19.05.2009, 13:59
Dass allow_url_include Off sein sollte ist richtig. (Sicherheitstechnisch.)


Durch das includen eines Scriptes kommt dieses ja zur AusführungBei dem include von beispielsweise google.de kommt nichts mehr zur Ausführung, da googles Webserver ja nicht mit dem php-Quellcode sondern mit dessen Ausgabe, sprich HTML-Code, antwortet. Dieser wird dann an unserer include-Stelle im Script einfach nur ausgegeben.

Ob ein iframe nun einfacher ist ist, je nach Anwendung, Ansichtssache. :)
Jedoch ist ein iframe dafür gedacht und bietet einem alles was man dazu braucht.

~noctem :D

PAN
19.05.2009, 14:13
Wenn ichs mit HTTP mache kommt eine Fehler zeile mehr
und in der PHP.ini finde ich kein allow_url_include

Aber thanls Trotzdem ;D

MfG

VeN0m
19.05.2009, 14:17
Hast Du es denn mal per IFrame versucht statt per include? Bzw. hast Du mal einen Codeausschnitt für uns? Oft liegt es auch an z.B. falscher Zeichensetzung in den / der Zeile davor. Ich empfehle aber, es per Iframe zu machen. Falls Du es innerhalb von PHP machen willst:



print "<iframe src='http://google.de' frameborder='0' scrolling='auto'>Ihr Browser kann keine Inlineframes darstellen</iframe>";


Ist, wie Noctem schon sagte eben dafür gedacht, Seiten innerhalb des Scriptes darzustellen ;).

AlterHacker
19.05.2009, 14:22
Hast du mal mein implode file bla versucht?

Ansonsten:

php.ini (bei xampp: C:\xampp\php\php.ini)
allow_url_fopen = On
allow_url_include = On
;-)

PAN
19.05.2009, 14:39
php.ini (bei xampp: C:\xampp\php\php.ini)
allow_url_fopen = On <--Habe ich gemacht
allow_url_include = On <--Find ich net in der Ini
;-)

Hab beides versucht!

AlterHacker
19.05.2009, 14:46
$inhalt = implode('', file("http://www.google.de/"));
echo $inhalt;

sollte dann aber auch gehen.


Apache hast du aber neu gestartet ( sry, ich frag lieber mal ;-))

VeN0m
19.05.2009, 14:47
Allow_url_include steht eigentlich direkt unter allow_url_fopen. Sonst halt Steuerung + f und danach suchen. wenn es nicht drin ist. Laut PHP.net steht allow_url_include standardmäßig auf "0" (off). Siehe hier *klick* (http://de2.php.net/manual/de/ini.list.php).
Und wenn die Funktion dort aufgelistet ist lässt sie sich normal per ini_set() ändern.
Ganz oben in das Script, am besten kurz nach <?php schreibst Du:



ini_set("allow_url_include","on");


Oder eben 1 statt on... Probieren ;).
Siehe auch PHP-Manual - Ini_set() (http://de2.php.net/manual/de/function.ini-set.php).
Das Problem ist, dass es dann nur für das aktive Script gilt und nicht für weitere.
Aber wieso versuchst Du es nicht per IFrame? Das geht grundsätzlich immer.

EDIT: Ja oder so, wie AlterHacker sagt. Obwohl ich da eher readfile() *klick* (http://de2.php.net/manual/de/function.readfile.php) oder file_get_contents() *klick* (http://de2.php.net/manual/de/function.file-get-contents.php) bevorzugen würde, da dann kein Array genutzt werden würde:


$content = file_get_contents("http://google.de");
print $content;

Oder mache ich da einen Denkfehler? ;)