Avatar billede Slettet bruger
26. september 2005 - 15:30 Der er 20 kommentarer og
1 løsning

Simpelt afstemningssystem

Hej
Jeg skal lave et simpelt afstemningssytem
Hvordan skal det laves? Kan i evt. lave kildekode? :D

Det skal have 3 valgmuligheder, de skal hentes fra en SQL database og så skal det være... simpelt...
Avatar billede jaw Nybegynder
26. september 2005 - 15:40 #1
Super nemt, men så kan du måske selv bygge videre på det.

Stem.php:
<form action='registrer.php' method='post'>
<select name='stemme'>
  <option value='god'>God</option>
  <option value='mellem'>Mellem</option>
  <option value='daarlig'>D&aring;rlig</option>
</select>
<input type='submit' value='Stem'>
</form>

Registrer:
<?
//connect
mysql_query("INSERT INTO stemmer (stemme) VALUES ('".$_POST['stemme']."')") or die(mysql_error());

echo "Resultat:<br />";
$q = mysql_query("SELECT stemme, COUNT(*) as stemmer FROM stemmer GROUP BY stemme") or die(mysql_error());
while($row = mysql_fetch_array($q)) {
  echo $row['stemme'] . " " . $row['stemmer'] ."<br />";
}
?>
Avatar billede Slettet bruger
26. september 2005 - 17:25 #2
hvad skal der være i databasen?

id INT
stemmer VARCHAR

?
Avatar billede jaw Nybegynder
26. september 2005 - 17:27 #3
I mit script såmænd bare stemme (VARCHAR).
Avatar billede jaw Nybegynder
26. september 2005 - 17:28 #4
Og så skal det selvfølgelig udbygges med noget id-væsen og evt. tracking af brugeren, så du kan holde øje med hvilke svar der hører til hvilket spørgsmål og om brugeren har stemt 1 eller 17 gange. Men det er så ikke med pt.
Avatar billede Slettet bruger
26. september 2005 - 17:29 #5
Ok!
Den skal vises på forsiden...
Skal jeg så vise stem.php, så når man har stemt viser den automatisk resultaterne?
Avatar billede jaw Nybegynder
26. september 2005 - 17:30 #6
Ja det vil den gøre. Men hvis brugeren opdaterer siden eller går tilbage kan han stemme uendeligt antal gange.
Avatar billede Slettet bruger
26. september 2005 - 17:30 #7
ok, kan jeg ikke sætte den til at sætte en cookie når man har stemt, så i starten af stem.php kan jeg bare tjekke om cookie er sat til, hvis ja viser den:

echo "Resultat:<br />";
$q = mysql_query("SELECT stemme, COUNT(*) as stemmer FROM stemmer GROUP BY stemme") or die(mysql_error());
while($row = mysql_fetch_array($q)) {
  echo $row['stemme'] . " " . $row['stemmer'] ."<br />";
}
Avatar billede jaw Nybegynder
26. september 2005 - 17:32 #8
Jo, det kan jo være 1 måde at gøre det på. Der skal du jo så bare være opmærksom på, at cookies kan slettes af brugeren selv.
Avatar billede Slettet bruger
26. september 2005 - 17:33 #9
tja, men man tænker vel ikke på at slette cookies for at chikanere en afstemning...
kommer du med et svar?
Avatar billede jaw Nybegynder
26. september 2005 - 17:35 #10
Du får i hvert fald nok svært ved at blive 100% sikker på nogen måde, men der er selvfølgelig adskille mere eller mindre avancerede måder at gøre det på, hvor en cookie er én måde. Desuden kan man jo registrere brugerne, tracke på ip etc.

Og ja, jeg smider da gerne et svar hvis du mener jeg har lavet nok :)
Avatar billede Slettet bruger
26. september 2005 - 17:43 #11
skal jeg ikke connecte til databasen ?
Avatar billede jaw Nybegynder
26. september 2005 - 17:44 #12
Det er klart, derfor skrev jeg //connect.

