mok
Goto Top

Funktionen werden nicht ausgeführt, aber warum?

Hi Leute,
ich habe mal eine Frage... ich finde einfach keine lösung

und zwar habe ich eine php datei (img.php) die mir ein bild erzeugt, diese datei lade ich mit:

<img alt="" src="img.php" />  

ich habe auch eine funktions datei wo meine funktionen drin stehen die lade ich mit include auf der start seite, dort sind auch funktionen für das generieren von dem bild drinne...

also includiere ich die datei auch in meine 'img.php'... für mich klingt das eigentlch logisch, jedoch sind die funktionen nicht aufrufbar..

habt ihr ein schimmer warum das so ist? ich hoffe ich habe das verständlich erklärt wenn nicht poste ich ein direktes bsp.

Gruß moK

Content-ID: 139731

Url: https://administrator.de/contentid/139731

Ausgedruckt am: 23.11.2024 um 06:11 Uhr

matze2010
matze2010 01.04.2010 um 22:01:35 Uhr
Goto Top
Hallo und guten Abend,

woher weißt du, dass die Funktionen nicht aufrufbar sind?

Bekommst du eine Fehlermeldung oder einfach kein Bild?

Hast du den Mime-Type des Bildes im header() vor der Ausgabe von Daten gesetzt?

Zum testen kannst du evtl. mal in eine Datei loggen, da ja vermutlich keine Ausgabe abgefangen wird.

Was gibt img.php aus, wenn du es direkt aufrufst?

Ein paar Informationen mehr sind glaube ich schon nötig.

Lg
Matze
moK
moK 01.04.2010 um 22:32:44 Uhr
Goto Top
also, das ist mir jetzt aber irgendwie peinlich...

ich habe jetzt versucht ein beispiel aufzubauen und es geht auf anhieb!

dann habe ich es an meinem großen Projekt nochmals getestet (weil ich es vor einigen wochen aufgegeben habe, da ich den fehler nicht gefunden habe)

und nun geht alles wie ich es wollte...

dein Stichwort header brachte mich auf mein fehler... ich habe anscheinen nachträglich in den header geschrieben gehabt....

danke für deine hilfe!
Arano
Arano 01.04.2010 um 22:41:35 Uhr
Goto Top
Hallöchen zusammen.

Du hast da einen kleinen aber (wie immer) bedeutsamen Fehler in deinem Gedankengang.

In der Kurzform: "functions.inc.php" ist nicht in "img.php", somit stehen die Funktionen auch nicht zur Verfügung.

Und das ist so weil:
Durch das Einbinden weiterer Ressourcen (Bilder, CSS, Javasctip, ect.) _per HTML_ wird jede dieser Ressourcen über eine neue Anfrage vom Server abgerufen.
z.B.: Das Öffnen der Seite domain/index.html bewirkt das der Browser noch die weiteren Dateien anfordert: "domain/styles.css", "domain/javascript.js", "domain/favicon.ico", "domain/images/teamfoto.jpg". Alles sind Ressourcen die innerhalb des HTMLs eingebunden wurden.
So auch bei dir: "domain/img.php"
Aber die PHP-Datei wird erst auf dem Server ausgeführt ! Und weil diese kein include auf die "functions.inc.php" enthält - existieren deine Funktionen _für diese Anfrage_ nicht !
Das ist quasi so als würdest du "domain/img.php" direkt in die Adresszeile deines Browsers tippen, dann ist natürlich nicht vorhanden - wie du an nahmst.


~Arano

*Edit:*
also includiere ich die datei auch in meine 'img.php'...
Jetzt so im nach hinein:
Meintest du damit das du die Datei wirklich per include in die Datei img.php eingebunden hast !?

Habe das eben so gelesen als gingst du davon aus, das das Einbinden von "funktions.inc.php" in die Startseite ausreichen würde... ups, habe mich da wohl getäuscht...
moK
moK 01.04.2010 um 22:53:04 Uhr
Goto Top
die erklärung war gut, jedoch war das nicht mein problem... ich hatte die datei ja included in meiner img.php...

der ablauf den du geschildert hast war mir bekannt... das problem war wirklich die geschichte mit dem header...

in einer meinen funktionen wurde in den header geschrieben.. dann wurde in meiner bild datei eine daten ausgabe gemacht und dann wieder in den header der MIME Type für das Bild geschrieben... aber wie wir ja wissen meckert da PHP immer...

ps: ich hatte auch erwähnt das ich in der img.php die functions.inc.php includiere... aber der text ist gut für leute die das problem mal haben (und die suchfunktion nutzen) werden, denn es ist gut erklärt...