Een if else statement met html *Opgelost*
Ik ben met een vakopleiding webdesigner bezig en heb een opdracht waar ik een if else statement moet maken na een form. Echter lukt mij dit niet en weet ik niet precies wat ik fout doe.
Op de index.html file heb ik de volgende code staan:
Code (php)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
<!doctype html>
<html>
<body>
<form action="bestellen.php" method="post">
Naam: <input type="text" name="naam"><br>
Leeftijd: <input type="text" name="leeftijd"><br>
Naam van het spel: <input type="text" name="spel"><br>
Aantal: <input type="text" name="aantal"><br>
Prijs per stuk: <input type="text" name="prijs"><br>
Leeftijdscategorie: <select name="leeftijdscategorie">
<option value="Alle leeftijden">Alle leeftijden</option>
<option value="+12 jaar">+12 jaar</option>
<option value="+14 jaar">+14 jaar</option>
<option value="+18 jaar">+18 jaar</option>
</select>
<input type="submit">
</form>
</body>
</html>
<html>
<body>
<form action="bestellen.php" method="post">
Naam: <input type="text" name="naam"><br>
Leeftijd: <input type="text" name="leeftijd"><br>
Naam van het spel: <input type="text" name="spel"><br>
Aantal: <input type="text" name="aantal"><br>
Prijs per stuk: <input type="text" name="prijs"><br>
Leeftijdscategorie: <select name="leeftijdscategorie">
<option value="Alle leeftijden">Alle leeftijden</option>
<option value="+12 jaar">+12 jaar</option>
<option value="+14 jaar">+14 jaar</option>
<option value="+18 jaar">+18 jaar</option>
</select>
<input type="submit">
</form>
</body>
</html>
Na op submit geklikt te hebben kom je dus op bestellen.php en daar is uiteindelijk de bedoeling dat er een if else statement komt dat bepaald of je het spel mag kopen. Die voorwaarde moet ik nog veranderen daarin maar voor nu wou ik eerst even een if else statement werkende maken.
Code (php)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
2
3
4
5
6
7
8
9
10
11
12
13
14
15
<!doctype html>
<html>
<body>
<?php
if ($leeftijd == 5)
Dankuwel [code]<?php echo $_POST["naam"]; ?> voor uw bestelling!<br>
We hebben uw bestelling van <?php echo $_POST["aantal"]; ?> <?php echo $_POST["spel"]; ?> voor <?php echo $_POST["leeftijdscategorie"]; ?> ontvangen!<br>
Uw leeftijd: <?php echo $_POST["leeftijd"]; ?><br>
Prijs per stuk: <?php echo $_POST["prijs"]; ?><br>
Totaal: <?php echo $_POST["prijs"]*$_POST["aantal"]; ?><br>
else
De statement is incorrect.
?>
</body>
</html>
<html>
<body>
<?php
if ($leeftijd == 5)
Dankuwel [code]<?php echo $_POST["naam"]; ?> voor uw bestelling!<br>
We hebben uw bestelling van <?php echo $_POST["aantal"]; ?> <?php echo $_POST["spel"]; ?> voor <?php echo $_POST["leeftijdscategorie"]; ?> ontvangen!<br>
Uw leeftijd: <?php echo $_POST["leeftijd"]; ?><br>
Prijs per stuk: <?php echo $_POST["prijs"]; ?><br>
Totaal: <?php echo $_POST["prijs"]*$_POST["aantal"]; ?><br>
else
De statement is incorrect.
?>
</body>
</html>
Dit is de foutmelding die ik krijg na submit geklikt te hebben:
Quote:
Parse error: syntax error, unexpected '?' in C:\xampp\htdocs\bestellen.php on line 6
Zou iemand mij hiermee kunnen helpen of de juiste richting in wijzen?
Alvast bedankt!
Kevin
Gewijzigd op 05/06/2017 15:30:21 door Kevin Bruin
Je tekst hoort in een echo, of liever buiten je PHP-blok.
Hoe zou ik dit buiten het PHP blok kunnen zetten? En daarnaast als ik het in echo de tekst zet pakt de code dan nog wel de delen uit het form die ik erin verwijs?
Gewijzigd op 05/06/2017 14:40:15 door Kevin Bruin
Na je if een ?> gebruiken. Zo eindig je een PHP-blok.
Code (php)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
2
3
4
5
6
7
8
9
10
11
12
13
14
15
<!doctype html>
<html>
<body>
<?php
if ($leeftijd == 5)?>
Dankuwel <?php echo $_POST["naam"]; ?> voor uw bestelling!<br>
We hebben uw bestelling van <?php echo $_POST["aantal"]; ?> <?php echo $_POST["spel"]; ?> voor <?php echo $_POST["leeftijdscategorie"]; ?> ontvangen!<br>
Uw leeftijd: <?php echo $_POST["leeftijd"]; ?><br>
Prijs per stuk: <?php echo $_POST["prijs"]; ?><br>
Totaal: <?php echo $_POST["prijs"]*$_POST["aantal"]; ?><br>
<?php
else?>
De statement is incorrect.
</body>
</html>
<html>
<body>
<?php
if ($leeftijd == 5)?>
Dankuwel <?php echo $_POST["naam"]; ?> voor uw bestelling!<br>
We hebben uw bestelling van <?php echo $_POST["aantal"]; ?> <?php echo $_POST["spel"]; ?> voor <?php echo $_POST["leeftijdscategorie"]; ?> ontvangen!<br>
Uw leeftijd: <?php echo $_POST["leeftijd"]; ?><br>
Prijs per stuk: <?php echo $_POST["prijs"]; ?><br>
Totaal: <?php echo $_POST["prijs"]*$_POST["aantal"]; ?><br>
<?php
else?>
De statement is incorrect.
</body>
</html>
Parse error: syntax error, unexpected 'else' (T_ELSE) in C:\xampp\htdocs\bestellen.php on line 12
Je sluit het if-statement niet af met een "endif;".
Gewijzigd op 05/06/2017 14:59:59 door - Ariën -
if()
{ ...
}
else
{ ...
}
Code (php)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
<!doctype html>
<html>
<body>
<?php
if ($leeftijd == 5)?>
{
Dankuwel <?php echo $_POST["naam"]; ?> voor uw bestelling!<br>
We hebben uw bestelling van <?php echo $_POST["aantal"]; ?> <?php echo $_POST["spel"]; ?> voor <?php echo $_POST["leeftijdscategorie"]; ?> ontvangen!<br>
Uw leeftijd: <?php echo $_POST["leeftijd"]; ?><br>
Prijs per stuk: <?php echo $_POST["prijs"]; ?><br>
Totaal: <?php echo $_POST["prijs"]*$_POST["aantal"]; ?><br>
}
<?php
else?>
{
De statement is incorrect.
}
</body>
</html>
<html>
<body>
<?php
if ($leeftijd == 5)?>
{
Dankuwel <?php echo $_POST["naam"]; ?> voor uw bestelling!<br>
We hebben uw bestelling van <?php echo $_POST["aantal"]; ?> <?php echo $_POST["spel"]; ?> voor <?php echo $_POST["leeftijdscategorie"]; ?> ontvangen!<br>
Uw leeftijd: <?php echo $_POST["leeftijd"]; ?><br>
Prijs per stuk: <?php echo $_POST["prijs"]; ?><br>
Totaal: <?php echo $_POST["prijs"]*$_POST["aantal"]; ?><br>
}
<?php
else?>
{
De statement is incorrect.
}
</body>
</html>
Ook als ik else helemaal weghaal geeft hij aan: Notice: Undefined variable: leeftijd in C:\xampp\htdocs\bestellen.php on line 5
Maar laat wel de rest van de code zien dus dat is al een stap verder maar wou het meteen ook even testen.
Sorry voor mijn velen vragen, ben nog maar net begonnen met php ben echter wel erg blij met de velen reacties ^^
En waar defineer je $leeftijd? Waar vul je die in?
Code (php)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
<!doctype html>
<html>
<body>
<form action="bestellen.php" method="post">
Naam: <input type="text" name="naam"><br>
Leeftijd: <input type="text" name="leeftijd"><br>
Naam van het spel: <input type="text" name="spel"><br>
Aantal: <input type="text" name="aantal"><br>
Prijs per stuk: <input type="text" name="prijs"><br>
Leeftijdscategorie: <select name="leeftijdscategorie">
<option value="Alle leeftijden">Alle leeftijden</option>
<option value="+12 jaar">+12 jaar</option>
<option value="+14 jaar">+14 jaar</option>
<option value="+18 jaar">+18 jaar</option>
</select>
<input type="submit">
</form>
</body>
</html>
<html>
<body>
<form action="bestellen.php" method="post">
Naam: <input type="text" name="naam"><br>
Leeftijd: <input type="text" name="leeftijd"><br>
Naam van het spel: <input type="text" name="spel"><br>
Aantal: <input type="text" name="aantal"><br>
Prijs per stuk: <input type="text" name="prijs"><br>
Leeftijdscategorie: <select name="leeftijdscategorie">
<option value="Alle leeftijden">Alle leeftijden</option>
<option value="+12 jaar">+12 jaar</option>
<option value="+14 jaar">+14 jaar</option>
<option value="+18 jaar">+18 jaar</option>
</select>
<input type="submit">
</form>
</body>
</html>
...
...
Toevoeging op 05/06/2017 15:26:02:
Maar dan komt ie binnen als $_POST['leeftijd'].
...
Toevoeging op 05/06/2017 15:26:02:
Kevin Bruin op 05/06/2017 15:21:57:
Ik heb $leeftijd bij index.html in de form gedefineerd als ik het goed heb.
Maar dan komt ie binnen als $_POST['leeftijd'].
Oke dus echt ieder gedeelte moet apart dus aangegeven worden als php. Dat werkt inderdaad, alleen het $leeftijd gedeelte geeft hij nog een foutmelding bij.
- SanThe - op 05/06/2017 15:24:32:
Maar dan komt ie binnen als $_POST['leeftijd'].
Kevin Bruin op 05/06/2017 15:21:57:
Ik heb $leeftijd bij index.html in de form gedefineerd als ik het goed heb.
Maar dan komt ie binnen als $_POST['leeftijd'].
Code (php)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
<!doctype html>
<html>
<body>
<?php
if ($_POST['leeftijd'] == 5)
{?>
Dankuwel <?php echo $_POST["naam"]; ?> voor uw bestelling!<br>
We hebben uw bestelling van <?php echo $_POST["aantal"]; ?> <?php echo $_POST["spel"]; ?> voor <?php echo $_POST["leeftijdscategorie"]; ?> ontvangen!<br>
Uw leeftijd: <?php echo $_POST["leeftijd"]; ?><br>
Prijs per stuk: <?php echo $_POST["prijs"]; ?><br>
Totaal: <?php echo $_POST["prijs"]*$_POST["aantal"]; ?><br>
<?php
}
else
{?>
De statement is incorrect.
<?php
}?>
</body>
</html>
<html>
<body>
<?php
if ($_POST['leeftijd'] == 5)
{?>
Dankuwel <?php echo $_POST["naam"]; ?> voor uw bestelling!<br>
We hebben uw bestelling van <?php echo $_POST["aantal"]; ?> <?php echo $_POST["spel"]; ?> voor <?php echo $_POST["leeftijdscategorie"]; ?> ontvangen!<br>
Uw leeftijd: <?php echo $_POST["leeftijd"]; ?><br>
Prijs per stuk: <?php echo $_POST["prijs"]; ?><br>
Totaal: <?php echo $_POST["prijs"]*$_POST["aantal"]; ?><br>
<?php
}
else
{?>
De statement is incorrect.
<?php
}?>
</body>
</html>
Heel erg bedankt allemaal!
Ik zie nu ook inderdaad dat $leeftijd alleen werkt als ik het in het zelfde bestand eerst defineer, wist niet dat je $_POST ook in de if statement kon gebruiken ^^
Kijk eens naar htmlentities().
Vul bij naam van het spel maar eens dit in: <script>alert('hoi');</script>
Gewijzigd op 05/06/2017 15:43:39 door - SanThe -