17. november 2004 - 21:51Der er
8 kommentarer og 1 løsning
cookie-problem
Jeg har et prolem med mine cookie (tror jeg). Jeg kan sagtens stemme flere gange i min afstemning, hvilket jeg naturlig ikke burde kunne. Jeg får fint udskrevet mine afstemningsresultater, når jeg har stemt, men næste gang jeg går ind på siden kan jeg stemme igen. Hvad er problemet?
ØVERST i index.php: <? function VoteNow() {
if(!$_REQUEST[action]) { if($_REQUEST[action] == "vote") { $conn = mysql_connect ("xxxxxxx","xxxxxxx","xxxxxxx"); 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."vote", "true", time()+999999999); } } } ?>
Længere nede i index.php: <? if(HaveVoted() != true) { echo VoteNow(); echo ShowResults(); } else { echo ShowPoll(); }
function HaveVoted() { global $cookieprefix; if($_COOKIE[$cookieprefix."vote"]) { return true; } else { return false; } } ?>
Og ved at lægge 999.999.999 kommer du betænkeligt tæt på grænsen for et unixtimestamp. Det går an endnu, men der er ikke langt tid til at det går galt. Vælg et mindre tal, eller angiv en fast grænse, fx en gang i år 2030 ;)
Tja. Det er jo rigtig nok. Hvorfor havde jeg ikke set det? Nå smid et svar erikjacobsen...
Du skulle vel ikke lige vide hvordan jeg binder en bestemt skrifttype- og størrelse til noget php. Jeg har prøvet at binde det til tabellen, som det står i, men det giver ikke rigtig gevinst.
schefner: Ja jeg er også i tvivl om hvad den if-sætning gør. Jeg har fået meget hjælp af en anden fyr her på eksperten, meget af det var jeg ret uforstående overfor...
function HaveVoted() { global $cookieprefix; if($_COOKIE[$cookieprefix."vote"]) { return true; } else { return false; } }
function ShowResults() {
########## POLL QUESTION ##########
$kode .= "<table>\n"; $conn = mysql_connect ("xxxxx","xxxxxxx","xxxxxxx"); 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"];
$conn = mysql_connect("xxxxxxxx", "xxxxxxxx", "xxxxxxxx"); mysql_select_db("boldsens_dk"); $result = mysql_query("select * from pollquestion WHERE start <= now() AND end >= now()");
In that case snupper jeg selv pointsene - men tak for hjælpen.
Synes godt om
Ny brugerNybegynder
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.