POST variable incorrect
ik ben bezig met een spel from scratch. maar ik ben op een probleem gestuit met een loterij script: als ik 1 lot wil kopen koop ik bijvoorbeeld 800 loten. hopelijk kan iemand mij helpen,
inhoud variablen:
$user->loten: aantal loten opgehaald uit de database van de gebruiker,
$user->contantq: het geld dat de gebruiker heeft, de q is omdat de andere inhoud heeft die de money_format functie gebruikt,
$user->usr: de gebruikersnaam van de ingelogde gebruiker,
als je nog iets moet weten vraag het gewoon
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
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
<?php
if(!isset($_POST['tickets'])) {
}else{
$toek = $_POST['tickets'] += $user->loten;
if ($user->loten >= 1000) {
$errorlot = "Je kunt geen loten meer kopen want je hebt er al:" . $user->loten .".";
}else{
if ($toek >= 1000) {
$errorlot = "Je kunt niet meer zoveel loten kopen, want je hebt al:" . $user->loten .", En je mag er maar 1000.";
}else{
if($_POST['tickets'] == ''){
$errorlot = "Je moet een aantal loten invullen!";
}else{
$kosten = $_POST['tickets'] * '1000';
if($kosten > $user->contantq){
$errorlot = "Je hebt niet genoeg geld!";
}else{
mysql_query("UPDATE `users` SET `loten`=`loten`+'".$_POST['tickets']."' WHERE `usr`='" . $user->usr . "'");
mysql_query("UPDATE `loterij` SET `verkocht`=`verkocht`+'".$_POST['tickets']."'");
}}}}}
?>
<h1 id="pagename">Welkom In Het Casino</h1>
<h2 align="center">Loterij</h2>
<p align="center" id="gold">Je kunt hier de tickets voor de loterij kopen. Bij de loterij kun je veel geld winnen. Het bedrag word hoger als er meer mensen inschrijven!</p>
<?php
$query = mysql_query("SELECT * FROM `loterij`");
$fetch = mysql_fetch_object($query);
?>
<?php
if(isset($errorlot)){
echo($errorlot);
}
echo $_POST['tickets'];
?>
<p align="center" id="gold">Er zijn:<?php echo ($fetch->verkocht); ?> Tickets verkocht</p>
<p align="center" id="gold">Je hebt:<?php echo ($user->loten); ?> Tickets gekocht</p>
<p align="center" id="gold">Ieder ticket kost: € 1.000,00</p>
<center>
<form action="#" method="post">
<label for="tickets"><p id="gold">Aantal Tickets:</p></label><input type="text" name="tickets" />
<input type="submit" value="Koop" />
</form>
<table>
<tr><td><p align="center" id="gold">Prijs</p></td><td><p align="center" id="gold">Persoon</p></td></tr>
<tr><td><p align="center" id="gold"><?php echo ($fetch->prijs1v); ?></p></td><td><p align="center" id="gold"><?php echo ($fetch->
prijs1n); ?></p></td></tr>
<tr><td><p align="center" id="gold"><?php echo ($fetch->prijs2v); ?></p></td><td><p align="center" id="gold"><?php echo ($fetch->
prijs2n); ?></p></td></tr>
<tr><td><p align="center" id="gold"><?php echo ($fetch->prijs3v); ?></p></td><td><p align="center" id="gold"><?php echo ($fetch->
prijs3n); ?></p></td></tr>
</table>
</center>
if(!isset($_POST['tickets'])) {
}else{
$toek = $_POST['tickets'] += $user->loten;
if ($user->loten >= 1000) {
$errorlot = "Je kunt geen loten meer kopen want je hebt er al:" . $user->loten .".";
}else{
if ($toek >= 1000) {
$errorlot = "Je kunt niet meer zoveel loten kopen, want je hebt al:" . $user->loten .", En je mag er maar 1000.";
}else{
if($_POST['tickets'] == ''){
$errorlot = "Je moet een aantal loten invullen!";
}else{
$kosten = $_POST['tickets'] * '1000';
if($kosten > $user->contantq){
$errorlot = "Je hebt niet genoeg geld!";
}else{
mysql_query("UPDATE `users` SET `loten`=`loten`+'".$_POST['tickets']."' WHERE `usr`='" . $user->usr . "'");
mysql_query("UPDATE `loterij` SET `verkocht`=`verkocht`+'".$_POST['tickets']."'");
}}}}}
?>
<h1 id="pagename">Welkom In Het Casino</h1>
<h2 align="center">Loterij</h2>
<p align="center" id="gold">Je kunt hier de tickets voor de loterij kopen. Bij de loterij kun je veel geld winnen. Het bedrag word hoger als er meer mensen inschrijven!</p>
<?php
$query = mysql_query("SELECT * FROM `loterij`");
$fetch = mysql_fetch_object($query);
?>
<?php
if(isset($errorlot)){
echo($errorlot);
}
echo $_POST['tickets'];
?>
<p align="center" id="gold">Er zijn:<?php echo ($fetch->verkocht); ?> Tickets verkocht</p>
<p align="center" id="gold">Je hebt:<?php echo ($user->loten); ?> Tickets gekocht</p>
<p align="center" id="gold">Ieder ticket kost: € 1.000,00</p>
<center>
<form action="#" method="post">
<label for="tickets"><p id="gold">Aantal Tickets:</p></label><input type="text" name="tickets" />
<input type="submit" value="Koop" />
</form>
<table>
<tr><td><p align="center" id="gold">Prijs</p></td><td><p align="center" id="gold">Persoon</p></td></tr>
<tr><td><p align="center" id="gold"><?php echo ($fetch->prijs1v); ?></p></td><td><p align="center" id="gold"><?php echo ($fetch->
prijs1n); ?></p></td></tr>
<tr><td><p align="center" id="gold"><?php echo ($fetch->prijs2v); ?></p></td><td><p align="center" id="gold"><?php echo ($fetch->
prijs2n); ?></p></td></tr>
<tr><td><p align="center" id="gold"><?php echo ($fetch->prijs3v); ?></p></td><td><p align="center" id="gold"><?php echo ($fetch->
prijs3n); ?></p></td></tr>
</table>
</center>
Gewijzigd op 10/04/2012 18:09:53 door Kevin van oosterhout
Edit: Sorry, laat maar, de site deed even raar.
Gewijzigd op 10/04/2012 18:10:25 door M grootveld
niet meer, ik zag het al
$toek = $_POST['tickets'] += $user->loten;
Hierdoor krijgen $toek en $_POST['tickets'] beiden de waarde van $_POST['tickets'] + $user->loten.
Gewijzigd op 10/04/2012 19:06:25 door - SanThe -
Ik heb je script even nog wat aangepast, hopelijk werkt hij nu wel.
-Je gebruikt quotes op de verkeerde momenten.
-Verder kun je bij het oproepen van een variable beter de short tag van php gebruiken
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
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
<?.
Gr Tom.
<?php
if(!isset($_POST['tickets']))
{
//??
}
else
{
$toek = $_POST['tickets'] + $user->loten;
if ($user->loten >= 1000)
{
$errorlot = "Je kunt geen loten meer kopen want je hebt er al:" . $user->loten .".";
}
else
{
if ($toek >= 1000)
{
$errorlot = "Je kunt niet meer zoveel loten kopen, want je hebt al:" . $user->loten .", En je mag er maar 1000.";
}
else
{
if($_POST['tickets'] == '')
{
$errorlot = "Je moet een aantal loten invullen!";
}
else
{
$kosten = $_POST['tickets'] * '1000';
if($kosten > $user->contantq)
{
$errorlot = "Je hebt niet genoeg geld!";
}
else
{
mysql_query("UPDATE users SET loten = loten+" . mysql_real_escape_string($_POST['tickets']) . " WHERE usr = " . $user->usr);
mysql_query("UPDATE loterij SET verkocht = verkocht+" . mysql_real_escape_string($_POST['tickets']));
}
}
}
}
}
?>
<h1 id="pagename">Welkom In Het Casino</h1>
<h2 align="center">Loterij</h2>
<p align="center" id="gold">Je kunt hier de tickets voor de loterij kopen. Bij de loterij kun je veel geld winnen. Het bedrag word hoger als er meer mensen inschrijven!</p>
<?php
$query = mysql_query("SELECT * FROM loterij");
$fetch = mysql_fetch_object($query);
?>
<?php
if(isset($errorlot))
{
echo($errorlot);
}
echo $_POST['tickets'];
?>
<p align="center" id="gold">Er zijn:<?=$fetch->verkocht;?> Tickets verkocht</p>
<p align="center" id="gold">Je hebt:<?=$user->loten;?> Tickets gekocht</p>
<p align="center" id="gold">Ieder ticket kost: € 1.000,00</p>
<center>
<form action="#" method="post">
<label for="tickets"><p id="gold">Aantal Tickets:</p></label><input type="text" name="tickets" />
<input type="submit" value="Koop" />
</form>
<table>
<tr><td><p align="center" id="gold">Prijs</p></td><td><p align="center" id="gold">Persoon</p></td></tr>
<tr><td><p align="center" id="gold"><?=$fetch->prijs1v;?></p></td><td><p align="center" id="gold"><?=$fetch->prijs1n;?></p></td></tr>
<tr><td><p align="center" id="gold"><?=$fetch->prijs2v;?></p></td><td><p align="center" id="gold"><?=$fetch->prijs2n;?></p></td></tr>
<tr><td><p align="center" id="gold"><?=$fetch->prijs3v;?></p></td><td><p align="center" id="gold"><?=$fetch->prijs3n;?></p></td></tr>
</table>
</center>
Gr Tom.
<?php
if(!isset($_POST['tickets']))
{
//??
}
else
{
$toek = $_POST['tickets'] + $user->loten;
if ($user->loten >= 1000)
{
$errorlot = "Je kunt geen loten meer kopen want je hebt er al:" . $user->loten .".";
}
else
{
if ($toek >= 1000)
{
$errorlot = "Je kunt niet meer zoveel loten kopen, want je hebt al:" . $user->loten .", En je mag er maar 1000.";
}
else
{
if($_POST['tickets'] == '')
{
$errorlot = "Je moet een aantal loten invullen!";
}
else
{
$kosten = $_POST['tickets'] * '1000';
if($kosten > $user->contantq)
{
$errorlot = "Je hebt niet genoeg geld!";
}
else
{
mysql_query("UPDATE users SET loten = loten+" . mysql_real_escape_string($_POST['tickets']) . " WHERE usr = " . $user->usr);
mysql_query("UPDATE loterij SET verkocht = verkocht+" . mysql_real_escape_string($_POST['tickets']));
}
}
}
}
}
?>
<h1 id="pagename">Welkom In Het Casino</h1>
<h2 align="center">Loterij</h2>
<p align="center" id="gold">Je kunt hier de tickets voor de loterij kopen. Bij de loterij kun je veel geld winnen. Het bedrag word hoger als er meer mensen inschrijven!</p>
<?php
$query = mysql_query("SELECT * FROM loterij");
$fetch = mysql_fetch_object($query);
?>
<?php
if(isset($errorlot))
{
echo($errorlot);
}
echo $_POST['tickets'];
?>
<p align="center" id="gold">Er zijn:<?=$fetch->verkocht;?> Tickets verkocht</p>
<p align="center" id="gold">Je hebt:<?=$user->loten;?> Tickets gekocht</p>
<p align="center" id="gold">Ieder ticket kost: € 1.000,00</p>
<center>
<form action="#" method="post">
<label for="tickets"><p id="gold">Aantal Tickets:</p></label><input type="text" name="tickets" />
<input type="submit" value="Koop" />
</form>
<table>
<tr><td><p align="center" id="gold">Prijs</p></td><td><p align="center" id="gold">Persoon</p></td></tr>
<tr><td><p align="center" id="gold"><?=$fetch->prijs1v;?></p></td><td><p align="center" id="gold"><?=$fetch->prijs1n;?></p></td></tr>
<tr><td><p align="center" id="gold"><?=$fetch->prijs2v;?></p></td><td><p align="center" id="gold"><?=$fetch->prijs2n;?></p></td></tr>
<tr><td><p align="center" id="gold"><?=$fetch->prijs3v;?></p></td><td><p align="center" id="gold"><?=$fetch->prijs3n;?></p></td></tr>
</table>
</center>
- juiste quotes gebruiken
- foutafhandeling toepassen
- voor zover ik weet is <center> weg
- geen asterix (*) voor selecteren
- hoezo vermenigvuldig jij met een string (regel 33)
- wtf is de bedoeling van regel 1
- sinds wanneer is de shorttag beter? phphulp herkent m niet als php
- verder had santhe ook nog een opmerking, kijk daar eens naar!
@jeroen vd: centertags zijn tijdelijk voor het overzicht.
ik gebruik al een tijd geen shorttags meer.
-wtf is de bedoeling van regel 1: die weet ik niet
- juiste quotes gebruiken
- foutafhandeling toepassen
- hoezo vermenigvuldig jij met een string (regel 33): het moet 1000 keer de post zijn aangezien het de prijs is.
ben nog maar een beginner maar alles komt spelenderwijs.
het werkt nu, ik ga nu de rest bouwen. heel erg bedankt iedereen. tips zijn altijd welkom.
Gewijzigd op 10/04/2012 19:36:08 door kevin van oosterhout
http://www.phphulp.nl/php/tutorial/php-algemeen/correct-quoten/772/
- foutafhandeling toepassen
http://www.phphulp.nl/php/tutorial/overig/beginnersfouten-tegengaan/763/correcte-foutenafhandeling/2043/
- voor zover ik weet is <center> weg
- geen asterix (*) voor selecteren
http://www.phphulp.nl/php/tutorial/overig/beginnersfouten-tegengaan/763/geheugenefficint-programmeren/2044/
- hoezo vermenigvuldig jij met een string (regel 33)
je hebt quotes om 1000 heenstaan, hiermee bedoel je dat je een waarde met tekst wil vermenigvuldigen. dat is gewoonweg niet goed. ik zeg toch ook niet 6 = 3 * auto?
- wtf is de bedoeling van regel 1
weghalen dus
- sinds wanneer is de shorttag beter? phphulp herkent m niet als php
- verder had santhe ook nog een opmerking, kijk daar eens naar!
beter goed leren, dan straks slechte dingen afleren dat het werkt betekent nog niet dat het goed is.
inderdaad daar moet ik je gelijk in geven