• Jetzt anmelden. Es dauert nur 2 Minuten und ist kostenlos!

PHP Datei in php aufrufen.

BDG

Mitglied
Hey Leute...
Die Frage kommt euch jetzt vielleicht einfach vor, aber irgendwie finde ich nichts, wie man mein "Problem" lösen kann..
Ich habe eine php-Datei, die über GET eine id verlngt, und über echo das dazugehörige Bild dann ausgibt.
Jetzt will ich dieses Bild in php haben ! Aber wie mache ich das ?
Ich habs bereits so versucht :
$image = include "core/scripts/get_img.php".$image_id;
Folgender Fehler :
Warning: include(core/scripts/get_img.php?id=87) [function.include]: failed to open stream: No such file or directory in /usr/www/users/****/beta/basti/xx_testSelect.php on line 85

Aber die Datei bestet GANZ sicher. WIe komm ich jetzt an die Ausgabe von der Datei ran ?

Mit freundlichen Grüßen,

BDG
 
Werbung:
Wieso sollte es keine get_img.php?id=87 geben ?
in get_img.php frage ich doch am Anfang nach einer id :$image_id = $_REQUEST['id'];
 
Werbung:
Hey,

das klappt so nicht. Wenn du eine PHP-Datei per PHP includest, wurde sie noch nicht durch den PHP-Parser verarbeitet.

Am besten du überlegst dir wie man das besser mit einer Funktion lösen könnte. Wenn du keine gute Lösung möchtest, bekommst du es vielleicht auch hiermit hin: http://php.net/manual/de/function.ob-get-contents.php

Update:
Achja, wenn du in deiner Datei

PHP:
$_GET['id'] = $image_id;

schreibst, sollte diese Variable auch in 'get_img.php' zur Verfügung stehen. So kannst du das vl auch lösen.
 
Zuletzt bearbeitet:
Wieso sollte es keine get_img.php?id=87 geben ?
in get_img.php frage ich doch am Anfang nach einer id :$image_id = $_REQUEST['id'];

Wenn du mal im Verzeichnis core/scripts/ genauer hinschaust, lautet der genaue Dateiname get_img.php und nicht get_img.php?id=78!

Die Funktion include() erwartet einen gültigen Dateinamen ohne Parameter!
Zur Veranschaulichung kannst du dir das Beispiel 3 in der PHP-Doku zu include() ansehen.

Du solltest dir noch einmal die Grundlagen genauer zu Gemüte führen.
 
Ja, oke, aber in Beispiel 3 macht er es doch genauso :
// Funktioniert
include 'http://www.example.com/file.php?foo=1&bar=2'

Oder wollen die mir damit sagen, dass ich ein Link brauche und kein Pfad, damit ich Parameter mitgeben kann ?
 
Werbung:
Vielleicht solltest du dich mal dafür interessieren, wie PHP und vor allem der include-Befehl funktioniert.
 
Ja, oke, aber in Beispiel 3 macht er es doch genauso :
Nein, das ist eben nicht genauso!!!! Es ist Unterschied, ob ich eine Datei aus dem Filesystem einbinde, oder über das HTTP-Protokoll!! Und wenn du dir die Beispiele mal richtig in der Doku angesehen und drüber nachgedacht hättest, wüsstest du, was du machen musst und warum deine Version falsch ist. Aber deine weitere Frage zeigt eindeutig, dass du nicht richtig gelesen hast. Eine Doku-Vorlese-Service liefert dir hier niemand!
 
Dafür müsste man verstehen wie "include" funktioniert und arbeitet.

Schauen wir uns das Problem im Auge von Dr.Include:

Drücke die Windows Taste gedrückt und dazu E , also WindowsTaste+E und dann sollte sich ein Fenster öffnen mit verschiedenen Ordnern und Dateien oder eventuell ist es sogar Leer, im Normalfall solltest du deine Laufwerke sehen ( Laufwerk C, D usw. )

Jetzt durchqueren wir den Stammbaum und gehen zu dem Punkt, wo die Datei, welche "include" benutzt, sich befindet.

Jetzt brauchen wir den ersten Parameter von "include" ( include( $pfad ) ).

Dies ist der Dateiname von dem wir den Inhalt haben wollen und suchen danach.

Wichtig hierbei: Es gibt NUR "datei.endung" nicht sowas wie "datei.endung?var1=wert1" oder ähnliches.


Fazit: Include ist nicht die Funktion die wir benötigen.

Du könntest es ja aus Spaß mal mit "fopen" oder "file_get_contents" versuchen, damit du die Funktionen verinnerlichen kannst und gleichzeitig fortbildest. Glaub mir, hier sind viele sehr wichtige Erfahrungen zu ergattern!
 
Werbung:
Aber bei file_get_contents und bei include kommt jeweils der gleiche Fehler:
Wenn ich den pfad angebe mit id, dass kenn wir ja schon, das ist geklärt.
Aber wenn ich ein kompletten Link angebe, mit id über GET dann kommt folgender Fehler :
Warning: file_get_contents() [function.file-get-contents]: http:// wrapper is disabled in the server configuration by allow_url_fopen=0 in /usr/www/users/dashfr/beta/basti/xx_testSelect.php on line 85

hmmm... Wieso ist das disabled ? Und wo kann ich das enablen ? Oder hab ich was anderes falsch gemacht ?
$image = file_get_contents('http://****.net/beta/basti/core/scripts/get_img.php?id='.$image_id);
 
Da solltest du mit deinem Hoster reden, dass er die PHP-Konfiguration anpasst, eventuell hilft eine .htaccess, aber auch das sollte dir dein Hoster sagen können.

.htaccess:
Code:
php_value allow_url_fopen 1

Ist aber keine Garantie, hängt alles von deinem Hoster ab.
 
Oh mann... Gibt es keine andere Möglichkeit daran zu kommen ?
Das geht in html ganz einfach... :
<... src=core/scripts/get_img.php?id=<? echo $image_id; ?> ...
 
Werbung:
Ja, das geht, das verwende ich ja auch die ganze Zeit schon.... Also an anderen Stellen... Oder meinst du ich könnte das so machen :
$image = "?> <img src="get_img.php?var1=wert1"> <?";
 
Ich verweise ja ungern schon wieder auf die Doku, aber hast du dir den letzten Teil in Beispiel #3 angesehen?
 
Werbung:
ACHSOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOO!!!!!!
Ja sorry, darauf währe ich nie (bin ich zwar jetzt) gekommen ! Woher soll ich auch wissen, dass das dann daran übergeben wird !
Ohhh mann !
 
PHP:
$image = include "core/scripts/get_img.php".$image_id;
PHP:
$image = include ...
geht nicht, da include DIREKT einfügt und kein return hat!
PHP:
... get_img.php".$image_id;
feht auch nicht, da: GET-Paramter FALSĆH angehängt (Ergibt ...get_img.php142, wenn $image_id=142) und außerdem ist der get-Parameter dort überhaupt nicht erlaubt.
 
Werbung:
Zurück
Oben