10. februar 2008 - 16:27
Der er
32 kommentarer og 2 løsninger
Validering af felter
Hej Jeg har søgt her på eksperten og på php.net og andre sider, men har ikke fundet det jeg søgte efter. Jeg skal have valideret nogle felter, og det skal være i php, går udfra man skal bruge ereg. Ikke javascript, da man så kan snyde sig udenom. Jeg skal bruge følgende: Validering af felt, må KUN indeholde bogstaverne A-Z, tal og bindestreg. (Bogstaverne må både være små og store) Validering af andet felt, må KUN indeholde tal, og man må højest indtaste 100. Håber nogle kan hjælpe mig :(
Annonceindlæg tema
Forsvar & beredskab
Cybersikkerhed, realtidsdata og robuste it-systemer er blevet fundamentet for moderne forsvar.
10. februar 2008 - 16:42
#1
Sådan? $felt = $_POST['felt']; if (preg_match("/^[a-z-]+$/i", $felt) { echo "Feltet validere"; } else { echo "Feltet validere ikke" } $andetFelt = $_POST['andetFelt']; if (preg_match("/1?\d{1,2}/", $andetFelt) { echo "Feltet validere"; } else { echo "Feltet validere ikke" }
10. februar 2008 - 16:42
#2
echo "Feltet validere ikke" rettes til: echo "Feltet validere ikke";
10. februar 2008 - 16:48
#3
<ole> nielle >> der kan ikke indtastes 100 - hvilket er et krav ;o) $s = "oleBole"; $n = "52"; if (preg_match("/^[a-z]+$/i", $s)) print "String OK<br>"; if (preg_match("/^\d+$/i", $n) && $n<=100) print "Number OK<br>"; /mvh </bole>
10. februar 2008 - 16:51
#4
Der kan da godt indtastes 100 i andet Felt. Omend at jeg glemte ankrene: if (preg_match("/$1?\d{1,2}^/", $andetFelt) { echo "Feltet validere"; } else { echo "Feltet validere ikke" }
10. februar 2008 - 16:52
#5
Den første if (preg_match("/^[a-z-]+$/i", $felt) { Virker vidst ikke helt. Den giver OK til alt, undtagen hvis man kun har indtastet bogstaver, så giver den fejlmeddelse ???
10. februar 2008 - 16:54
#6
Prøver lige ole boles
10. februar 2008 - 16:55
#7
Glemte også en parentes: if (preg_match("/^[a-z-]+$/i", $felt) { til: if (preg_match("/^[a-z-]+$/i", $felt)) {
10. februar 2008 - 16:56
#8
Overså også at der gerne måtte være tal - *suk*: if (preg_match("/^[a-z0-9-]+$/i", $felt)) {
10. februar 2008 - 16:58
#9
Kunne heller ikke få oleboles til at virke. Jeg prøver lige dit niele. Jeg undskylder lige hvis jeg har formuleret mig forkert. Med det første: feltet må kun indeholde tal, bogstaverne a-z og bindestreg, så mener jeg, at det også er ok, hvis feltet kun indeholder tal, eller kun indeholder bogstaverne a-z osv.
10. februar 2008 - 16:59
#10
Du har ikke formuleret dig forkert - det er bare os (i hvert fald mig) som sjusker...
10. februar 2008 - 17:00
#11
Jeg fik første felt til at virke med din sidste post niele. Der skulle bare lige et ! ind i starten (: Så er det kun næste felt
10. februar 2008 - 17:00
#12
nielle >> Din anden RegExp er stadig forkert :)
10. februar 2008 - 17:02
#13
- men denne er stadig korrekt: if (preg_match("/^\d+$/i", $n) && $n<=100) print "Number OK"; ;o)
10. februar 2008 - 17:02
#14
Det forstår jeg ikke? Den kan sagtens matche 100.
10. februar 2008 - 17:03
#15
Ja, den vil - efter jeg har rettet alle syntaks fejlene - også acceptere tal op til 199 ;o) $andetFelt = "129"; if ( preg_match("/^1?\d{1,2}$/", $andetFelt) ) { echo "Feltet validere"; } else { echo "Feltet validere ikke"; }
10. februar 2008 - 17:04
#16
10/02-2008 17:00:27 > Hvorfor dog det? Så gør den det modsatte af hvad den skal.
10. februar 2008 - 17:05
#17
10/02-2008 17:03:58 > Ok, så er jeg med. Troede at du påstod at den ikke matchede 100 og så stirrede jeg mig blind på den påstand. ;^)
10. februar 2008 - 17:05
#18
Niele -> Det er fordi jeg har sat det til at være omvendt hvis du forstår :P Tjekker her Fejl meddelse her Så skulle der lige et ! ind ved Tjekker her, så den ikke udskriver fejl meddelse hvis det er korrekt det man har indtastet (:
10. februar 2008 - 17:06
#19
nielle >> Du manglede en slutparantes, et semikolon - og så havde du byttet om på '^' og '$'. Det er dog denne del, der er helt gal: 1?\d{1,2}
10. februar 2008 - 17:09
#20
Ja.. jeg kunne ikke lige få 2'eren til at virke. Har denne indtil videre: if (preg_match("/$1?\d{1,2}^/", $felt)) {
10. februar 2008 - 17:12
#21
nwn> Brug oles nr. 2 i stedet. olebole> Har som sagt indset det - det var blot din din 10/02-2008 16:48:01 hvor du sagde at den ikke matchede 100 der fik mig helt galt i byen-.
10. februar 2008 - 17:12
#22
;o)
10. februar 2008 - 17:14
#23
Okay, har lige brugt hans, men den accepterer jo også tal over 100 :P ? Det må højest være 100...
10. februar 2008 - 17:15
#24
Hvordan ser din kode da ud?
10. februar 2008 - 17:16
#25
Er det denne du tænker på if (preg_match("/^\d+$/i", $n) && $n<=100) print "Number OK<br>"; ??? Jeg brugte den hvor han skriver der kan bruges helt op til 199 :P
10. februar 2008 - 17:16
#26
Denne kode: if (preg_match("/^\d+$/i", $n) && $n<=100) print "Number OK<br>"; - kan jeg ikke med bedste vilje få til at acceptere tal over 100 =)
10. februar 2008 - 17:17
#27
Den første er hans egen løsning. Dem anden sætning handler om min, og hvorfor den er diskvalificeret.
10. februar 2008 - 17:19
#28
Så virker det sgu (: Tusind tak for hjælpen begge 2. Vil i dele de 50 ?
10. februar 2008 - 17:20
#29
Selvtak. Det lyder fint :)
10. februar 2008 - 17:20
#30
OK (: Vil du smide et svar nielle ? :D
10. februar 2008 - 17:23
#32
Okay (: Og endnu en gang tak for hjælpen
10. februar 2008 - 17:33
#33
- og tak for points ;o)
11. februar 2008 - 18:45
#34
Tak for point :^)
IT-kurser om Microsoft 365, sikkerhed, personlig vækst, udvikling, digital markedsføring, grafisk design, SAP og forretningsanalyse.