Gå til innhold

validiering av input


Anbefalte innlegg

Videoannonse
Annonse

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

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. :yes:

Endret av Edorph
Lenke til kommentar

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

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 :D Men egentlig, så har jeg aldri brukt validering i javascript, siden jeg alt gjør det i PHP.

Lenke til kommentar
/^[0-9a-å]+$/i

Arg, takker ???????? :D 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
Arg, takker ???????? :D 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 :blush:

 

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

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 av FuLu
Lenke til kommentar

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! :thumbup:

Endret av ????????
Lenke til kommentar

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 konto

Logg inn

Har du allerede en konto? Logg inn her.

Logg inn nå
×
×
  • Opprett ny...