Ik heb een PHP script van iemand gekregen voor een contactformulier op de website.
Omdat ik een echte beginner ben, heb ik maar weinig aangepast. Het script werkt overigens wel.
Op een paar dingen na.
Als de bezoeker zijn voor- en achternaam invult en daarna het verzend, krijgt hij de foutmelding dat de invoer niet correct is.
De reden is dat hij de namen met een hoofdletter begint. Als het in kleine letters wordt ingevoerd gaat het goed.
Hoe kan ik dat veranderen?
Blijkbaar is de controle ergens niet goed. Misschien iets met strtolower, ucfirst of mb_string().
Als je de relevante code code kan tonen kunnen we er meer over zeggen.
Ik zou liever gewoon kijken i.p.v. een reguliere expressie of er iets is ingevuld.
Want wat als iemand nou een exotische naam heeft met diakritische tekens?
<?php
if(trim($_POST['naam'])=="") {
echo "Er is geen naam ingevuld!";
}
?>
Verder zijn reguliere expressies voor e-mailadres controles ook niet handig, omdat je prima met filter_var() al prima kan controleren of een mailadres bestaat. Met jouw reguliere expressie zou [email protected] niet eens geldig zijn.
De beste oplossing is:
<?php
if (filter_var($_POST['mail'], FILTER_VALIDATE_EMAIL)) {
echo "Dit mailadres is geldig!";
} else {
echo "Dit mailadres is ongeldig!";
}
?>
Het komt er op neer dat je het niet te moeilijk voor gebruikers moet maken bij controles.
Je probleem in de huidige opzet bevindt zich op regel 45.
Door hier $string_exp = "^[a-zA-Z .'-]+$"; van te maken worden hoofdletters wel geaccepteerd. Voor e-mailadressen zou ik de route die Ariën uitstippelt inslaan.