Avatar billede m_bold Praktikant
18. november 2004 - 21:53 Der er 6 kommentarer og
1 løsning

skal stemme 2 gange før det virker

Jeg har tidligere lagt dette spørgsmål op, men uden at få svar, så jeg prøver lige igen. Jeg har lavet en afstemning, men jeg skal stemme 2 gange, før jeg får resultatet af afstemningen at se. Kan det være et cookie-problem eller er der kodet forkert et andet sted. Se her:

<?php
  global $cookieprefix;
  if(isset($_REQUEST['action'])) {
    if($_REQUEST['action'] == "vote") {
      $conn = mysql_connect ("xxxxxxxx","xxxxxxxx","xxxxxxxx");
      mysql_select_db("boldsens_dk");
      mysql_query("UPDATE pollanswer SET hits = hits+1 WHERE questionid = '$_REQUEST[questionid]' AND id = '$_REQUEST[id]'");
      mysql_close($conn);
      setcookie($cookieprefix."stem", "true", time()+999999);
    }
  }
?>

<?
          function HaveVoted() {
            global $cookieprefix;
            if($_COOKIE[$cookieprefix."stem"]) {
            return true;
            } else {
            return false;
            }
            }
                                 
function ShowResults() {

########## POLL QUESTION ##########

$kode .= "<table>\n";
$conn = mysql_connect ("xxxxxxxx","xxxxxxxx","xxxxxxxx");
mysql_select_db("boldsens_dk");
$result = mysql_query("select * from pollquestion WHERE start <= now() AND end >= now()");
while ($row = mysql_fetch_array($result)) {
$kode .= "<tr><td colspan=\"2\">" . htmlentities($row["question"]) . "</td></tr>\n";

$questionid = $row["questionid"];
}

########## SUM OF POLLANSWERS ##########

$result = mysql_query("select sum(hits) as hits from pollanswer where questionid = '$questionid'");
while ($row = mysql_fetch_array($result)) {
  $sum = $row["hits"];
}

$result = mysql_query("select * from pollanswer WHERE questionid = '$questionid'");
while ($row = mysql_fetch_array($result)) {
  $percent = 0;
  if($row["hits"] > 0) {
    $percent = ($row["hits"] * 100) / $sum;
  }
    $kode .= "<tr><td>" . htmlentities($row["answer"]) . "</td>";
    $kode .= '<td><img src="Pics/bar.jpg" style="width: ' . $percent . 'px; height: 12px; border: 0px;" alt=""></td>';
    $kode .= "<td>" . round($percent , 1). "%</td></tr>\n";
}
  $kode .= "<td><tr><td colspan=\"2\">$sum stemme(r) i alt</td></tr>\n";
mysql_close($conn);

$kode .= "</table>\n";

########## VOTE ##########

if($_REQUEST[action] == "vote") {
$conn = mysql_connect ("xxxxxxxx","xxxxxxxx","xxxxxxxx");
  mysql_select_db("boldsens_dk");
  mysql_query("UPDATE pollanswer SET hits = hits + 1 WHERE questionid = '$_REQUEST[questionid]' AND id = '$_REQUEST[id]'");
  mysql_close($conn);
}
return $kode;
}

function ShowPoll() {
    ########## POLL QUESTION ##########
   
    $kode .=  "<form action=\"index.php?action=vote\" method=\"post\">\n";
    $kode .= "<table>\n";
   
    $conn = mysql_connect("xxxxxxxx", "xxxxxxxx", "xxxxxxxx");
    mysql_select_db("boldsens_dk");
    $result = mysql_query("select * from pollquestion WHERE start <= now() AND end >= now()");
   
    while ($row = mysql_fetch_array($result)) {
    $kode .= "<tr><td>" . htmlentities($row[question]) . "</td></tr>\n";
   
    $questionid = $row[questionid];
    }

    ########## POLL ANSWERS ##########
   
    $result = mysql_query("select * from pollanswer WHERE questionid = '$questionid'");
    while ($row = mysql_fetch_array($result)) {
    $kode .= "<tr><td><input type=\"radio\" name=\"id\" value=\"" . $row["id"] . "\">" . $row["answer"]."</td></tr>\n";
    }
    $kode .= "<tr><td><input type=\"hidden\" name=\"questionid\" value=\"$questionid\">\n";

    $kode .= "<br>";
    $kode .= "<input type=\"submit\" value=\"Stem\"></td></tr>\n";
    $kode .= "</table>\n";
    $kode .= "</form>\n";

    return $kode;
}

            if(HaveVoted() == true) {
            echo ShowResults();
            } else {
            echo ShowPoll();
            }
           
            if(HaveVoted() == true) {
                        echo "Du har stemt";
            } else {
                        echo "Du har ikke stemt";
            }
?>

Kan I gennemskue den?
Avatar billede nikolajdu Nybegynder
18. november 2004 - 21:58 #1
setcookie($cookieprefix."stem", "true", time()+999999);
....
header("location:".$_SERVER["PHP_SELF"]);
Avatar billede nikolajdu Nybegynder
18. november 2004 - 21:59 #2
cookien bliver ikke registreret før du genindlæser siden.
Avatar billede m_bold Praktikant
18. november 2004 - 22:01 #3
ok. Hvor skal jeg så helt præcist sætte "header("location:".$_SERVER["PHP_SELF"]);" ind?
Avatar billede nikolajdu Nybegynder
18. november 2004 - 22:03 #4
ind under cookien som jeg har gjort. Husk at du ikke må udskrive noget med echo eller print (eller html) først
Avatar billede m_bold Praktikant
18. november 2004 - 22:07 #5
OK. Så den ekstra linie kalder simpelthen bare siden igen eller hva?
Anyways det virker, så smid et svar... Tak
Avatar billede nikolajdu Nybegynder
18. november 2004 - 22:11 #6
Jep lige præcis :))
Avatar billede nikolajdu Nybegynder
18. november 2004 - 22:18 #7
tak for point :))
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