04. marts 2010 - 20:24
Der er
4 kommentarer
If statement virker ikke efter hensgten
Hej alle, Jeg forsøger at lave en if-statement som kun skal køres, hvis der rent faktisk er skrevet noget i post, altså at feltet ikke er tomt. Hvis der er skrevet noget, skal den så trigger hvis ikke det er et tal samt det er på 8 tegn. Umiddelbart kan jeg ikke få det til at virke, eftersom hvis man skriver '123' så godkender den det selvom det ikke er de 8 tegn som påkrævet. if((strlen($_POST['Phone']) > 0 && strlen($_POST['Phone']) < 8) && (!ctype_digit($_POST['Phone']))) { echo "fejl"; } Er der nogle der kan se, hvad jeg gør galt?
Annonceindlæg tema
Forsvar & beredskab
Cybersikkerhed, realtidsdata og robuste it-systemer er blevet fundamentet for moderne forsvar.
04. marts 2010 - 20:49
#1
Du skal ikke bruge OG (&&) men ELLER (||) i den sidste, og så skal du have flyttet en parentes: if(strlen($_POST['Phone']) > 0 && (strlen($_POST['Phone'] < 8) || !ctype_digit($_POST['Phone']))) { echo "fejl"; }
04. marts 2010 - 21:54
#2
Tak for dit svar! Umiddelbart melder den ingen fejl hvis man skriver '1234'. Jeg ønsker at den skal melde fejl, straks man har skrevet blot ét tegn men under 8. dvs. at er feltet tomt skal den ingen fejl melde.
04. marts 2010 - 22:16
#3
Der burde den gøre. Er du sikker på, at du har kopieret det ritigt ind?
05. marts 2010 - 05:10
#4
<?php $str = "12345678"; if(!ctype_digit($str) || strlen($str) < 8) { echo"Fejl"; }else{ echo"Ok"; } ?>
Vi tilbyder markedets bedste kurser inden for webudvikling