Mega Code Archive
Simple PHP-3 Access Counter (using GD and DBM functions)
//
if( !isset($digits) ) {
$digits = 6;
}
if( !isset($font) ) {
$font = "default";
}
if( !isset($key) ) {
if( isset($HTTP_REFERER) ) {
$key = $HTTP_REFERER;
} else {
$key = $PHP_SELF;
}
}
$base = "./";
$dbase = $base."url.gdbm";
if( !file_exists($dbase) ) {
$number = 0;
} else {
$dbm = dbmopen($dbase,"r");
$number = dbmfetch($dbm,$key);
dbmclose($dbm);
}
$dbm = dbmopen($dbase,file_exists($dbase)?"w":"n");
if( isset($force) ) {
dbmreplace($dbm,$key,(string)((int)$force));
} else {
dbmreplace($dbm,$key,(string)(1+(int)$number));
}
dbmclose($dbm);
Header("Content-type: image/gif");
Header("Cache-control: no-cache");
Header("Pragma: no-cache");
Header("Last-modified: ".gmdate("D M d h:i:s Y",time())." GMT");
Header("Expires: ".gmdate("D M d h:i:s Y",time()+1)." GMT");
for( $i=0; $i<10; ++$i ) {
$digit[] = ImageCreateFromGif($base.$font."/".((string)$i).".gif");
}
$dx = ImageSX($digit[0]);
$dy = ImageSY($digit[0]);
$image = ImageCreate($digits*$dx,$dy);
$number = sprintf("%0".((string)$digits)."d",(int)$number);
for( $i=0; $i<$digits; ++$i ) {
ImageCopyResized($image,
$digit[(int)substr($number,$i,1)],
$i*$dx,0,0,0,$dx,$dy,$dx,$dy);
}
for( $i=0; $i