Location: PHPKode > scripts > The Amazing Little Picture Poll > the-amazing-little-picture-poll/lp_source.php
<?php

include("lp_settings.php"); //include file containing general settings
import_request_variables("p", "p_"); //import POST variables
import_request_variables("c", "c_"); //import cookie variables

if (!isset($c_votingstep)) {
	$votingstep=1;
	} else { $votingstep = $c_votingstep; }

function SumArray($arr) {
	$h=count($arr); $in=0; $m=0;
	while ($in<$h) { $m += $arr[$in]; $in++;	}
	return $m;
}

function getIP() {
	if (getenv("HTTP_CLIENT_IP")) $ip = getenv("HTTP_CLIENT_IP");
	else if(getenv("HTTP_X_FORWARDED_FOR")) $ip = getenv("HTTP_X_FORWARDED_FOR");
	else if(getenv("REMOTE_ADDR")) $ip = getenv("REMOTE_ADDR");
	else $ip = "UNKNOWN";
return $ip;
}

function write2log ($linetoadd) {
	$rightnow=date("F j, Y, g:i a");
	$fplog=fopen('lp_log.dat', "a");
	fputs($fplog, getIP()."|".$rightnow."|".$linetoadd."\n");
	fclose($fplog);
}

function ReadElements() {
	global $filename;
	$fp=fopen($filename, "r");
	$file_contents=fread($fp,filesize($filename)-1);
	fclose($fp);
	$elements=explode("|",$file_contents);
	$h=(count($elements)-1)/4;
	$question=stripslashes($elements[0]);
	$in=0;
	while ($h>$in) {
		$item[$in]=$elements[(4*$in+1)];
		$smallpic[$in]=$elements[(4*$in+2)];
		$bigpic[$in]=$elements[(4*$in+3)];
		$itemvoted[$in]=$elements[(4*$in+4)];
		$in++;
	}
	return array ($item, $smallpic, $bigpic, $itemvoted, $question);
}

list ($item, $smallpic, $bigpic, $itemvoted, $question) = ReadElements();

if(isset($c_pollidcookie)) {
	if ($question != stripslashes($c_pollidcookie)) {
	$votingstep=1;
	}
}
setcookie("pollidcookie", $question, time()+$time_between_votes);

if (isset($votingstep)) {
	 function ShowTheStuff($item, $smallpic, $bigpic, $itemvoted, $graph_width, $graph_height) {
		global $ncols;
		$hector=count($itemvoted);$totalvotes=0;$in=0;$stepstr='';
		$totalvotes=SumArray($itemvoted);
		$in=0;
		if ($totalvotes==0) { $totalvotes=0.0001; }
		$stepstr=$stepstr.'<table border=0><tr>';
		while ($in<$hector) {
			$timesred=(int)((($itemvoted[$in]/$totalvotes))*$graph_width);
			$stepstr=$stepstr.'<td><table border=0><tr><td>&nbsp</td><td><font size="1">'.stripslashes($item[$in]).'</td></tr>';
			$stepstr=$stepstr.'<tr><td align="center"><font size="1">'.(int)(($itemvoted[$in]/$totalvotes)*100).'%<br><img width='.$graph_height.' height='.($graph_width-$timesred).' src="lp_0.gif"><br><img width='.$graph_height.' height='.$timesred.' src="lp_1.gif"></td>';
			$stepstr=$stepstr.'<td><a href="#" OnClick="window.open(\''.$bigpic[$in].'\', \'GOto\', \'toolbar=no\');"><img src="'.$smallpic[$in].'" border=0></a></td></tr></table></td>';
			//$stepstr=$stepstr.'<br><br>';

			if ((($in-$ncols+1) % $ncols) == 0)  {
				$stepstr=$stepstr.'</tr></table><table border=0><tr>';
			}
			$in++;
		}
		$stepstr=$stepstr.'</tr></table>';
		return $stepstr;
	}
}

if (!isset($votingstep)) {
	$votingstep=1;
	}

if ($votingstep==2) {
	if(!isset($p_radios)){
		$votingstep=1;
		write2log("Clicked vote button without choosing an item");
	} // detect if someone has clicked the voting button without choosing an item
}

if ($votingstep==1) {
	write2log("Enters Poll");
	setcookie("votingstep","2",time()+$time_between_votes);
	$mainstr=$message1;
	$step1str='<form action="'.$callingfile.'" method="post" name="form1">';
	$totalvotes=SumArray($itemvoted);
	$in=0;
	$step1str=$step1str.'<table border=0><tr>';
	$datop=count($item);
	while($in<$datop){
	    $step1str=$step1str.'<td><table border=0><tr>';
		$step1str=$step1str.'<td><input type="radio" name="radios" value="'.$in.'"></td><td><font size="1">'.stripslashes($item[$in]).'</td></tr>';
		//$step1str=$step1str.'<tr><td align="center"><font size="1">'.(int)(($itemvoted[$in]/$totalvotes)*100).'%<br><img width='.$graph_height.' height='.($graph_width-$timesred).' src="lp_0.gif"><br><img width='.$graph_height.' height='.$timesred.' src="lp_1.gif"></td>';
		$step1str=$step1str.'<tr><td>&nbsp</td><td><a href="#" OnClick="window.open(\''.$bigpic[$in].'\', \'GOto\', \'toolbar=no\');"><img src="'.$smallpic[$in].'" border=0></a></td></tr></table></td>';
		if ((($in-$ncols+1) % $ncols) == 0)  {
		$step1str=$step1str.'</tr></table><table border=0><tr>';
		}

		$in++;
	}
	$step1str=$step1str.'</tr></table>';
	$step1str=$step1str.'<br><input style="'.$buttonstyle.'" type="Submit" value="'.$vote_str.'"></form>';
}

if ($votingstep==2) {
	setcookie("votingstep","3",time()+$time_between_votes);
	$mainstr=$message2;
	$itemvoted[$p_radios]=$itemvoted[$p_radios]+1;
	$totalvotes=SumArray($itemvoted);
	$fp=fopen($filename, "w");
	$hector=count($item);
	$in=0;
	$linetoadd=$question.'|';
	fputs($fp, $linetoadd);
	while($in<$hector) {
		$linetoadd=$item[$in].'|'.$smallpic[$in].'|'.$bigpic[$in].'|'.$itemvoted[$in].'|';
		fputs($fp, $linetoadd);
		$in++;
	}
	fclose($fp);
	write2log("Vote received on ".$item[$p_radios]);
	$step2str=ShowTheStuff($item, $smallpic, $bigpic, $itemvoted, $graph_width, $graph_height);
}
if ($votingstep==3) {
	$mainstr=$message3;
	$totalvotes=SumArray($itemvoted);
	write2log("Views results");
	$step3str=ShowTheStuff($item, $smallpic, $bigpic, $itemvoted, $graph_width, $graph_height);
}

?>
Return current item: The Amazing Little Picture Poll