Een if else statement met html *Opgelost*

Overzicht Reageren

Sponsored by: Vacatures door Monsterboard

Kevin Bruin

Kevin Bruin

05/06/2017 14:16:55
Quote Anchor link
Hallo,

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)
PHP script in nieuw venster Selecteer het PHP script
1
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>


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)
PHP script in nieuw venster Selecteer het PHP script
1
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>


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
 
PHP hulp

PHP hulp

30/11/2024 07:51:39
 
- Ariën  -
Beheerder

- Ariën -

05/06/2017 14:34:47
Quote Anchor link
Je tekst hoort in een echo, of liever buiten je PHP-blok.
 
Kevin Bruin

Kevin Bruin

05/06/2017 14:39:53
Quote Anchor link
Bedankt voor je snelle reactie,

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
 
- Ariën  -
Beheerder

- Ariën -

05/06/2017 14:46:09
Quote Anchor link
Na je if een ?> gebruiken. Zo eindig je een PHP-blok.
 
Kevin Bruin

Kevin Bruin

05/06/2017 14:52:08
Quote Anchor link
Dat werkt wel echter krijg ik dan het else gedeelte niet werkende.

Code (php)
PHP script in nieuw venster Selecteer het PHP script
1
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>



Parse error: syntax error, unexpected 'else' (T_ELSE) in C:\xampp\htdocs\bestellen.php on line 12
 
Marthijn Buijs

Marthijn Buijs

05/06/2017 14:58:05
Quote Anchor link
Je sluit het if-statement niet af met een "endif;".
 
- Ariën  -
Beheerder

- Ariën -

05/06/2017 14:59:07
Quote Anchor link
Ik zou accolades gebruiken bij je if-else statement maar endif; kan ook.
Gewijzigd op 05/06/2017 14:59:59 door - Ariën -
 
- SanThe -

- SanThe -

05/06/2017 14:59:44
Quote Anchor link
Bij if() en else accolades gebruiken.

if()
{ ...
}
else
{ ...
}
 
Kevin Bruin

Kevin Bruin

05/06/2017 15:06:09
Quote Anchor link
Ik was inderdaad de accolades vergeten, daar moet ik nog aan wennen echter blijft hij de else niet herkennen.
Code (php)
PHP script in nieuw venster Selecteer het PHP script
1
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>


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 ^^
 
- Ariën  -
Beheerder

- Ariën -

05/06/2017 15:20:10
Quote Anchor link
Regel 12,15 hoort ook bij je PHPblok. Net als bij het afsluiten.
En waar defineer je $leeftijd? Waar vul je die in?
 
Kevin Bruin

Kevin Bruin

05/06/2017 15:21:57
Quote Anchor link
Ik heb $leeftijd bij index.html in de form gedefineerd als ik het goed heb.

Code (php)
PHP script in nieuw venster Selecteer het PHP script
1
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>
 
- SanThe -

- SanThe -

05/06/2017 15:24:32
Quote Anchor link
Code (php)
PHP script in nieuw venster Selecteer het PHP script
1
2
3
4
<?php
if()
{

?>
...
Code (php)
PHP script in nieuw venster Selecteer het PHP script
1
2
3
4
5
<?php
}
else
{
?>
...
Code (php)
PHP script in nieuw venster Selecteer het PHP script
1
2
3
<?php
}
?>


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'].
 
Kevin Bruin

Kevin Bruin

05/06/2017 15:27:48
Quote Anchor link
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 -

- SanThe -

05/06/2017 15:29:49
Quote Anchor link
- SanThe - op 05/06/2017 15:24:32:
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'].
 
Kevin Bruin

Kevin Bruin

05/06/2017 15:29:50
Quote Anchor link
Het werkt!

Code (php)
PHP script in nieuw venster Selecteer het PHP script
1
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>


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 ^^
 
- SanThe -

- SanThe -

05/06/2017 15:33:49
Quote Anchor link
Als je input van de gebruiken in een echo zet is het slim om dat te beveiligen.
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 -
 



Overzicht Reageren

 
 

Om de gebruiksvriendelijkheid van onze website en diensten te optimaliseren maken wij gebruik van cookies. Deze cookies gebruiken wij voor functionaliteiten, analytische gegevens en marketing doeleinden. U vindt meer informatie in onze privacy statement.