Avatar billede matfri Nybegynder
13. januar 2010 - 22:19 Der er 12 kommentarer og
1 løsning

Kun bogstaver og tal i streng + .:-

Hej,

jeg skal have filtreret alle de strenge fra som indeholder ugyldige tegn. Strengen må kun indeholde bogstaver(incl de danske), tal, mellemrum og følgende tegn . : -

Jeg har forsøgt mig med dette, men uden held

preg_match('/^[ -_a-z0-9æøå]{1,40}$/i', $inset)

Længden er lige meget.

På forhånd tak.
Avatar billede repox Seniormester
13. januar 2010 - 22:24 #1
Prøv med


preg_match("#^[a-z0-9\.\:\-æøå\s]{1,40}$#i", $inset);

Avatar billede matfri Nybegynder
13. januar 2010 - 22:27 #2
Det kan godt være jeg har udtrykt mig forkert, men det jeg mente var at den skal komme med en fejl, hvis strengen indeholder et ugyldigt tegn.
Avatar billede repox Seniormester
13. januar 2010 - 22:32 #3
Ja?


if( preg_match("#^[a-z0-9\.\:\-æøå\s]{1,40}$#i", $inset) === false )
  echo "Fejl i strengen";

Avatar billede matfri Nybegynder
13. januar 2010 - 23:13 #4
Den vil stadig ikke acceptere æøå
Avatar billede repox Seniormester
14. januar 2010 - 00:26 #5


if( preg_match("#^[a-z0-9\.\:\-æøåÆØÅ\s]{1,40}$#i", $inset) == 0 )
  echo "Fejl i strengen";

Avatar billede matfri Nybegynder
14. januar 2010 - 10:26 #6
Jeg forstå det simpelthen ikke! Den vil ikke acceptere æ,ø eller å. Den kommet korrekt nok med fejl ved at der et tegn f.eks #. og den siger også god for det, når strengen kun indeholder (engelske) bogstaver og/eller tal.

Jeg har følgende til at gennemsøge strengen:

$sign_chk = true;
    if(preg_match("#^[a-z0-9\.\:\-æøåÆØÅ\s]{1,40}$#i", $inset) == 0 )
    {
        $sign_chk = false;
    }
Avatar billede repox Seniormester
14. januar 2010 - 10:34 #7
Er du sikker på at din encoding er korrekt? Det virker fint hos mig... Jeg ved ikke hvor du får data fra, så det er bare et gæt...
Avatar billede matfri Nybegynder
14. januar 2010 - 10:41 #8
Jeg får strengens input fra $_POST, dvs et felt. Alle felternes værdier er sat ind i et array, som så løbes igennem for undersøgelse af ugyldige tegn. Dette burde da ikke skabe problemer.
Avatar billede repox Seniormester
14. januar 2010 - 10:46 #9
Det kommer an på din encoding.... :)

Har du et link?
Avatar billede matfri Nybegynder
14. januar 2010 - 10:52 #10
Er ikke meget for at offentliggøre linket.:(

Er det i headeren du mener jeg skal sætte min encode, eller i php-koden? Kom gerne med et eksemempel.
Avatar billede repox Seniormester
14. januar 2010 - 11:00 #11
Der kan være uoverenstemmelser mellem det du sender med POST og det som serveren modtager.
Hvis din server som udgangspunkt forventer at modtage/servere data som ISO-8859-1, men du faktisk sender det igennem som UTF-8, så vil det fejle.
Avatar billede matfri Nybegynder
14. januar 2010 - 11:13 #12
Nu har jeg fået det til at virke. Hvis jeg undersøger direkte på $_POST om den indeholder ugyldige tegn, så virker det. Undersøgte jo før på et array, den kunne den åbenbart ikke lide:S

Repox vil du ikke lige svare?

Tak for hjælpen:)
Avatar billede repox Seniormester
14. januar 2010 - 11:16 #13
Det fik du her.
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