mysql_connect("host", "user", "pass") or die(mysql_error());
mysql_select_db("databasenavn") or die(mysql_error());
Avatar billede Slettet bruger
26. september 2005 - 17:46 #13
smart :P
Avatar billede Slettet bruger
26. september 2005 - 17:53 #14
kan du ikke lige skrive den kode til at tjekke om cookie er sat? du fik jo nogle nemme points :)
Avatar billede jaw Nybegynder
26. september 2005 - 17:55 #15
Nemme point kan man vel ikke umiddelbart kalde det?! Jeg mener ikke du kan forvente at der bliver kodet et script 100% efter dit hovede med 24-timers support for 60 point?!

Men jow,
if(isset($_COOKIE['cookienavn'])) {
  // cookien er sat!
}
Avatar billede Slettet bruger
26. september 2005 - 18:00 #16
tak
Avatar billede jaw Nybegynder
26. september 2005 - 18:02 #17
np :)
Avatar billede Slettet bruger
27. september 2005 - 16:40 #18
Har på forsiden:

<?php
if($_GET['m'] == 's') {
include("registrer.php");
}
if($_COOKIE['cookie'] == 'stemt') {
echo "Resultat:<br>";
$q = mysql_query("SELECT stemme, COUNT(*) as stemmer FROM stemmer GROUP BY stemme") or die(mysql_error());
while($row = mysql_fetch_array($q)) {
  echo $row['stemme'] . " " . $row['stemmer'] ."<br />";
}
} else {
?>
                    Hvad synes du om benziiin.dk?
                      <form action='?m=s' method='post'>
                      <input name="stemme" type="radio" value="<img src=http://benziiin.dk/da/img/star1.jpg>">
                        <img src="http://benziiin.dk/da/img/star1.jpg"><br>
                        <input name="stemme" type="radio" class="menu_element" value="<img src=http://benziiin.dk/da/img/star2.jpg>">
                        <img src="http://benziiin.dk/da/img/star2.jpg"><br>
                        <input name="stemme" type="radio" class="menu_element" value="<img src=http://benziiin.dk/da/img/star3.jpg>">
                        <img src="http://benziiin.dk/da/img/star3.jpg"><br>
                        <input name="stemme" type="radio" class="menu_element" value="<img src=http://benziiin.dk/da/img/star4.jpg">
                        <img src="http://benziiin.dk/da/img/star4.jpg"><br>
                        <input name="stemme" type="radio" class="menu_element" value="<img src=http://benziiin.dk/da/img/star5.jpg>">
                        <img src="http://benziiin.dk/da/img/star5.jpg"><br>
                        <input name="stemme" type="radio" class="menu_element" value="<img src=http://benziiin.dk/da/img/star6.jpg>">
                        <img src="http://benziiin.dk/da/img/star6.jpg"><br>
                        <input type='submit' class="menu_element" value='Stem'>
                      </form>
<? } ?>

Og i registrer.php:

<?php
$value = "stemt";
setcookie("cookie", $value);
mysql_connect("localhost", "benziiin_dk", "deluxe") or die(mysql_error());
mysql_select_db("benziiin_dk") or die(mysql_error());

mysql_query("INSERT INTO stemmer (stemme) VALUES ('".$_POST['stemme']."')") or die(mysql_error());

echo "Resultat:<br />";
$q = mysql_query("SELECT stemme, COUNT(*) as stemmer FROM stemmer GROUP BY stemme") or die(mysql_error());
while($row = mysql_fetch_array($q)) {
  echo $row['stemme'] . " " . $row['stemmer'] ."<br />";
}
?>


Når jeg har stemt, viser den resultat + man kan stemme igen, opdaterer jeg siden kan jeg stemme igen, hvad skal jeg gøre ? Man må kun stemme 1 gang, og når man har stemt skal den KUN viser resultatet...
Avatar billede jaw Nybegynder
27. september 2005 - 16:42 #19
Det var jo det jeg sagde, hvor du selv ville sætte en cookie.
Avatar billede Slettet bruger
27. september 2005 - 16:54 #20
jeg har sat cookie, men den viser også afstemningsboksen selvom cookie er sat!
Avatar billede jaw Nybegynder
27. september 2005 - 19:01 #21
kig på dine } - tror du har set dem forkert
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