Cyberkid
Legacy Member
Heb volgend stuk script voor een poll, bestaat uit 2 pagina's poll.php waarop de gebruiker kan stemmen of als hij al gestemd heeft moet hij de resultaten zien, en dan poll_stemmen.php die het formulier bij het stemmen verwerkt en de vote opslaat in database. Nu wil'k kijken of de gebruiker al gestemd heeft door een cookie te maken, maar dit gebeurd niet.
poll.php
poll_stemmen.php
poll.php
Code:
<?php
ob_start();
session_start();
include("cfg.inc.php");
$query = mysql_query("SELECT * FROM polls ORDER BY id DESC LIMIT 0,1") or die(mysql_error());
$pollid = mysql_result($query,0,"id");
$vraag = mysql_result($query,0,"vraag");
$poll_cookie = "kljdoorslaar" . $pollid;
if(isset($_COOKIE[$poll_cookie])) {
// antwoorden
echo "<html><head><link href='../includes/style.css' type='text/css' rel='stylesheet'>";
echo "</head><body'> ";
$query = mysql_query("SELECT * FROM poll_opties WHERE pollid='" . $pollid . "' ORDER BY id ASC") or die(mysql_error());
$totaal = 0;
while ($var = mysql_fetch_object($query)) {
$totaal = $totaal + $var->votes;
}
echo "<br /><br /><table width='600' align='center' cellspacing='0'>";
echo "<tr><td width='300' align='left'><b> " . $vraag . "</b></td>";
echo "<td width='250' align='left'> " . $totaal . " stemmen</td><td width='50'> </td></tr>";
$query = mysql_query("SELECT * FROM poll_opties WHERE pollid='" . $pollid . "' ORDER BY id ASC") or die(mysql_error());
while ($var = mysql_fetch_object($query)) {
$percentage = (integer)(($var->votes / $totaal) * 100);
echo "<tr><td align='left'>" . $var->optie . " </td>";
echo "<td align='left'><img src='polllinks.jpg'><img src='poll.jpg' width='" . $percentage * 2 . "' height='15'><img src='pollrechts.jpg'> (" . $var->votes . " stemmen) </td>";
echo "<td align='right'> " . $percentage . " % </td></tr>";
}
echo "</table>";
} else {
// stemmen?
echo "<html><head><link href='../includes/style.css' type='text/css' rel='stylesheet'>";
echo "</head><body><br /><br /> ";
echo "<form action=\"poll_stemmen.php\" method=\"POST\">";
echo "<input type=\"hidden\" name=\"poll_cookie\" value=\"" . $poll_cookie . "\">";
echo "<table width='600' align='center' cellspacing='0'>";
echo "<tr><td align='left' colspan=\"2\"><b>" . $vraag . "</b></td></tr>";
$query = mysql_query("SELECT * FROM poll_opties WHERE pollid='" . $pollid . "' ORDER BY id ASC") or die(mysql_error());
while ($var = mysql_fetch_object($query)) {
echo "<tr><td align='left'><input class=\"form\" type=\"radio\" name=\"vote\" value=\"" . $var->id . "\"> " . $var->optie . "</td></tr>\n";
}
echo "<tr><td vAlign=right><input class=\"form\" type=\"submit\" value=\"Stemmen!\" name=\"stemmen\"></form></td></tr></table>\n\n";
}
?>
poll_stemmen.php
Code:
<?php
include("cfg.inc.php");
ob_start();
session_start();
if($_POST['stemmen']) {
$poll_cookie = $_POST['poll_cookie'];
setcookie($poll_cookie, "gestemd", time()+5184000);
$query = mysql_query("SELECT * FROM poll_opties WHERE id='" . $_POST['vote'] . "'") or die(mysql_error());
while ($var = mysql_fetch_object($query))
{
$aantal_stemmen = $var->votes + 1;
}
mysql_query("UPDATE poll_opties SET votes='" . $aantal_stemmen . "' WHERE id='" . $_POST['vote'] . "'") or die(mysql_error());
}
?>
dalijkt mij wel erg onwaarschijnlijk omdat ip's hier in belgie regelmatig veranderen ben je niet veel met een ip controle.