Hi,
ik probeer als oefening een formulier te maken, waar iemand dus enkele gegevens invult. Nu heb ik dus enkele variabelen:

$_POST['achternaam']
$_POST['voornaam']
$_POST['email']

En nog een aantal.
Nu wilde ik als iemand een veld leeglaat, hem doorsturen naar een pagina die vriendelijk verzoekt om het nogmaals in te vullen.
Dit lukte ook wel:

<?php if ($_POST['voornaam'] == NULL) {
header('Location: Misguide.xhtml');
}
?>
Het punt is alleen dat als je een grote site krijgt met allerlei variabelen, je dit telkens moet copy pasten voor elk veld.
Is er een manier om de code zo te schrijven dat:

<?php if ($_POST['*elke variabele die gepost word*'] == NULL) {
header('Location: Misguide.xhtml');
}
?>
Dus dat elke variabele die ontbreekt genoeg is om deze header in gang te krijgen?
gebruik empty ipv isset

dus:
<?php
if (
empty($_POST['voornaam']) ||
empty($_POST['achternaam']) ||
empty($_POST['email'])){

header("Location: Misguide.xhtml");
}
?>
probeer dit eens:

<?
if (empty($_POST['voornaam'])) {
header("Location: Misguide.xhtml");
}
?>

aangezien ik dit net las:

Just a note on the previous users comments. isset() should only be used for testing if the variable exists and not if the variable containes an empty "" string. empty() is designed for that.

Also, as noted previosuly !empty() is the best method for testing for set non-empty variables.

meer info over empty()
http://de3.php.net/manual/nl/function.empty.php

EDIT: net iets te langzaam :P
klopt helemaal ^^
Ah thank you, het werkt helemaal :D

|| kende ik overigens nog niet, die moet ik eens opzoeken. Zo te zien is het een opsomming.
&& = AND
|| = OR

Reageren