Gilbert Skrevet 19. desember 2003 Del Skrevet 19. desember 2003 nå har tiden kommet for å passe på at de som registrerer seg ikke bruker skumle tegn i brukernavn. ønsker kun at bokstaver a-å, A-Å og 0-9 skal være lovlig. Må vel bli en if setning, men hvordan? Lenke til kommentar
chma Skrevet 19. desember 2003 Del Skrevet 19. desember 2003 Javascript kan vel og brukes til dette formålet. Lenke til kommentar
Gilbert Skrevet 19. desember 2003 Forfatter Del Skrevet 19. desember 2003 javascript er vel og bra, men har altså lyst til å bruke php til dette da... Lenke til kommentar
FuLu Skrevet 19. desember 2003 Del Skrevet 19. desember 2003 preg_match Kan ikke helt syntax utenatt.. men hvis du sjekker f.eks if(preg_match("|[a-zæøå]+|i", $navn) == 1) eller noe ta en titt i manualen på php.net. Lenke til kommentar
Gilbert Skrevet 19. desember 2003 Forfatter Del Skrevet 19. desember 2003 hm.. finner ikke noe i manualen som forklarer dette... Lenke til kommentar
magikern Skrevet 19. desember 2003 Del Skrevet 19. desember 2003 her er en liten function jeg mekka til et mailskjema jeg bruker... kan lett skrives om til det du trenger... function valid_mail($mail) { if(eregi("^[a-z0-9\._-]+@+[a-z0-9\._-]+\.+[a-z]{2,4}$", $mail)) return true; else return false; } Lenke til kommentar
Edorph Skrevet 19. desember 2003 Del Skrevet 19. desember 2003 (endret) str_replace() kan jo også brukes til sånt: $var = str_replace("Skummelt!","Mindre skummelt.",$var); Dette bytter ut "Skummelt!" med "Mindre skummelt." i variablen $var. Edit, når jeg tenker etter var det vel ikke akkurat dette du spurte om, men.. Hør på magikern du. Endret 19. desember 2003 av Edorph Lenke til kommentar
Gilbert Skrevet 19. desember 2003 Forfatter Del Skrevet 19. desember 2003 magiker'n tryllet frem en løsning for meg - men takk alikevel Edorph Lenke til kommentar
Gilbert Skrevet 19. desember 2003 Forfatter Del Skrevet 19. desember 2003 magiker'n : kan du kort fortelle hva de forskjellige leddene betyr? dessuten aksepterer vel ikke dette æøå og ÆØÅ ? Lenke til kommentar
FuLu Skrevet 19. desember 2003 Del Skrevet 19. desember 2003 Jeg har ikke alltid fortsått regular expression, litt men ikke mye , egentlig hater jeg det. Men fikk laget en litt klønete versjon som bare sjekker om en string inneholder a-z æøå 0-9 og mellomrom. Grunnen til at det endte opp i en funksjon, var fordi eregi returnerte true bare string inneholdt riktig tegn, selv om det var tegn i den som ikke skulle være der. Derfor sjekker jeg hver eneste tegn og returnerer false med engang den finner et tegn den ikke liker. function validate($subject) { for($i = 0; $i < strlen($subject); $i++) { if(eregi("[^0-9a-zæøå ]", $subject[$i])) { return false; } } return true; } Lenke til kommentar
Torbjørn Skrevet 19. desember 2003 Del Skrevet 19. desember 2003 bare så det er sagt - javascript er ikke like bra. javascript skal aldri være mer enn enn tilleggs sjekk. Slikt *skal* sjekkes på server, kan ikke stole på at klienten gjør de sjekkene han blir bedt om å gjøre. Lenke til kommentar
FuLu Skrevet 20. desember 2003 Del Skrevet 20. desember 2003 Enig med Torbjørn, javascript validering er en kjekk sak, men man må alltid sjekke på serversiden. Fordelen med at man gjør det i javascript i tillegg, er at man kan unngå å requeste siden på nytt. På den måten sparer man bitte litte granne server usage Men egentlig, så har jeg aldri brukt validering i javascript, siden jeg alt gjør det i PHP. Lenke til kommentar
Sugx Skrevet 20. desember 2003 Del Skrevet 20. desember 2003 Å sjekke med bare javascript er en sikkerhetsrisk også, da man lett kan unngå denne sjekken med å lage sitt eget script og sette action til, http://www.sidendin.com/dittscript.php. Lenke til kommentar
???????? Skrevet 20. desember 2003 Del Skrevet 20. desember 2003 preg_match Kan ikke helt syntax utenatt.. men hvis du sjekker f.eks if(preg_match("|[a-zæøå]+|i", $navn) == 1) eller noe ta en titt i manualen på php.net. /^[0-9a-å]+$/i Lenke til kommentar
???????? Skrevet 20. desember 2003 Del Skrevet 20. desember 2003 (endret) Det viktigste er at du sikrer data før det går inn i databasen. Ta en kikk på mysql_escape_string() NB: ikke bruk javascript til å validere! Da kan en bruker bare lage sitt eget skjema! Endret 20. desember 2003 av ???????? Lenke til kommentar
FuLu Skrevet 20. desember 2003 Del Skrevet 20. desember 2003 /^[0-9a-å]+$/i Arg, takker ???????? Jeg hadde glemt å bruke ^ og $ Men din [0-9a-å] fungerte ikke. Måtte ha det slik: (støtter mellomrom) $subject = "123abcæøå "; echo (eregi("^[0-9a-zæøå ]+$", $subject) ? "true" : "false"); Nå fungerte det som forventet, trenger ikke funksjonen validate som jeg lagde noen poster tilbake engang Lenke til kommentar
???????? Skrevet 20. desember 2003 Del Skrevet 20. desember 2003 Arg, takker ???????? Jeg hadde glemt å bruke ^ og $ Men din [0-9a-å] fungerte ikke. Måtte ha det slik: (støtter mellomrom) Hehe... leste ikke hovedinnlegget grundig nok a-å gjør at tegn som | blir godtatt, men på tegnene 123abcæøå skal det fungere. Skrev det uten å teste det. Testet det nå, og det fungerer her - rett meg gjerne hvis jeg tar feil! Lenke til kommentar
FuLu Skrevet 20. desember 2003 Del Skrevet 20. desember 2003 (endret) Dette eksemplet her gir meg false: $subject = "1234567890abcdefghijklmnopqrstuvwxyzæøå1234567890ABCDEFGHIJKLMNOPQRSTUVWXYZÆØÅ"; echo (eregi("^[0-9a-å ]+$", $subject) ? "true" : "false"); Så det går ikke bruke a-å, men a-zæøå funker Endret 20. desember 2003 av FuLu Lenke til kommentar
Torbjørn Skrevet 20. desember 2003 Del Skrevet 20. desember 2003 php vet ikke at åæø er små bokstaver for ÅÆØ Lenke til kommentar
???????? Skrevet 20. desember 2003 Del Skrevet 20. desember 2003 (endret) a-å skal fungere... men siden å kommer etter mange andre teng vil den bare ta med flere tegn som tillatt! Det er jo deg som er strukturen! Men jeg måtte jo teste for sikkerhetsskyld da. echo (eregi("^[0-9a-å]+$", "1234567890abcdefghijklmnopqrstuvwxyzæøå1234567890ABCDEFGHIJKLMNOPQRSTUVWXYZÆØÅ") ? "true" : "false")."<br>"; Denne gir resultatet true a-å betyr alle tegn mellom a og å! Jeg motsier ikke at [a-zæøå] er bedre for å utelate andre tegn, men den skal fungere! Hvordan er det mulig at du får false? Hvilken versjon av PHP kjører du? Hvilket program bruker du som server? Hvilket operativsystem kjører du? Er det noen andre som også kan teste det? Det er jo veldig merkelig dersom det ikke skulle fungere. Dette må vi finne ut av! Endret 20. desember 2003 av ???????? Lenke til kommentar
Anbefalte innlegg
Opprett en konto eller logg inn for å kommentere
Du må være et medlem for å kunne skrive en kommentar
Opprett konto
Det er enkelt å melde seg inn for å starte en ny konto!
Start en kontoLogg inn
Har du allerede en konto? Logg inn her.
Logg inn nå