Homepage selbermachen 7.852 Themen, 35.619 Beiträge

image/gif mit PHP direkt lesen

Anonym / 4 Antworten / Baumansicht Nickles

Hallo,

ich habe ein kleines Problem, bei dem ich hoffe, hier Hilfe zu finden. Ich möchte gerne ein Skript schreiben, welches testet, ob jemand eingeloggt ist oder nicht und eine passende Grafik zurückgibt. Damit habe ich zwar angefangen, jedoch funktioniert es irgendwie nicht. Das Skript wird folgendermaßen im HTML-Code aufgerufen:
<img src=check.php?do=isonline&requser=abcd>
Das soll also prüfen, ob abcd eingeloggt ist. Das passende PHP-Skript stelle ich hier verkürzt dar:

(Per Include werden die Benutzerdaten eingebunden)
(In der Datenbank wird der Status gecheckt)
header(Content-type= image/gif)
if ( user_online ) readfile(online.gif)
else readfile(offline.gif)

Normalerweise müßte er jetzt dem IMG-Tag korrekt das Bild weitergeben, jedoch sehe ich nur einen Platzhalter im Browser. Also, ich denke da spontan an zwei Möglichkeiten:
1. Der header muß am Anfang gesetzt werden. Doch wie soll man dann den Status auslesen?
2. Windows kann das Bild nicht weitergeben. Ich habe von solchen Problemen mit der CGI-Schnittstelle gehört - besonders bei Perl.

Entwickeln tue ich unter Windows mit dem Apache 1.3.20 und PHP 4.0.4 als apache_mod. Leider ist meine Linux-Plattform noch nicht soweit, sonst würde ich es da aufspielen und testen. Ich bin für jeden Tip dankbar, da das Skript auch bald released werden soll.

Archilles

bei Antwort benachrichtigen
xafford Anonym „image/gif mit PHP direkt lesen“
Optionen

ich weiß nicht, ob´s wirklich daran liegt, aber in einer php-doku die ich hier auf dem rechner habe (die url weiß ich leider nicht mehr) steht, daß die integration von gif und jpg nicht im cgi modus bei der win-version funktioniert.

Pauschalurteile sind immer falsch!!!
bei Antwort benachrichtigen
Anonym Nachtrag zu: „image/gif mit PHP direkt lesen“
Optionen

Also ich hatte mir damals die Doku vom PHP4-Forum gezogen (per Offline-Reader) und die von php.net (unter Documentations). Das es mit Perl nicht funktionieren soll, hab ich aus einem Buch. Anscheinend gilt das generell für die CGI-Schnittstelle.

Wenn ich aber richtig informiert bin, läuft PHP bei mir als Modul im Webserver und nicht in einer gesonderten CGI-Umgebung. Schelißlich habe ich es so eingerichtet in der httpd.conf.
LoadModule = "/php/sapi/php4apache.dll" (irgendwie so heisst die)
Ob er bei jedem Aufruf trotzdem eine aufruft, weiß ich nicht. Auf jeden Fall ist es ziemlich schlecht, falls Windows damit nicht klar kommt. Das zeigt einmal mehr wie s*****e Windows ist.

Daher wäre es schön, wenn mir jemand mit UNIX bestätigen könnte, daß das Skript funktioniert. Aber trotzdem danke an alle, die sonst Ideen haben.

bei Antwort benachrichtigen
Anonym Nachtrag zu: „image/gif mit PHP direkt lesen“
Optionen

Mittlerweile habe ich es geschafft. Es war eigentlich ganz einfach. Statt den Header-Type zu ändern, habe ich einfach per Location mit dem Header auf die Bilddatei weitergeleitet. Das klappt prima, auch unter Windows. Aber nur, wenn man PHP als Modul eingebunden hat. In der normalen CGI-Umgebung funktioniert es tatsächlich nicht, wie befürchtet und auch schon gesagt. Für mich ist das Problem damit erledigt und danke für die Hilfe.

Archilles

bei Antwort benachrichtigen
MajorTermi Anonym „Mittlerweile habe ich es geschafft. Es war eigentlich ganz einfach. Statt den...“
Optionen

Noch ein Hinweise: Unter Linux/Unix geht es auch in der CGI-Version.

bei Antwort benachrichtigen