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

include("lp_settings.inc"); //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)/2;
	$question=stripslashes($elements[0]);
	$in=0;
	while ($h>$in) {
		$item[$in]=$elements[(2*$in+1)];
		$itemvoted[$in]=$elements[(2*$in+2)];
		$in++;
	}
	return array ($item, $itemvoted, $question);
}

list ($item, $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, $itemvoted, $graph_width, $graph_height) {
		$hector=count($itemvoted);$totalvotes=0;$in=0;$stepstr='';
		$totalvotes=SumArray($itemvoted);
		$in=0;
		if ($totalvotes==0) { $totalvotes=0.0001; }
		while ($in<$hector) {
			$stepstr=$stepstr.stripslashes($item[$in]).': '.(int)(($itemvoted[$in]/$totalvotes)*100).'%<br>';
			$timesred=(int)((($itemvoted[$in]/$totalvotes))*$graph_width);
			$stepstr=$stepstr.'<img height='.$graph_height.' width='.$timesred.' src="lp_1.gif"><img height='.$graph_height.' width='.($graph_width-$timesred).' src="lp_0.gif"><br><br>';
			$in++;
		}
		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;
	$datop=count($item);
	while($in<$datop){
		$step1str=$step1str.'<input type="radio" name="radios" value="'.$in.'"> '.stripslashes($item[$in]).'<br>';
		$in++;
	}
	$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].':'.$itemvoted[$in].':';
		fputs($fp, $linetoadd);
		$in++;
	}
	fclose($fp);
	write2log("Vote received on ".$item[$p_radios]);
	$step2str=ShowTheStuff($item, $itemvoted, $graph_width, $graph_height);
}
if ($votingstep==3) {
	$mainstr=$message3;
	$totalvotes=SumArray($itemvoted);
	write2log("Views results");
	$step3str=ShowTheStuff($item, $itemvoted, $graph_width, $graph_height);
}

?>
Return current item: The Amazing Little Poll