Checkbox formulier
Heeft dit persoon geld te weinig dan wil een foutmelding krijgen kan iemand mij ermee helpen?
Het script:
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
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
<?php
if(isset($_POST['repair'])){
$aDoor = $_POST['id'];
if(empty($aDoor)){
echo'
<tr>
<td class="mainTxt" colspan="8">
Je hebt geen voertuigen geselecteerd.
</td>
</tr>
';
}
else{
$N = count($aDoor);
for($i=0; $i < $N; $i++){
$test = mysql_query("SELECT * FROM `voertuigen` WHERE `owner`='$data->username' AND `ID`='$aDoor[$i]' AND `game`='$game'");
$testing = mysql_fetch_object($test);
mysql_query("UPDATE `leden` SET `cash`=`cash`-'$prijs' WHERE `username`='$data->username' AND `game`='$game'");
mysql_query("DELETE FROM `voertuigen` WHERE `game`='$game' AND `ID`='$aDoor[$i]'");
}
echo'
<tr>
<td class="mainTxt" colspan="8">
Je hebt '.$N.' voertuigen gerepareerd!
</td>
</tr>
';
}
}
$voertuig = mysql_query("SELECT * FROM `voertuigen` WHERE `game`='$game' AND `soort`='auto' AND `owner`='$data->username'");
while($info = mysql_fetch_assoc($voertuig)){
$id = mysql_real_escape_string($info['ID']);
$types = mysql_real_escape_string($info['soort']);
$models = mysql_real_escape_string($info['nummer']);
$schade = mysql_real_escape_string($info['schade']);
$waardes = mysql_real_escape_string($info['waarde']);
$landz = mysql_real_escape_string($info['land']);
echo'
<tr>
<td class="mainTxt">
'.$id.'
</td>
<td class="mainTxt">
'.$types.'
</td>
<td class="mainTxt">
'.$models.'
</td>
<td class="mainTxt">
'.$schade.'%
</td>
<td class="mainTxt">
€'.$waardes.'
</td>
<td class="mainTxt">
'.$landz.'
</td>
<td class="mainTxt">
<a>
<img src="images/wrench.png" title="Repareren!" alt="Repareren!" />
</a>
<a>
<img src="css/money.png" title="Verkopen!" alt="Verkopen!" />
</a>
</td>
<td class="mainTxt">
<input type="checkbox" name="id[]" value="'.$id.'" />
</td>
</tr>
';
}
echo'
<tr>
<td class="mainTxt" colspan="8" style="text-align:center;">
<br />
<input id="input" name="sell" type="submit" value="Verkoop" />
<input id="input" name="ship" type="submit" value="Verscheep" />
<input id="input" name="repair" type="submit" value="Repareer" />
<br />
<br />
</td>
</tr>
</form>
</table>
';
?>
if(isset($_POST['repair'])){
$aDoor = $_POST['id'];
if(empty($aDoor)){
echo'
<tr>
<td class="mainTxt" colspan="8">
Je hebt geen voertuigen geselecteerd.
</td>
</tr>
';
}
else{
$N = count($aDoor);
for($i=0; $i < $N; $i++){
$test = mysql_query("SELECT * FROM `voertuigen` WHERE `owner`='$data->username' AND `ID`='$aDoor[$i]' AND `game`='$game'");
$testing = mysql_fetch_object($test);
mysql_query("UPDATE `leden` SET `cash`=`cash`-'$prijs' WHERE `username`='$data->username' AND `game`='$game'");
mysql_query("DELETE FROM `voertuigen` WHERE `game`='$game' AND `ID`='$aDoor[$i]'");
}
echo'
<tr>
<td class="mainTxt" colspan="8">
Je hebt '.$N.' voertuigen gerepareerd!
</td>
</tr>
';
}
}
$voertuig = mysql_query("SELECT * FROM `voertuigen` WHERE `game`='$game' AND `soort`='auto' AND `owner`='$data->username'");
while($info = mysql_fetch_assoc($voertuig)){
$id = mysql_real_escape_string($info['ID']);
$types = mysql_real_escape_string($info['soort']);
$models = mysql_real_escape_string($info['nummer']);
$schade = mysql_real_escape_string($info['schade']);
$waardes = mysql_real_escape_string($info['waarde']);
$landz = mysql_real_escape_string($info['land']);
echo'
<tr>
<td class="mainTxt">
'.$id.'
</td>
<td class="mainTxt">
'.$types.'
</td>
<td class="mainTxt">
'.$models.'
</td>
<td class="mainTxt">
'.$schade.'%
</td>
<td class="mainTxt">
€'.$waardes.'
</td>
<td class="mainTxt">
'.$landz.'
</td>
<td class="mainTxt">
<a>
<img src="images/wrench.png" title="Repareren!" alt="Repareren!" />
</a>
<a>
<img src="css/money.png" title="Verkopen!" alt="Verkopen!" />
</a>
</td>
<td class="mainTxt">
<input type="checkbox" name="id[]" value="'.$id.'" />
</td>
</tr>
';
}
echo'
<tr>
<td class="mainTxt" colspan="8" style="text-align:center;">
<br />
<input id="input" name="sell" type="submit" value="Verkoop" />
<input id="input" name="ship" type="submit" value="Verscheep" />
<input id="input" name="repair" type="submit" value="Repareer" />
<br />
<br />
</td>
</tr>
</form>
</table>
';
?>
Gewijzigd op 29/08/2011 22:38:41 door Martijn L
Waarom op regel 3 een variabele aanmaken?
Waar is de controle op de input?
Backtics horen volgens mij niet thuis in een query.
Variabelen buiten quotes.
Selecteer veldnamen en niet *.
Zorg voor beveiliging van je query's.
Wat is het nut van regel 32 t/m 37. Lijkt me op klok en klepel.
Zorg voor foutafhandeling bij query's.
Misschien handig om duidelijke(re) namen mee te geven aan variabelen.
Hebben de query's op regel 19 en 20 nut? Wat doet die for-lus eigenlijk?
Zie zo snel ook niet waar $voertuig vandaan komt (regel 31).
Ik zal 1 voor 1 je vragen beantwoorden, graag ook een reactie met hoe het beter kan.
Waarom op regel 3 een variabele aanmaken?
Ik heb op het internet na een tijd zoeken dit als enige tutorial voor het verwerken van een checkbox formulier, afwijken hiervan leek me niet nodig aangezien ze wel verwerkt werden.
Waarom op regel 3 een variabele aanmaken?
Ik heb werkelijk geen idee sorry:$ dit was mijn 1e script met een werkende checkbox dus waarschijnlijk de beveiliging over het hoofd gezien.
Backtics horen volgens mij niet thuis in een query.
Ik heb geleerd van iemand die me het begin van php leerde, is dit verkeerd?
Variabelen buiten quotes.
Die snap ik niet graag uitgebreidere uitleg?
Selecteer veldnamen en niet *.
Is het veiliger als je elk veld in een mysql_query apart noemt?
Zorg voor beveiliging van je query's.
Ik dacht dat je een query beveiligt dmv mysql_real_escape_string() zoals mij is aangeleerd door het bovengenoemde persoon
Edit:
Na even zoeken op het internet zie ik dat het alleen werkt voor het plaatsen van variabelen in de database
Wat is het nut van regel 32 t/m 37. Lijkt me op klok en klepel.
Zie bovenstaande antwoord:P
Zorg voor foutafhandeling bij query's.
Hierbij bedoel je de mysql_error()?
Misschien handig om duidelijke(re) namen mee te geven aan variabelen.
In een script van 1000+ regels wordt het soms een beetje moeilijk om verschillende variabelen te bedenken vandaar de aparte variabelen
Hebben de query's op regel 19 en 20 nut? Wat doet die for-lus eigenlijk?
Deze hebben wel degelijk nut als ik de beveiliging erbij plaats wat jij al noemde
Zie zo snel ook niet waar $voertuig vandaan komt (regel 31).
Erbij geplaatst zag inderdaad dat ontbrak
Gewijzigd op 29/08/2011 23:39:35 door Martijn L
Iemand die me een betere manier kan laten zien van de fouten die zijn genoemd door Obelix en Idefix?
Mag ik vragen wat het voor een nut heeft om wel commentaar te geven maar geen manier zoals het beter moet?
Heb je zelf Google al gebruikt om uitleg te vinden??
Martijn L op 29/08/2011 22:49:57:
Waarom op regel 3 een variabele aanmaken?
Ik heb op het internet na een tijd zoeken dit als enige tutorial voor het verwerken van een checkbox formulier, afwijken hiervan leek me niet nodig aangezien ze wel verwerkt werden.
Ik heb op het internet na een tijd zoeken dit als enige tutorial voor het verwerken van een checkbox formulier, afwijken hiervan leek me niet nodig aangezien ze wel verwerkt werden.
Omdat het werkt, wil het nog niet zeggen dat het goed is. Door het aanmaken van een variabele ben je 1) het overzicht kwijt waar het vandaan komt (input of vanuit het script) en 2) gebruik je onnodig geheugen.
Martijn L op 29/08/2011 22:49:57:
Waarom op regel 3 een variabele aanmaken?
Ik heb werkelijk geen idee sorry:$ dit was mijn 1e script met een werkende checkbox dus waarschijnlijk de beveiliging over het hoofd gezien.
Ik heb werkelijk geen idee sorry:$ dit was mijn 1e script met een werkende checkbox dus waarschijnlijk de beveiliging over het hoofd gezien.
Quote:
Leer jezelf aan om alles te controleren wat via post/get je script in komt. Controleer ook alle query's of er een (juiste) uitkomst is. En dan bij voorkeur niet met 'or die'.
Het schijnt (af en toe) tot foute/niet werkende query's te kunnen leiden.
Probeer het eens.
Het geeft je inzicht in wat je aan het doen bent en voorkomt bij complexere query's dat dingen niet gaan zoals je zou willen.
Heb het idee van klok en klepel. mysql_real_escape_string() Gebruik je in een query, niet, zoals jij nu doet bij de output. En nee, ook niet alleen! bij het plaatsen van variabelen.
Ja, maar dan volledig/nette foutafhandeling.
En om je een concreet antwoord te geven op je vraag: denk dat het verstandiger is om eerst te zorgen dat je script goed/veilig is. En daarna nog even uitleggen wat je nou precies wilt doen met deze code, want dat is me niet duidelijk.
Martijn L op 29/08/2011 22:49:57:
Backtics horen volgens mij niet thuis in een query.
Ik heb geleerd van iemand die me het begin van php leerde, is dit verkeerd?
Ik heb geleerd van iemand die me het begin van php leerde, is dit verkeerd?
Het schijnt (af en toe) tot foute/niet werkende query's te kunnen leiden.
Martijn L op 29/08/2011 22:49:57:
Variabelen buiten quotes.
Die snap ik niet graag uitgebreidere uitleg?
Die snap ik niet graag uitgebreidere uitleg?
Probeer het eens.
Martijn L op 29/08/2011 22:49:57:
Selecteer veldnamen en niet *.
Is het veiliger als je elk veld in een mysql_query apart noemt?
Is het veiliger als je elk veld in een mysql_query apart noemt?
Het geeft je inzicht in wat je aan het doen bent en voorkomt bij complexere query's dat dingen niet gaan zoals je zou willen.
Martijn L op 29/08/2011 22:49:57:
Zorg voor beveiliging van je query's.
Ik dacht dat je een query beveiligt dmv mysql_real_escape_string() zoals mij is aangeleerd door het bovengenoemde persoon
Edit:
Na even zoeken op het internet zie ik dat het alleen werkt voor het plaatsen van variabelen in de database
Ik dacht dat je een query beveiligt dmv mysql_real_escape_string() zoals mij is aangeleerd door het bovengenoemde persoon
Edit:
Na even zoeken op het internet zie ik dat het alleen werkt voor het plaatsen van variabelen in de database
Heb het idee van klok en klepel. mysql_real_escape_string() Gebruik je in een query, niet, zoals jij nu doet bij de output. En nee, ook niet alleen! bij het plaatsen van variabelen.
Martijn L op 29/08/2011 22:49:57:
Zorg voor foutafhandeling bij query's.
Hierbij bedoel je de mysql_error()?
Hierbij bedoel je de mysql_error()?
Ja, maar dan volledig/nette foutafhandeling.
En om je een concreet antwoord te geven op je vraag: denk dat het verstandiger is om eerst te zorgen dat je script goed/veilig is. En daarna nog even uitleggen wat je nou precies wilt doen met deze code, want dat is me niet duidelijk.
Gewijzigd op 03/09/2011 10:07:37 door Obelix Idefix
http://www.phphulp.nl/php/forum/topic/checkbox-formulier/79985/
Gewijzigd op 06/09/2011 22:07:02 door Martijn L