webForumDet fria alternativet

Röstningsfunktion

PHP

5 svar · 322 visningar · startad av Wiberg

Medlem sedan juni 20003 169 inlägg
Frågan#1

Följande efterfrågas:

Besökaren väljer mellan 5 olika alternativ (radiobuttons) och klickar på en submit knapp. Beroende på vilken radiobutton som är markerad lägg 1 till i en speciell textfil. En textfil för varje svarsalternativ alltså.

Tack på förhand!

------------------
¤ WIBERG ¤

Medlem sedan apr. 20003 971 inlägg
#2

Så här, kanske?

<form method=post>
<input type=radio name=opt value=a>A
<input type=radio name=opt value=b>B
<input type=radio name=opt value=c>C
<input type=submit>
</form>
<?
if($REQUEST_METHOD == "POST") {
if($opt == "a") // Välj fil
$file = "a.dat";
else if($opt == "b")
$file = "b.dat";
else if($opt == "c")
$file = "c.dat";
else die("Bad choice");

$fp = fopen($file, "w+"); // Öppna fil för uppdatering
$no = (int)fread($fp, 15); // Läs in nummer (0 om filen inte finns)
rewind($fp); // Spola tillbaka
fwrite($fp, $no + 1); // Skriv nytt nummer
fclose($fp); // Stäng fil
}
?>

Det finns dock bättre sätt att lösa t.ex. röstningsystem. Man kan bland annat använda databaser som är mycket effektivare.

------------------
- Swey
Skriv först, tänk sen!

Medlem sedan juni 20003 169 inlägg
#3

Tackar! :e :e :e

------------------
¤ WIBERG ¤

Medlem sedan juni 20003 169 inlägg
#4

Jag igen :e

Du skulle inte kunna lägga til några rader i koden så att samma besökare inte kan rösta mer än en gång åt gången. Besökarens IP sparas alltså då i t.ex. ipnummer.txt

:q

------------------
¤ WIBERG ¤

Medlem sedan juni 20003 169 inlägg
#5

Det går bra att rösta en gång på varje alternativ men sedan vill scriptet inte längre. A=1 B=1 C=1 men aldrig 2...

------------------
¤ WIBERG ¤

Medlem sedan apr. 20003 971 inlägg
#6

Jag kunde inte testa koden sist så därför smög det in ett fel.
Ändra fopen-raden till denna: (r+ istället för w+)
$fp = fopen($file, "r+"); // Öppna fil för uppdatering

Filen måste dock finnas för att det ska fungera nu.

Om besökarna bara ska kunna rösta en gång måste hela systemet bytas ut och fungera helt annorlunda mot det du beskrev. Här finns lite skript att tanka hem och testa. http://php.resourceindex.com/Complete_Scripts/Survey_and_Voting/

------------------
- Swey
Skriv först, tänk sen!

[Redigerat av Swey den 05 nov 2000]

263 ms totalt · 4 externa anrop · v20260731065814-full.1dc6f849
132 ms — deklarationer (db)
0 ms — hämta statistik (cache)
127 ms — hämta tråd, inlägg och bilagor (db)
127 ms — ändringar (db)