Avatar billede nemlig Professor
13. november 2011 - 12:25 Der er 1 kommentar og
1 løsning

Datovalidering af input

Hejsa.
Jeg er ved at lave en function til at kontrollere for korrekt indtastet dato.
Dato indtastes sådan her: dd-mm-åååå

Jeg anvender checkkdate(), men det er ikke nok.


$arr=split("-",$_POST['nyStartdato']);
$dd=$arr[0]; // dag
$mm=$arr[1]; // måned
$yy=$arr[2]; // år
if (!checkdate($mm,$dd,$yy)) {

Jeg skal også sikre, at der anvendes "-" som skilletegn, så jeg kan splitte korrekt, samt at der i øvrigt kun indtastes tal.

Altså - hvordan tjekker jeg, om der er anvendt 2 x "-" og derudover kun tal. Input skal bestå af 10 tegn.
Avatar billede erikjacobsen Ekspert
13. november 2011 - 12:59 #1
Et sødt lille regulært udtryk bør gøre det (utestet):

$dato=trim($_POST['nyStartdato']);
if (preg_match('/^\d\d-\d\d-\d\d\d\d$/',$dato)) {
  // ok - test videre
} else {
  // nix, der er ugler i kartoffelmosen
}
Avatar billede nemlig Professor
13. november 2011 - 15:11 #2
Sejt - det var løsningen. Jeg har nu sammensat en function, der tjekker for korrekt input jf. #1 og der tjekkes også med checkdate.

Tak for det Erik. :)
Avatar billede Ny bruger Nybegynder

Din løsning...

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.

Loading billede Opret Preview
Kategori
Vi tilbyder markedets bedste kurser inden for webudvikling

Log ind eller opret profil

Hov!

For at kunne deltage på Computerworld Eksperten skal du være logget ind.

Det er heldigvis nemt at oprette en bruger: Det tager to minutter og du kan vælge at bruge enten e-mail, Facebook eller Google som login.

Du kan også logge ind via nedenstående tjenester