28. januar 2001 - 19:28Der er
11 kommentarer og 1 løsning
Afstemning...
Hejsa.. Jeg har en afstemning på min side, som jeg gerne vil have ændret lidt. Det derejer sig om 2 ting.
1: Hvis brugeren HAR stemt en gang, skal den bare vise resultatet af afstemningen, og ikke stem knappen.
2: Jeg tænkte på om det var muligt at få resultatet ud i %\'er i stedet for stemmer?
Her er selv koden:
<? if (!$action && !$lets == \"go\"){ ?>
Hvad synes du om Inzone.dk\'s nye design?<br><br> God - <? include(\"votes/001/1.txt\"); ?> Stemmer<BR> <table width=\"<? include(\"votes/001/1.txt\"); ?>\" bgcolor=\"red\"><tr><td></td></tr></table>
Det skulle da være forholdsvist enkelt det der med procent: $a=include(\"votes/001/1.txt\"); $b=include(\"votes/001/2.txt\"); $c=include(\"votes/001/3.txt\"); $ialt=$a+$b+$c; $ax=round($a/$ialt*100); $bx=round($b/$ialt*100); $cx=round($c/$ialt*100); Ovesntående skal så bare erstatte de nuværende include-fil-steder. (PS: Hvis du f.eks. vil runde en decimal, skal du bare gange dit x-tal med ti før roun() funktionen, og dividere med 10 efter)
Jeg er ikke sikker på at jeg ved hvad du mener med ikke at vise stemknappen, m,en hvis du nu indsætter et <? if (!$ip) { //før din echo \"<a href=\\\"\".$PHP_SELF.\"?action=vote\">Stem!</a>\"; ?> så kommer der sa ihvertfald ingen stemknap - men så skal du jo have en eller anden databse til at registrere om brugerens ip har stemt, hvilket det iøvrigt lader til er tilfældet. En anden løsning er at gemme det i en cookie: SetCookie(\"stemt\",\"1\",24*3600); //tror jeg nok :) //og så sige at if (!$stemt) echo \"<a href=\\\"\".$PHP_SELF.\"?action=vote\">Stem!</a>\"; eller hvad du nu vil...
PS: Jeg har oplevet problemer med at bruge tekstfiler som datakilder: Hvis flere brugere uheldigvis kommer til at trykke med en brøkdels sekund forskel, kan man risikere at tekstfilen bliver nulstillet - jeg er ikke helt sikker på hvorfor, men det sker ihvertfald ikke ved databaser, så måske det var en bedre løsning - om muligt selvfølgelig...
Lige en kommentar til round(). Jeg har oplevet at hvis man pludser talene sammen så kan de give 96 eller 97 .. Så jeg bruger number_format() (http://www.php.net/manual/en/function.number-format.php) som afrunde med xx antal decimaler alt efter ens behov. Jeg bruger 2 til mine poll\'s....
Hvad synes du om Inzone.dk\'s nye design?<br><br> God - <? include(\"votes/001/1.txt\"); ?> Stemmer<BR> <table width=\"<? include(\"votes/001/1.txt\"); ?>\" bgcolor=\"red\"><tr><td></td></tr></table>
Du har et uheldigt navn for din cookie. Den konflikter med den anden vote-var. Prøv det her: <? if($submit) { setcookie(\"voted\",\"1\",time()+2419200); }
Jeg har fudnet en anden vote som kører med MySql.. det er lidt nemmere...
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.