glosowanie.php
<?php 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 **/ $q = "SELECT * FROM shity WHERE id = $id"; { $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($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"; } } if($r) //voting done { $effectiveVote = getEffectiveVotes($id); } elseif(!$r) //voting failed { } ?>
index.php
<?php 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"; $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'> </span> </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?