Glosowanie, limit cookies/ip

0

Chciałbym ograniczyć możliwość głosowania do jednego. Teraz skrypt działa tak, że głosować można bez końca.

glosowanie.php

<?php
session_start(); 
ob_start();
require_once('connect.php');
require_once('functions.php');
?>
<?php


function getAllVotes($id)
	{
	/**
	Returns an array whose first element is votes_up and the second one is votes_down
	**/
	$votes = array();
	$q = "SELECT * FROM shity WHERE id = $id";
	$r = mysql_query($q);
	if(mysql_num_rows($r)==1)//id found in the table
		{
		$row = mysql_fetch_assoc($r);
		$votes[0] = $row['votes_up'];
		$votes[1] = $row['votes_down'];
		}
	return $votes;
	}

function getEffectiveVotes($id)
	{
	/**
	Returns an integer
	**/
	$votes = getAllVotes($id);
	$effectiveVote = $votes[0] - $votes[1];
	return $effectiveVote;
	}

$id = $_POST['id'];
$action = $_POST['action'];

//get the current votes
$cur_votes = getAllVotes($id);

//ok, now update the votes
if (isset($_SESSION['user_id']) and isset($_SESSION['login'])){
if($action=='vote_up') //voting up
{
	$votes_up = $cur_votes[0]+1;
	$q = "UPDATE shity SET votes_up = $votes_up WHERE id = $id";
}
elseif($action=='vote_down') //voting down
{
	$votes_down = $cur_votes[1]+1;
	$q = "UPDATE shity SET votes_down = $votes_down WHERE id = $id";
}
}
$r = mysql_query($q);
if($r) //voting done
	{
	$effectiveVote = getEffectiveVotes($id);
	echo $effectiveVote." votes";
	}
elseif(!$r) //voting failed
	{
	echo "Zaloguj się!";
	
}

?>

index.php

<?php
session_start(); 
ob_start();
require_once('connect.php');
require_once('functions.php');
?>

<html>
<head>
	<title>Votes</title>
	
<style type='text/css'>




.entry {
	width: 710px;
	background: #ffffff;
	padding:8px;
	border:1px solid #bbbbbb;
	margin:5px auto;
	-moz-border-radius:8px;
}

span.link a {
	font-size:150%;
	color: #000000;
	text-decoration:none;
}

a.vote_up, a.vote_down {
	display:inline-block;
	background-repeat:none;
	background-position:center;
	height:16px;
	width:16px;
	margin-left:4px;
	text-indent:-900%;
}

a.vote_up {
	background:url("images/thumb_up.png");
}

a.vote_down {
	background:url("images/thumb_down.png");
}
</style>

<script type='text/javascript' src='jquery.pack.js'></script>
<script type='text/javascript'>
$(function(){
	$("a.vote_up").click(function(){
	//get the id
	the_id = $(this).attr('id');
	
	// show the spinner
	$(this).parent().html("<img src='images/spinner.gif'/>");
	
	//fadeout the vote-count 
	$("span#votes_count"+the_id).fadeOut("fast");
	
	//the main ajax request
		$.ajax({
			type: "POST",
			data: "action=vote_up&id="+$(this).attr("id"),
			url: "glosowanie.php",
			success: function(msg)
			{
				$("span#votes_count"+the_id).html(msg);
				//fadein the vote count
				$("span#votes_count"+the_id).fadeIn();
				//remove the spinner
				$("span#vote_buttons"+the_id).remove();
			}
		});
	});
	
	$("a.vote_down").click(function(){
	//get the id
	the_id = $(this).attr('id');
	
	// show the spinner
	$(this).parent().html("<img src='images/spinner.gif'/>");
	
	//the main ajax request
		$.ajax({
			type: "POST",
			data: "action=vote_down&id="+$(this).attr("id"),
			url: "votes.php",
			success: function(msg)
			{
				$("span#votes_count"+the_id).fadeOut();
				$("span#votes_count"+the_id).html(msg);
				$("span#votes_count"+the_id).fadeIn();
				$("span#vote_buttons"+the_id).remove();
			}
		});
	});
});	
</script>

</head>
<body>

<?php

/**
Display the results from the database
**/
$q = "SELECT * FROM baza";
$r = mysql_query($q);

if(mysql_num_rows($r)>0): //table is non-empty
	while($row = mysql_fetch_assoc($r)):

		$net_vote = $shit['votes_up'] - $shit['votes_down']; //this is the net result of voting up and voting down 

?><?php endwhile;  ?>

<div class='entry'>

	<span class='link'>
		<a href='<?php echo $row['link']; ?>'> <?php echo $row['title']; ?> </a>
	</span>
	
	<span class='votes_count' id='votes_count<?php echo $shit['id']; ?>'><?php echo $net_vote." votes"; ?></span>
	
	<span class='vote_buttons' id='vote_buttons<?php echo $shit['id']; ?>'>
		<a href='java script:;' class='vote_up' id='<?php echo $shit['id']; ?>'>Vote Up!</a>
		<a href='java script:;' class='vote_down' id='<?php echo $shit['id']; ?>'>Vote Down!</a>
	</span>
	
</div>


<?php
	
endif;

?>

Tylko zalogowany może głosować, jak teraz zrobić, aby sprawdzało, zapisywało adres IP osoby, która glosowala w danym artykule, oraz cookies? i zabraniała ponownego glosowania?

0

Tylko zalogowany moze głosować? sprawdzić czy user zagłosował. Jak tak to wiecej nie pozwalaj głosować.

0

Już sobie poradziłem poprzez sprawdzenie i porownanie ip glosujacego

1 użytkowników online, w tym zalogowanych: 0, gości: 1