Maximaal 3 keer per IP adres stemmen.
EDIT: de opdracht:
Opdracht 6
Om te voorkomen dat mensen meerdere keren kunnen stemmen, moet er een beveiliging hiertegen worden ingebouwd. Het voorwerk is al deels gedaan, doordat het IP adres van de stemmer wordt vast gelegd. Zorg er nu ook voor dat er maar maximaal 3 stemmen van hetzelfde IP adres mogen worden opgeslagen. Hoe je dit oplost mag je geheel zelf bepalen.
Invul formulier:
Code (php)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
<HTML>
<BODY>
<FORM ACTION="x.php" NAME="formulier" METHOD="post">
<B>Naam:</B>
<INPUT TYPE="text" NAME="naam" SIZE="25" MAXLENGTH="50" <BR>
<B>E-mail:</B>
<INPUT TYPE="text" NAME="email" SIZE="25" MAXLENGTH="80"<BR>
<B>Feest type:</B> <BR>
<INPUT TYPE="radio" NAME="keuze" VALUE="1" CHECKED>Disco classic.
<INPUT TYPE="radio" NAME="keuze" VALUE="2">Western.
<INPUT TYPE="radio" NAME="keuze" VALUE="3">Pigs and farmers.
<INPUT TYPE="radio" NAME="keuze" VALUE="4">Computer games.
<BR>
<INPUT TYPE="reset" VALUE="Beginwaarden">
<INPUT TYPE="submit" VALUE="Volgende">
</FORM>
<BODY>
<FORM ACTION="x.php" NAME="formulier" METHOD="post">
<B>Naam:</B>
<INPUT TYPE="text" NAME="naam" SIZE="25" MAXLENGTH="50" <BR>
<B>E-mail:</B>
<INPUT TYPE="text" NAME="email" SIZE="25" MAXLENGTH="80"<BR>
<B>Feest type:</B> <BR>
<INPUT TYPE="radio" NAME="keuze" VALUE="1" CHECKED>Disco classic.
<INPUT TYPE="radio" NAME="keuze" VALUE="2">Western.
<INPUT TYPE="radio" NAME="keuze" VALUE="3">Pigs and farmers.
<INPUT TYPE="radio" NAME="keuze" VALUE="4">Computer games.
<BR>
<INPUT TYPE="reset" VALUE="Beginwaarden">
<INPUT TYPE="submit" VALUE="Volgende">
</FORM>
PHP code:
Code (php)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
<HTML>
<BODY>
<?php
$host = 'localhost';
$gebruiker = 'root';
$wachtwoord = '';
$databasenaam = 'feestkeuze';
$naam = $_POST['naam'];
$email = $_POST['email'] ;
$keuze = $_POST['keuze'];
$ip = $_SERVER['REMOTE_ADDR'];
$db = mysql_connect( $host, $gebruiker, $wachtwoord );
mysql_select_db( $databasenaam );
$query = "SELECT COUNT(IP), IP FROM vote; ";
$result = mysql_query($query);
if($result > 3)
{
echo "Sorry! je mag maximaal 3 keer stemmen."."<BR>";
}
else
{
$query = "INSERT INTO vote VALUES
('$naam', '$email', '$ip', '$keuze')";
mysql_query( $query);
}
$query = "SELECT COUNT(keuze), keuze FROM vote GROUP BY keuze; ";
$result = mysql_query($query);
while ($regel = mysql_fetch_array ($result))
{
echo "keuze ". $regel['keuze']." ";
echo "is ".$regel['COUNT(keuze)']." keer gekozen."."<BR>";
}
mysql_close($db);
?>
</BODY>
</HTML>
<BODY>
<?php
$host = 'localhost';
$gebruiker = 'root';
$wachtwoord = '';
$databasenaam = 'feestkeuze';
$naam = $_POST['naam'];
$email = $_POST['email'] ;
$keuze = $_POST['keuze'];
$ip = $_SERVER['REMOTE_ADDR'];
$db = mysql_connect( $host, $gebruiker, $wachtwoord );
mysql_select_db( $databasenaam );
$query = "SELECT COUNT(IP), IP FROM vote; ";
$result = mysql_query($query);
if($result > 3)
{
echo "Sorry! je mag maximaal 3 keer stemmen."."<BR>";
}
else
{
$query = "INSERT INTO vote VALUES
('$naam', '$email', '$ip', '$keuze')";
mysql_query( $query);
}
$query = "SELECT COUNT(keuze), keuze FROM vote GROUP BY keuze; ";
$result = mysql_query($query);
while ($regel = mysql_fetch_array ($result))
{
echo "keuze ". $regel['keuze']." ";
echo "is ".$regel['COUNT(keuze)']." keer gekozen."."<BR>";
}
mysql_close($db);
?>
</BODY>
</HTML>
Gewijzigd op 07/10/2010 14:36:56 door Ron Oudgenoeg
We gaan niet helpen school opdrachten te maken
Daarmee sluit je mensen uit en een ander ip adres is makkelijk verkrijgbaar.
Karl Karl op 07/10/2010 14:32:38:
Niet op ip doen.
Daarmee sluit je mensen uit en een ander ip adres is makkelijk verkrijgbaar.
Daarmee sluit je mensen uit en een ander ip adres is makkelijk verkrijgbaar.
het is voor een school opdracht, en dat is de opdracht
Karl Karl op 07/10/2010 14:32:38:
Niet op ip doen.
Daarmee sluit je mensen uit en een ander ip adres is makkelijk verkrijgbaar.
Daarmee sluit je mensen uit en een ander ip adres is makkelijk verkrijgbaar.
Zoals Pieter al zei, is dat volgens de opdracht het beste om te doen, en zou het graag voor nu dan ook via het IP doen.
Als je een alternatief kan maken wat beter werkt, lijkt mij dat je nog steeds een voldoende hoort te krijgen. Als je maar uitlegt waarom.
Karl Karl op 07/10/2010 15:01:25:
Als je een alternatief kan maken wat beter werkt, lijkt mij dat je nog steeds een voldoende hoort te krijgen. Als je maar uitlegt waarom.
En wat is dat alternatief dan en hoe gebruik je dat?
Maar volgens mij is je script al compleet, behalve dat je op deze manier, alle gebruikers weert, wanneer er 3 stemmen zijn.
Hint:
Gewijzigd op 07/10/2010 15:09:38 door Pieter van Linschoten
maar met burgerservicenummer en irisscan als verificatie gaat niet lukken als dit zelfs niet lukt.
Pieter M op 07/10/2010 15:16:53:
maar met burgerservicenummer en irisscan als verificatie gaat niet lukken als dit zelfs niet lukt.
Dat was ook sarcastisch bedoelt.
Je bent een WHERE vergeten. Hij checkt nu, als er 3 rijen bestaan mag je niet meer stemmen. Dus je moet WHERE IP = ipadres(remoteaddr ofzo).
Ik ben het wel eens met Karl Karl, dit is niet een handige manier om stemmen te loggen.