Moderator |
|
Citaat: Zal ik graag willen dat als ik op versturen klik en er is niks ingevuld of het is niet volledig ingevuld dat er dan een foutmeldingen direct eronder wordt weergegeven.
Citaat: Ik heb dus geen zin om op op een lege pagina te komen zoals nu waar staat wat er fout is. Als je hier een PHP-pagina van maakt, dan kun je de eerder ingevoerde (onvolledige/foute) inhoud terugplaatsen in het formulier, bijvoorbeeld door gebruikmaking van sessies. Let er bij het terugplaatsen in het formulier wel op dat je deze invoer ontdoet van enige speciale (HTML) betekenis, gebruik hiervoor bijvoorbeeld htmlspecialchars(). Zorg er hierbij ook voor dat je met één character set werkt en specificeer deze (zowel in je HTML document, als in de accept-charset property in je formulier alsook in enige escape-functie.
Wellicht een betere manier om te controleren of een formulier-element niet is ingevuld is de getrimde invoer vergelijken met de lege string. Ook kun je de foutmeldingen opslaan in een array. Als je de key van het error-array dezelfde waarde geeft als de naam van het formulierveld dan kun je in het formulier de foutmelding bij dit veld plaatsen. Persoonlijk vind ik niets zo irritant als een formulier dat aangeeft dat er iets fout is, maar niet precies wat (of waar).
$errors = array();
if (trim($_POST['veld']) == '') {
$errors['veld'] = 'veld is verplicht';
}
if (trim($_POST['veld']) == '') { $errors['veld'] = 'veld is verplicht'; }
Ook kun je met de PHP-functie filter_var (PHP versie 5.2.0 en later) controleren of het e-mail adres klopt qua vorm.
if (filter_var($_POST['email'], FILTER_VALIDATE_EMAIL) === false) {
$errors['email'] = 'het e-mailadres heeft niet het juiste formaat';
}
if (filter_var($_POST['email'], FILTER_VALIDATE_EMAIL) === false) { $errors['email'] = 'het e-mailadres heeft niet het juiste formaat'; }
|