Avatar billede m_bold Praktikant
15. november 2004 - 13:20 Der er 1 løsning

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)???
Avatar billede m_bold Praktikant
17. november 2004 - 19:52 #1
nevermind - jeg har selv fikset det...
Avatar billede Ny bruger Nybegynder

Din løsning...

Tilladte BB-code-tags: [b]fed[/b] [i]kursiv[/i] [u]understreget[/u] Web- og emailadresser omdannes automatisk til links. Der sættes "nofollow" på alle links.

Loading billede Opret Preview
Kategori
Vi tilbyder markedets bedste kurser inden for webudvikling

Log ind eller opret profil

Hov!

For at kunne deltage på Computerworld Eksperten skal du være logget ind.

Det er heldigvis nemt at oprette en bruger: Det tager to minutter og du kan vælge at bruge enten e-mail, Facebook eller Google som login.

Du kan også logge ind via nedenstående tjenester