10. februar 2010 - 22:26Der er
4 kommentarer og 2 løsninger
Chek form for tal / valider (tlf)numre
Jeg er temlig ny i php så bær venligst over med mig hvis mine spørgsmål virker lidt "dumme"
Jeg har lavet en form hvor jeg gerne vil checke om de intastede værdier er ok
for postnumer er jeg nået frem til følgende
if (strlen($postno) != "") { if (is_numeric($postno)) { if (strlen($postno) != 4) { $errorsourname = "inputerror"; $errormassage .= $sol."postnummer skal være 4 cifret.".$eol; $error = true; } } else { $errormassage .= $sol."postnummer kan kun være tal.".$eol; $error = true; } }
Hvis der er noget indtaste skal det være tal, hvis der tal skal der være 4 af dem (kommentare modtages gerne)
Nu vil jeg så gerne checke telefonnummer feltet og det volder mig problemer for et telefonnummer kan jo se ud på mange måder 12345678 12 34 56 78 1234 5678 +45 1234 56 78 osv osv
Hvordan chekker jeg at feltet indholder minst 8 cifre og ikke indholder andet en tal og mellemrum, og aceptere landekode +
(og ommuligt at det endelige resultat skrives som 12 34 56 78 (eller +45 12 34 56 78 hvis der er landekode)
Prøv at se nærmere på funktionen preg_match, som helt klart kan anbefales til at validere brugerinput i forms. Med denne angiver du hvilke tegn og længden af dem som du accepterer. Funktionen er lidt pebret i starten, men der findes mange gode tutorials, og dit telefonnummereksempel vil være en god introduktion til emnet. Du kunne fx sørge for at inputtet som valideres er af typen 12345678 eller +4512345678, altså uden mellemrum, brug fx funktionen str_replace.
if (strlen($phone) != "" && !preg_match("/^\+*([\d\s]+)$/", $phone)) { $errorphone = "inputerror"; $errormassage .= $sol."Telefon nummer kan kun bestå af tal<br />(evnt + for landekode)".$eol; $error = true; }
chekker at fletet kun består af tal og mellemrum og evnt + kun i starten :-)
Jeg er ikke sikker på jeg helt forstå den du har lavet... men kan da se den tæller længden på indlæget Leged med det og kom frem til følgende
$phonecheck2 = preg_replace("/[\D]/","",$phone); if (strlen($phonecheck2) < 8) { $errorphone = "inputerror"; $errormassage .= $sol."Telefon nummer skal være minst 8 cifret.".$eol; $error = true; }
Tilladte BB-code-tags: [b]fed[/b] [i]kursiv[/i] [u]understreget[/u] Web- og emailadresser omdannes automatisk til links. Der sættes "nofollow" på alle links.