Dann direkt nein über eine htaccess ja.
wie kann ich über ein aufgerufenes GIF Parameter an eine PHP Datei übergeben?
Einklappen
X
-
Dann ändere das doch. Für den Client macht es keinen Unterschied, aber du ersparst dir den Ärger mit der Konfiguration deines Webservers, die dir ja offensichtlich Probleme bereitet.Zitat von BananaJo Beitrag anzeigendie url für den trackingpixel verweist auf ein gif und nicht auf eine php datei.
Kommentar
-
@piratos: Gibt's einen plausiblen Grund, warum du an solch einer Stelle output buffering verwendest?
Die Ausgabe des Content-Type-Headers könnte man auch vor den Aufruf von imagejpeg/-gif stellen, und dann erübrigt sich buffering der Ausgabe dieser Funktion.
Soll das lediglich eventuell nötige Fehlersuche vereinfachen?I don't believe in rebirth. Actually, I never did in my whole lives.
Kommentar
-
Du sollst statt der Grafik eine php Datei in deinem img-Tag referenzieren.
Kommentar
-
das ist doch genau das was ich vermeiden will!Du sollst statt der Grafik eine php Datei in deinem img-Tag referenzieren.
es soll eine grafik eingebunden werden und wenn diese aufgerufen wird, sollen die dementsprechenden angehangenen parameter beim aufruf an eine php datei übergeben werden.
Kommentar
-
Die wurden hier eine Reihe von Möglichkeiten aufgezeigt. Nimm eine davon. Wenn du dann konkrete Probleme hast, komm wieder. Durch ständig erneutes herunterbeten deiner Wünsche wird sich nicht durch Zauberhand eine weitere Lösung auftun.
Wenn du zu Faul bist, dich selbst kundig zu machen oder wenigstens Ansatzweise einen Versuch zu liefern, verschiebe ich das Thema gerne in das Projekthilfe-Forum, wo du nach Herzenslust Code schnorren kannst.
Kommentar
-
Ich habe den Eindruck, dass du den Wald (PHP-Script) vor lauter Bäumen (Grafik) nicht siehst.Zitat von BananaJo Beitrag anzeigendas ist doch genau das was ich vermeiden will!
es soll eine grafik eingebunden werden und wenn diese aufgerufen wird, sollen die dementsprechenden angehangenen parameter beim aufruf an eine php datei übergeben werden.
Daher mal ganz simpel zum Mitmeißeln:
Schreib dir ein einfaches PHP-Script, dass eine Grafik-Datei einliest und zum Browser sendet.
Speichere das Script (bspw.) als tracking.php auf deinem Webserver.PHP-Code:<?php
$tracking_pic = 'pfad/zur/grafik-datei.gif';
$info = getimagesize($tracking_pic);
header('Content-Type: ', $info['mime']);
readfile($tracking_pic);
?>
Rufe es so auf:
Das ".gif" oder eine andere Dateiendung, je nach Typ der eingebundenen Grafik-Datei, ist für ältere Browser notwendig, damit sie die Script-Ausgabe auch als Grafik darstellen. Aktuelle Browser sollten das nicht nötig haben, die interpretieren den "Content-Type"-Header.Code:<!-- HTML-Quelltext --> <img src="/path/tracking.php?parameter1=blarg&suffix=.gif" width="..." height="..." alt="..." /> <!-- width, height etc. bitte an deine Gegenheiten anpassen -->
Wie man dann innerhalb des Scriptes per GET übergebene Parameter abfragen und verarbeiten kann, weißt du hoffentlich ...
Zuletzt geändert von fireweasel; 07.07.2009, 11:46.
Kommentar
-
Das ist nur mal ein schnell gemachtes Script mit einer Möglichkeit eines Tests (wenn z.B. img nicht erzeugt werden kann).Zitat von wahsaga Beitrag anzeigen@piratos: Gibt's einen plausiblen Grund, warum du an solch einer Stelle output buffering verwendest?
Die Ausgabe des Content-Type-Headers könnte man auch vor den Aufruf von imagejpeg/-gif stellen, und dann erübrigt sich buffering der Ausgabe dieser Funktion.
Soll das lediglich eventuell nötige Fehlersuche vereinfachen?
Ansonsten kann man Buffering sausen lassen, wenn man den Header zuerst schickt.
Kommentar
-
Zum Thema Buffering fällt mir gerade noch ein das Leute die - wie ich - fast ausschliesslich mit Templatesystemen arbeiten normal nie eine Direktausgabe vornehmen, sondern an die Engine zuweisen um es dann irgendwann im Laufe des Geschehens über ein Template anzuzeigen.
Da ist Buffering erforderlich.
Kommentar
-
Bilddaten gibst du aber im Normafall nicht mit im Template aus.Zitat von piratos Beitrag anzeigenZum Thema Buffering fällt mir gerade noch ein das Leute die - wie ich - fast ausschliesslich mit Templatesystemen arbeiten normal nie eine Direktausgabe vornehmen, sondern an die Engine zuweisen um es dann irgendwann im Laufe des Geschehens über ein Template anzuzeigen.
Da ist Buffering erforderlich.I don't believe in rebirth. Actually, I never did in my whole lives.
Kommentar
-
Versteh ich nicht. Mach mal n Code-Beispiel.Zitat von piratos Beitrag anzeigenZum Thema Buffering fällt mir gerade noch ein das Leute die - wie ich - fast ausschliesslich mit Templatesystemen arbeiten normal nie eine Direktausgabe vornehmen, sondern an die Engine zuweisen um es dann irgendwann im Laufe des Geschehens über ein Template anzuzeigen.
Da ist Buffering erforderlich.
Kommentar
-
Bleiben wir mal bei dem vorhandenen:
Direktausgabe (bekannt)
Beim Einsatz von Templateengine weist man die Inhalte zu und gibt Sie dann an der gewünschten Stelle aus.PHP-Code:<?php
$img = imagecreatefromjpeg($imgname);
header('Content-Type: image/jpg');
imagejpeg($img);
?>
Im Inhalt sprich Template setzte man dann z.B.PHP-Code:$img = imagecreatefromjpeg($imgname);
imagejpeg($img);
$out = ob_get_contents();
ob_end_clean();
$tpl->assign('bild1',$sout);
[COLOR=#000000][COLOR=#006600]PHP-Code:
header('Content-Type: image/jpg');
echo $tpl->VARS['bild1'];
Damit ist der Code von der Ausgabe getrennt.
Was auch immer man im Code anstellt ist für die Ausgabe und deren Gestaltung unineteressant.
Das war das simple Prinzip einer Templateengine.
Aber was solls ich gehe davon aus, das man das kennt (z.B. Smarty).
Andere Nutzung z.B. Hochladen von Bildern, über Methoden auf ein bestimmtes Format zuschnippeln und in die DB ablegen.
Dann hat man in der Regel eine ganze Serie von Bildern.
[/COLOR][/COLOR]
Kommentar
Moderator
Kommentar