Ik had een vraagje. Ik heb een formulier met 3 invulvelden. Minstens 1 van de invulvelden is verplicht om in te vullen, de rest niet. De invulvelden zijn ervoor om e-mailadressen in toe voeren. Hierdoor gebruik ik FILTER_VALIDATE_EMAIL om er zeker van de te zijn dat de ingevulde gegevens wel degelijk e-mailadressen zijn.
Het probleem is dus dat als bijv. 1 van de 3 of 2 van de 3 velden alleen zijn ingevuld, de FILTER_VALIDATE_FUNCTION de lege velden als een invalid e-mailadressen ziet. Hoe zorg ik ervoor dat de FILTER_VALIDATE_EMAIL functie lege velden negeert?
Hier is mijn code:
<?php
// includes
include ("config.php");
// input verification
$inv1 = strip_tags($_POST['inv1']);
$inv2 = strip_tags($_POST['inv2']);
$inv3 = strip_tags($_POST['inv3']);
$doubleCheck = mysql_query("SELECT email FROM beta_users WHERE email = '". $inv1 ."' OR email = '". $inv2 ."' OR email = '". $inv3 ."'");
if (empty($_POST['inv1']) && empty($_POST['inv2']) && empty($_POST['inv3'])) {
echo 'Fill in at least one email adress to invite';
//header('Location: http://www.google.com');
}
// check if the provided email adress is a real and valid email adress
elseif (!filter_var($inv1, FILTER_VALIDATE_EMAIL)) {
echo 'You have provided an invalid email adress';
}
elseif (!filter_var($inv2, FILTER_VALIDATE_EMAIL)) {
echo 'You have provided an invalid email adress';
}
elseif (!filter_var($inv3, FILTER_VALIDATE_EMAIL)) {
echo 'You have provided an invalid email adress';
}
// check if the invited user is already registered
elseif (mysql_num_rows($doubleCheck) > 0) {
echo 'One or more of the email adresses you have provided is/are already registered';
//header('Location: http://www.google.com');
}
?>
Mvg,
Piet