php fout.
Boaz schreef op 09.03.2009 19:01:
@Carlo: Lees je de posts wel goed door?
Gewijzigd op 01/01/1970 01:00:00 door - SanThe -
Maar hij zegt nu
Vraag 1 heeft u goed!
uw opgegeven andwoord: Carlo
u heeft '.11.' op uw rekening staan andwoord 2 is niet goed!
ja ik weet dat antwoord met een t moet schrijven :)
Maar hoe kan het dat antwoord 2 fout is?
Ik vul gewoon Demi in.
hoe kan ik controleren dat ze andwoord 1, 2, 3 en 4 goed hebben?
strtolower().
Hoofdletter gevoelig? Zet alles naar lowercase EDIT: Helaas werkt dit niet, ik heb het veranderd. (ik post als het moet wel de code) Maar de 2de vraag is altijd fout..
Code (php)
1
2
3
4
5
6
7
2
3
4
5
6
7
<?
//grote en kleine letters gelijk maken
$a = strtolower($_POST['aa']);
$b = strtolower($_POST['ab']);
$c = strtolower($_POST['ac']);
$d = strtolower($_POST['ad']);
?>
//grote en kleine letters gelijk maken
$a = strtolower($_POST['aa']);
$b = strtolower($_POST['ab']);
$c = strtolower($_POST['ac']);
$d = strtolower($_POST['ad']);
?>
weten jullie misschien een oplossing?
Gewijzigd op 01/01/1970 01:00:00 door carlo boy
Hoe kan het dat de 2de andwoord altijd fout is?
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
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
166
167
168
169
170
171
172
173
174
175
176
177
178
179
180
181
182
183
184
185
186
187
188
189
190
191
192
193
194
195
196
197
198
199
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
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
166
167
168
169
170
171
172
173
174
175
176
177
178
179
180
181
182
183
184
185
186
187
188
189
190
191
192
193
194
195
196
197
198
199
<?php
include("safe.php");
include("config.php");
//BEGIN INSETELLINGEN
//de vragen d staat de 'de' v staat voor 'vraag' a betekent welke vraag
//hier kan je de vragen instellen
//vraag 1:
$dva = 'waar kan je terecht als er problemen zijn in de punten aftrek problemen met inloggen, enz?';
//vraag 2:
$dvb = 'Waar ka je terecht als er problemen zijn met de lagout van de pagina?';
//vraag 3:
$dvc = 'Uit hoeveel man bestaat onze team?';
//vraag4:
$dvd = 'Hoeveel geld krijg je in het begin van het spel?';
//de andwoorden, hier kan je het wijziggen.
$aa = 'carlo'; //andwoord van vraag 1
$ab = 'demi'; //andwoord van vraag 2
$ac = '3'; //andwoord van vraag 3
$ad = '1000'; //andwoord van vraag 4
//de andwoorden van de persoon omzetten in kortere tekst (verander hier niks!)
//grote en kleine letters gelijk maken
$va = strtolower($_POST['va']);
$vb = strtolower($_POST['vb']);
$vc = strtolower($_POST['vc']);
$vd = strtolower($_POST['vd']);
//wil je aan iedereen een bonis geven?
//verander dan die 0.
//laat anders die 0 staan!
$aantal = '0';
//Hoeveel punten krijgen ze als ze een andwoord goed hebben?
$hoeveel = '10';
//Welke waarden heeft dit spel?
$db_waarden = '1';
//je kan je script testen.
//(let erop dat je niet vergeet weg te halen!)
//
//zet op de volgende regel de 2// om de vragen en de andwoorden te zien
/*
echo 'andwoorden: a=' . $aa . ' b= ' . $ab . ' c= ' . $ac . ' d=';
echo $ad;
echo '<br>';
echo 'vragen: a=' . $dva . ' b= ' . $dvb . ' c= ' . $dvd . ' d=';
echo $dvd;
echo '<br';
//zet dan ook 2 //'s voor de hier-na-komende regel
*/
//einde instellingen
//verander hier niks meer!
//sql opdracht uitvoeren
$query = " SELECT
id,
status,
wachtwoord,
actief,
geld,
aantal_spel
FROM
gebruikers
WHERE
id = '" . $_SESSION['user_id'] . "'
AND
status = '" . $_SESSION['user_status'] . "'
";
$result = mysql_query( $query );
$rij = mysql_fetch_object($result);
$geld = htmlspecialchars($rij->geld);
$spel = htmlspecialchars($rij->aantal_spel);
if ($spel == 5){
echo 'Jammer genoeg je hebt al 5 keer dit spel gespeelt in een week';
}else{
if ( isset( $_POST['submit'] ) )//controleerd als er op submit is geklikt:
{
echo 'heey';
if($aa = $va){
echo 'Goezo!<br>';
echo 'U heeft vraag1 goed ingevult!<br>';
echo $dva;
$aantal = $aantal + $hoeveel;
}else{
echo " andwoord 1 is niet goed!";
echo '<br>';
}
if($ab = $vb){
echo 'Goezo!<br>';
echo 'U heeft vraag2 goed ingevult!<br>';
echo $dva;
echo '<br>';
$aantal = $aantal + $hoeveel;
}else{
echo " andwoord 2 is niet goed!";
echo '<br>';
}
if($ac = $vc){
echo 'Goezo!<br>';
echo 'U heeft vraag3 goed ingevult!<br>';
echo $dva;
echo '<br>';
$aantal = $aantal + $hoeveel;
}else{
echo " andwoord 3 is niet goed!";
echo '<br>';
}
if($ad = $vd){
echo 'Goezo!<br>';
echo 'U heeft vraag4 goed ingevult!<br>';
echo $dva;
echo '<br>';
$aantal = $aantal + $hoeveel;
}else{
echo " andwoor4 is niet goed!";
echo '<br>';
}
echo 'U heeft ' . $aantal . ' Euro gewonnen!';
echo '<br>';
$sql = "UPDATE gebruikers SET geld= geld + '".$aantal."' WHERE id='".$_SESSION['user_id']."'";
$query = mysql_query($sql);
if($query == TRUE) {
$test = '6' - $aantal;
echo 'Er is succes vol geld op je rekening gestord';
}else{
echo "Er is een probleeem opgetreden, je kan nog '.$aantal.' keer stemmen, vragen beandwoorden.";
echo "<br>Er is dus niks veranderd";
}
$sql = "UPDATE gebruikers SET aantal_spel = aantal_spel + '".$db_waarden."' WHERE id='".$_SESSION['user_id']."'";
$query = mysql_query($sql);
if($query == TRUE) {
$test = '6' - $aantal;
echo '<br> Je db_waarden is met 1 gestegen';
}else{
echo "Er is een probleeem opgetreden, je kan nog '.$aantal.' keer stemmen, vragen beandwoorden.";
echo "<br>Er is dus niks veranderd";
}
}else{ //dit zorgt ervoor
?>
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd">
<html xmlns="http://www.w3.org/1999/xhtml" lang="nl" xml:lang="nl">
<head>
<meta http-equiv="Content-Language" content="nl" />
<link rel="stylesheet" type="text/css" href="../style.css" />
<title><?= $sitenaam ?> - Vragen</title>
</head>
<body>
<!--Hier kan je aan gaan werken demi!---!>
<form action="deo.php" method="post" name="vragen"/>
<br>
Vraag 1:<br>
<? echo $dva ?><br>
<input type="text" name="va"><br>
<br>
Vraag 2:<br>
<? echo $dvb; ?><br>
<input type="text" name="vb"><br>
<br>
Vraag 3:<br>
<? echo $dvc; ?><br>
<input type="text" name-"vc"><br>
<br>
Vraag 4:<br>
<? echo $dvd ?><br>
<input type="text" name="vd"><br>
<br>
<input type="submit" value="Test je kennis!" name="submit">
<?
}
}
?>
include("safe.php");
include("config.php");
//BEGIN INSETELLINGEN
//de vragen d staat de 'de' v staat voor 'vraag' a betekent welke vraag
//hier kan je de vragen instellen
//vraag 1:
$dva = 'waar kan je terecht als er problemen zijn in de punten aftrek problemen met inloggen, enz?';
//vraag 2:
$dvb = 'Waar ka je terecht als er problemen zijn met de lagout van de pagina?';
//vraag 3:
$dvc = 'Uit hoeveel man bestaat onze team?';
//vraag4:
$dvd = 'Hoeveel geld krijg je in het begin van het spel?';
//de andwoorden, hier kan je het wijziggen.
$aa = 'carlo'; //andwoord van vraag 1
$ab = 'demi'; //andwoord van vraag 2
$ac = '3'; //andwoord van vraag 3
$ad = '1000'; //andwoord van vraag 4
//de andwoorden van de persoon omzetten in kortere tekst (verander hier niks!)
//grote en kleine letters gelijk maken
$va = strtolower($_POST['va']);
$vb = strtolower($_POST['vb']);
$vc = strtolower($_POST['vc']);
$vd = strtolower($_POST['vd']);
//wil je aan iedereen een bonis geven?
//verander dan die 0.
//laat anders die 0 staan!
$aantal = '0';
//Hoeveel punten krijgen ze als ze een andwoord goed hebben?
$hoeveel = '10';
//Welke waarden heeft dit spel?
$db_waarden = '1';
//je kan je script testen.
//(let erop dat je niet vergeet weg te halen!)
//
//zet op de volgende regel de 2// om de vragen en de andwoorden te zien
/*
echo 'andwoorden: a=' . $aa . ' b= ' . $ab . ' c= ' . $ac . ' d=';
echo $ad;
echo '<br>';
echo 'vragen: a=' . $dva . ' b= ' . $dvb . ' c= ' . $dvd . ' d=';
echo $dvd;
echo '<br';
//zet dan ook 2 //'s voor de hier-na-komende regel
*/
//einde instellingen
//verander hier niks meer!
//sql opdracht uitvoeren
$query = " SELECT
id,
status,
wachtwoord,
actief,
geld,
aantal_spel
FROM
gebruikers
WHERE
id = '" . $_SESSION['user_id'] . "'
AND
status = '" . $_SESSION['user_status'] . "'
";
$result = mysql_query( $query );
$rij = mysql_fetch_object($result);
$geld = htmlspecialchars($rij->geld);
$spel = htmlspecialchars($rij->aantal_spel);
if ($spel == 5){
echo 'Jammer genoeg je hebt al 5 keer dit spel gespeelt in een week';
}else{
if ( isset( $_POST['submit'] ) )//controleerd als er op submit is geklikt:
{
echo 'heey';
if($aa = $va){
echo 'Goezo!<br>';
echo 'U heeft vraag1 goed ingevult!<br>';
echo $dva;
$aantal = $aantal + $hoeveel;
}else{
echo " andwoord 1 is niet goed!";
echo '<br>';
}
if($ab = $vb){
echo 'Goezo!<br>';
echo 'U heeft vraag2 goed ingevult!<br>';
echo $dva;
echo '<br>';
$aantal = $aantal + $hoeveel;
}else{
echo " andwoord 2 is niet goed!";
echo '<br>';
}
if($ac = $vc){
echo 'Goezo!<br>';
echo 'U heeft vraag3 goed ingevult!<br>';
echo $dva;
echo '<br>';
$aantal = $aantal + $hoeveel;
}else{
echo " andwoord 3 is niet goed!";
echo '<br>';
}
if($ad = $vd){
echo 'Goezo!<br>';
echo 'U heeft vraag4 goed ingevult!<br>';
echo $dva;
echo '<br>';
$aantal = $aantal + $hoeveel;
}else{
echo " andwoor4 is niet goed!";
echo '<br>';
}
echo 'U heeft ' . $aantal . ' Euro gewonnen!';
echo '<br>';
$sql = "UPDATE gebruikers SET geld= geld + '".$aantal."' WHERE id='".$_SESSION['user_id']."'";
$query = mysql_query($sql);
if($query == TRUE) {
$test = '6' - $aantal;
echo 'Er is succes vol geld op je rekening gestord';
}else{
echo "Er is een probleeem opgetreden, je kan nog '.$aantal.' keer stemmen, vragen beandwoorden.";
echo "<br>Er is dus niks veranderd";
}
$sql = "UPDATE gebruikers SET aantal_spel = aantal_spel + '".$db_waarden."' WHERE id='".$_SESSION['user_id']."'";
$query = mysql_query($sql);
if($query == TRUE) {
$test = '6' - $aantal;
echo '<br> Je db_waarden is met 1 gestegen';
}else{
echo "Er is een probleeem opgetreden, je kan nog '.$aantal.' keer stemmen, vragen beandwoorden.";
echo "<br>Er is dus niks veranderd";
}
}else{ //dit zorgt ervoor
?>
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd">
<html xmlns="http://www.w3.org/1999/xhtml" lang="nl" xml:lang="nl">
<head>
<meta http-equiv="Content-Language" content="nl" />
<link rel="stylesheet" type="text/css" href="../style.css" />
<title><?= $sitenaam ?> - Vragen</title>
</head>
<body>
<!--Hier kan je aan gaan werken demi!---!>
<form action="deo.php" method="post" name="vragen"/>
<br>
Vraag 1:<br>
<? echo $dva ?><br>
<input type="text" name="va"><br>
<br>
Vraag 2:<br>
<? echo $dvb; ?><br>
<input type="text" name="vb"><br>
<br>
Vraag 3:<br>
<? echo $dvc; ?><br>
<input type="text" name-"vc"><br>
<br>
Vraag 4:<br>
<? echo $dvd ?><br>
<input type="text" name="vd"><br>
<br>
<input type="submit" value="Test je kennis!" name="submit">
<?
}
}
?>
Maar hoe kan het dat vraag 3 altijd fout is?
regel 117
Gewijzigd op 01/01/1970 01:00:00 door carlo boy
if($aa = $va){
Dit is een vergelijking.
if($aa == $va){
Het lijkt wel dat = het zelfde doet als ==.
ps. hoe vind je me scriptje, is ie niet onveilig?
als ik nu goed me script bekijk, zie ik aan de kleurtjes dat er een paar fouten zitten.
Ik gebruik bv. de hele tijd $dva
en spellings fouten zitten erin.
Dan zie ik dat ik $_SESSION niet controleer.
en dat geld ook voor $_POST.
Hier kan een hacker niet makkelijk SQL injecion toe passen.
Hij kan html gebruiken
En hij kan xss gebr..
Gewijzigd op 01/01/1970 01:00:00 door carlo boy
- Waarom mysql_fetch_object?? Een resultset is geen object;
- Waarom htmlspecialchars gebruiken over velden waar probably een int uit komt?
- Gebruik if($_SERVER['REQUEST_METHOD'] == "POST") voor controle op een submit i.p.v. if(isset($_POST['submit']));
- Niet overzichtelijk ingesprongen en dus geen overzichtelijk script;
- Ik wed dat er wel wat HTML errors in zitten, dus niet xHTML valid;
- Waarom quotes om cijfers?
- Ontzettend veel spellingsfouten. Kijk eens goed naar je Nederlands!
- Onzorgvuldig gebruik van ' en ";
- In je queries hoeven getallen óók niet omringt te worden door quotes. Als je veldtypen op int staan, wil het zo al! Is overigens nog een keer een extra beveiliging, bij invoering van een string zal de query dan erroren (geen quotes om de string is een unexpected error);
- Ik zou ook iets zorgvuldiger zijn in je variabelenamen. $sql is een query, en $query is een resultset. Dat doe je alleen aan het begin goed. Zo zijn er wel meerdere variabelen waar je iets duidelijk zou kunnen zijn. Ik doe het bijv. altijd zo:
Code (php)
1
2
3
4
5
6
2
3
4
5
6
<?php
$iGetal = 99;
$sZin = 'Hoi, dit is PHPhulp.nl';
$bVeld = false;
$aLijst = array('Hoi', 'Doei', 'Welkom', 'Tot ziens');
?>
$iGetal = 99;
$sZin = 'Hoi, dit is PHPhulp.nl';
$bVeld = false;
$aLijst = array('Hoi', 'Doei', 'Welkom', 'Tot ziens');
?>
Snap je het principe van de kleine i, s, b en a? (resp. integer, string, boolean en array.)
Ik hoop dat je serieus naar deze kritieken gaat kijken en er alleen het positieve van in ziet. Ik heb deze kritieken genoteerd om jouw te helpen je script te verbeteren, onthoud dat ;-).
carlo schreef op 16.03.2009 21:52:
...Het lijkt wel dat = het zelfde doet als ==....
dat iets zo lijkt betekend nog niet dat het zo is
Klaasjan Boven schreef op 16.03.2009 22:44:
dat iets zo lijkt betekend nog niet dat het zo is
carlo schreef op 16.03.2009 21:52:
...Het lijkt wel dat = het zelfde doet als ==....
dat iets zo lijkt betekend nog niet dat het zo is
Weet ik, maar met mij scripje lijkt dat wel
@jezper
bedankt ik weet nu wat ik moet verbeteren.
over het overzicht, daarom heb ik ook instellingen gemaakt
maar nederlands is niet m'n sterkste vak.
Ik zal er aan werken