Ved at bruge en RegExp kan du gøre næsten det samme clientside først og så kontrollere det bagefter server-side, men der er dog en del syntaktiske forskelle, som jeg ikke kan hjælpe dig med ...
En clientside-validering kan f.eks. se sådan ud:
<script type="text/javascript"> function valider(f){ if(!f.brugernavn.value.match(/^\d{4,18}$/)){ alert("Brugernavnet skal være på mellem 4 og 18 cifre"); f.brugernavn.focus(); return false; } if(!f.pass.value.match(/^\d{8,24}$/)){ alert("Kodeordet skal være på mellem 8 og 24 cifre"); f.brugernavn.focus(); return false; } return true; } </script>
Jeg har placeret spoergsmaalet i PHP da jeg gerne vil teste i PHP, saa Javascript hjaelper mig ikke.
cifre er alt der kan smides i inputet (tal, special tagn, bogstaver), men jeg tester dog for specialtegn, saa kun tal og bogstaver er tilladt, men alt skal taelles med.
Derudover kender jeg jo ikke sammenhængen, men der er god fornuft i først at lave en validering via javascript, som 'roenving' foreslår, og så også lave en validering på server siden. En af fordelene ved dette vil jo være en lavere belastning af serveren, da den i normale tilfælde kun vil modtage korrekt formaterede informationer, og derved ikke skal bruge tid på at sende fejlmeddelelser. Men som sagt kender jeg ikke sammenhængen :)
Ja, det bliver jo bare en kombination af det ovenstående, f.eks. :
$pwd="jhvsshvweu98"; $errmsg=""; if(strlen($pwd)<8) { $errmsg="Password er for kort !"; } if(strlen($pwd)>24 && $errmsg="") { $errmsg="Password er for langt !"; } if(!preg_match("/^[a-z0-9]+$/i", $pwd)) { $errmsg="Password indeholder ugyldigt tegn !"; } if($errmsg!="") { echo "Password er ugyldigt. Problemet er : ".$errmsg; } else { echo "Password er iorden !"; }
Og med hensyn til at 'Javascript er ikke aktivt i alle browsere' så er det naturligvis korrekt, men jeg vil dog vove pelsen og påstå at det er aktivt i langt størstedelen, men det bestemmer du selvfølgelig helt selv hvordan du vil gøre, det er bare også værd at bemærke at det er meget hurtigere for dine brugere hvis du forsøger at rydde op i deres input's før du sender....det lyder måske utroligt :), men det ER ikke alle brugere der fløjter afsted på en highspeed forbindelse, jeg kender stadig mange modem brugere, og de syntes det er lidt nedtur at skulle vente på et svar fra serveren hver gang de laver en tastefejl i en form :).....hmmm skal vist læse lidt op på brugen af punktum :)
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.