Benutzer:Bse/php als png
Bild siehe http://www.oern.de/time.png zeigt IP des Aufrufenden und aktuelle Serveruhrzeit an. Für den Besucher/Browser ist es ein ganz normales Bild mit richtigem Content-type etc, ohne dass er merken kann, dass ein Skript dahinter steckt.
Einstellung im lighttpd-Webserver, damit time.png gefunden werden kann:
url.rewrite-final = (
"^/time.png" => "/time.php"
) Mit apache analog mit mod_rewrite.
Quellcode time.php
<?php
header("Content-type: image/png"); # <= Content-Type richtig setzen
$ip = $_SERVER['REMOTE_ADDR'];
$string = $ip;
- Wenn $ip in bestimmter IP-Range, logge referrer in mysql-Datenbank und gebe Alarm per SMS oder sowas.
- Lauter Sachen, die man zwar auch aus dem httpd-Logs lesen könnte, aber so als Web-Bug gehts schneller.
- Man kann das Bild nun in jede statische html-Seite einbinden, ganz normal mit <img src="time.png">
- Wichtig für die Anzeige des Bildes sind nur die markierten Zeilen. # <=
$string2 = date("h:i:s A"); $im = imagecreatefrompng("seifert.png"); # <= vorhandenes Bild laden $color = imagecolorallocate($im, 220, 210, 60); $px = (imagesx($im) - 7.5 * strlen($string)) / 2; $px2 = (imagesx($im) - 7.5 * strlen($string)) / 2; imagestring($im, 3, $px, 9, $string, $color); imagestring($im, 3, $px2, 19, $string2, $color); imagepng($im); # <= an Browser schicken imagedestroy($im); # <= Speicher freigeben ?>