Archive for June 2nd, 2007

02
Jun

Dynamic Forum Signature Tutorial

Here is a little tutorial of how to make dynamic forum signature using php.

Demo:

Display using this code

<img src=”http://fkn1337.com/demos/dynamic_browser_sig/browser.php” />

My sig here detects the viewer browser and displays specific image for it, and also shows percentage between 3 browser usage.

What You Need:

  • PHP Hosting (few free ones will also work like ripway.com)
  • GDI Image Library for PHP
  • A Brain (Optional)

Files and what they do:

  • browser.php - will contain main script and act as a image.
  • count.php - will save the viewers browser count values.
  • ie.jpg - this image will be used if viewer is using MS Internet Explorer.
  • ff.jpg - this image will be used if viewer is using FireFox.
  • op.jpg - this image will be used if viewer is using Opera Browser.
  • other.jpg - this image will be used if viewer is using non of the above.

count.php
count.php to save/get the browser views count

$iecount= 1;
$ffcount= 3;
$opcount= 1;

You will have to CHMOD this file to 777 (writeable) so php can change it.

Download count.php

browser.php
initialize the count variables set 1 to avoid division by zero error

$iecount=1;
$ffcount=1;
$opcount=1;

include count.php to get the old count values

include(”count.php”);

get the user browser

$agent = $_SERVER["HTTP_USER_AGENT"];

set browser value to the browser found. ie if Internet Explorer, ff if firefox, op if Opera else other

$browser=”other”;
if ( strstr($agent, “MSIE”) ) $browser = “ie”;
elseif ( strstr($agent, “Firebird”) ) $browser = “other”;
elseif ( strstr($agent, “Safari”) ) $browser = “other”;
elseif ( strstr($agent, “Mozilla/5″) ) $browser = “ff”;
elseif ( strstr($agent, “Mozilla/6″) ) $browser = “other”;
elseif ( strstr($agent, “Mozilla/4″) ) $browser = “other”;
elseif ( strstr($agent, “Opera”) ) $browser = “op”;

add one to the count of browser detected (will be later used to set display position too)

$ie=0;
$ff=0;
$op=0;
if($browser==”ie”) $ie++;
else if($browser==”ff”) $ff++;
else if($browser==”op”) $op++;

make content of new count.php file with incremented browser count value

$File = ‘ $iecount= '.($iecount+$ie).';
$ffcount= '.($ffcount+$ff).';
$opcount= '.($opcount+$op).';
?>‘;

write the count.php file

if ($FP = fopen (”count.php”, “w”)){
fwrite ($FP, $File);
fclose ($FP);
}

add up to get percentage

$total=$iecount+ $ffcount + $opcount;

get percentage for all

$ieperc=($iecount/$total)*100;
$ffperc=($ffcount/$total)*100;
$opperc=($opcount/$total)*100;

get image for specific browser

$im = imagecreatefromjpeg($browser.”.jpg”);

make font color to be used to display percentage values

$gery = ImageColorAllocate ($im, 255, 204, 109);

display ie, ff, op count as string on image

ImageString($im, 3, 271+($ie*2), 8+$ie,round($ieperc,0).”%”,$gery);
ImageString($im, 3, 431, 8+$ff,round($ffperc,0).”%”,$gery);
ImageString($im, 3, 592, 8+$op,round($opperc,0).”%”,$gery);

make .php to act as .jpg

header(”Content-type: image/jpeg”);

show the picture content

Imagejpeg($im,”,300);

free resources clear $im in cache

ImageDestroy ($im);

remember your browser.php and code.php should always start with <?php and end with ?> and no spaces before or after, otherwise your image wont showup
e.g.

<?php
///Your code here
///and here
//and here
//till you are done
//now end .php file
?>

Download browser.php

Four Images:
ie.jpg will be shown when user is viewing using Internet Explorer

ff.jpg will be shown when user is viewing using FireFox

op.jpg will be shown when user is viewing using Opera

other.jpg will be shown when user is viewing using none of the above

Download Full Package Dynamic Forums Signature

Demo Again:

Display using this code

<img src=”http://fkn1337.com/demos/dynamic_browser_sig/browser.php” />




June 2007
M T W T F S S
« May   Jul »
 123
45678910
11121314151617
18192021222324
252627282930  

Categories

No categories

Xbox360

Flickr

www.flickr.com