Return to Snippet

Revision: 27555
at June 15, 2010 22:13 by jretamal


Initial Code
<?php

/**
 * PHP+MySQL
 * Restricts the vote to one vote per ip per day
 * @name IP Poll Restriction
 * @author Julio César Retamal Rojas - http://jretamal.cl
 * @version 0.1
 * @date June 15, 2010
 * @copyright (c) 2010 Julio César Retamal (jretamal.cl)
 * @usage
 *
 *		//Your code
 *		if(checkVote())
 *		{
 *			//Vote successful
 *		}
 *		//Your code 
 *
 * @installation
 *
 * 		CREATE TABLE IF NOT EXISTS `ip_poll` (
 * 			`ip` varchar(15) NOT NULL,
 * 			`date` datetime NOT NULL
 * 		) ENGINE=MyISAM DEFAULT CHARSET=latin1;
 * 
 */

function getIP() {
	$ip="";
	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 = "";
	return $ip;
}

function checkVote()
{
	$ip= getIP();
	$sql= "select count(*) from ip_poll where ip = '".$ip."' and SUBSTR(date,1,10) = '".date("Y-m-d")."'";
	if($res= mysql_query($sql))
	{
		$row= mysql_num_rows($res);
		if($row == 0)
		{
			$sqlIns= "insert into ip_poll values ('".$ip."',now());";
			if(mysql_query($sqlIns))
				return true;
			else
				return false;
		}else{
			return false;
		}
	}else{
		return false;
	}
}

?>

Initial URL
http://jretamal.cl

Initial Description
Restricts the vote to one vote per ip per day

Initial Title
IP Poll Restriction

Initial Tags
mysql, php, ip

Initial Language
PHP