Debug kode til afstemning
Jeg er ved at lave en afstemning på www.boldsens.dk. Jeg har brugt meget kode fra http://www.udvikleren.dk/article.php?aid=115, men har også ændret meget i det, fordi det ikke lige umiddelbart virkede. Men nu sidder jeg fast. Man kan stemme og det bliver registreret i db'en, men brugeren kan ikke se resultaten på siden.Allerførst på index.php:
<?
$connect = mysql_connect ("xxxxxxx","xxxxxxx","xxxxxxxxx");
mysql_select_db ("boldsens_dk");
// Der SKAL være en åben MySQL forbindelse allerede her
include("pollfunctions.php");
?>
Længere nede på index.php:
<?
$pid = 1; // $pid kan som sagt hentes ud af databasen, eller den kan bare sættes manuelt som her
if(HaveVoted($pid) == true) {
echo ShowResults($pid);
} else {
echo ShowPoll($pid);
}
?>
Og hele pollfunctions.php:
<?
$dbtable_polls = "polls";
$dbtable_pollvotes = "pollvotes";
$cookieprefix = "poll_boldsens.dk";
$redirectto = "http://www.boldsens.dk";
if($_POST[do_vote] and $_POST[pid] and $_POST[vid]) {
CastVote($_POST[pid], $_POST[vid]);
}
function HaveVoted($pid) {
global $cookieprefix;
if(($_COOKIE[$cookieprefix."vote".$pid]) AND ($_COOKIE[$cookieprefix."poll".$pid] == $pid)) {
return true;
} else {
return false;
}
}
function CastVote($pid, $vote) {
global $dbtable_pollvotes; global $cookieprefix; global $redirectto;
if(HaveVoted($pid) != true) {
$addvote = mysql_query("insert into $dbtable_pollvotes (pollid, vote) values ('$pid','$vote')");
setcookie($cookieprefix."vote".$pid, $vote, time()+999999999);
setcookie($cookieprefix."poll".$pid, $pid, time()+999999999);
header("location: $redirectto");
}
}
function ShowPoll($pid) {
global $dbtable_polls;
$query = mysql_query("select * from $dbtable_polls where id='$pid'");
if(mysql_num_rows($query) > 0)
{
$q = stripslashes(mysql_result($query, 0, "question"));
$num = mysql_result($query, 0, "numofanswers");
$kode .= "<div class=\"pollquestion\">$q</div>";
$kode .= "<form action=\"$_SERVER[PHP_SELF]\" method=\"post\">";
$i = 1;
while($i != $num+1) {
$a = stripslashes(mysql_result($query, 0, "answer ".$i));
$kode .= "<div class=\"pollanswer\"><input type=\"radio\" name=\"vid\" value=\"$i\" />$a</div>";
$i++;
}
$kode .= "<input type=\"hidden\" name=\"pid\" value=\"$pid\" />";
$kode .= "<p align=\"center\"><br /><input type=\"submit\" name=\"do_vote\" value=\" Stem \" class=\"button\" />";
$kode .= "</form>";
}
return $kode;
}
function ShowResults($pid) {
global $dbtable_polls; global $dbtable_pollvotes;
$query = mysql_query("select * from $dbtable_polls where id='$pid'");
$q = stripslashes(mysql_result($query, 0, "question"));
$num = mysql_result($query, 0, "numofanswers");
$kode .= "<div class=\"pollquestion\">$q</div>";
$votesquery = mysql_query("select count(id) from $dbtable_pollvotes where pollid='$pid'");
$totalvotes = mysql_result($votesquery, 0, 0);
$i = 1;
$kode .= "<table style=\"width: 95%;\" class=\"text\">";
while($i != $num+1) {
$a = stripslashes(mysql_result($query, 0, "answer".$i));
$resultquery = mysql_query("select count(id) from $dbtable_pollvotes
where pollid='$pid' and vote='$i'");
$votes = mysql_result($resultquery, 0, 0);
if($votes > 0) {
$average = round(100 * $votes / $totalvotes, 2);
} else {
$average = "0";
}
$kode .= "<tr>";
$kode .= "<td colspan=\"2\"><div class=\"pollanswer\">$a:</div></td>";
$kode .= "</tr><tr>";
$kode .= "<td style=\"width: 75%;\"><span class=\"pollbar\" style=\"width: $average%;\"></td>";
$kode .= "<td></span> <span style=\"text-align: right; font-weight: bold;\">$average%</span></td>";
$kode .= "</tr>";
$i++;
}
$kode .= "</table>";
$kode .= "<br /><div style=\"text-align: center;\">Stemmer i alt:<br /><b>$totalvotes</b></div>";
return $kode;
}
?>
Kan du gennemskue fejlen(e)???
