Gå til innhold

sjekke for valid epost


Anbefalte innlegg

Videoannonse
Annonse
Off-topic: Allyse: Har du hugsa alle dei teikna der? Eller har du kopiert frå php.net?

5684494[/snapback]

 

 

Jeg husker slikt, men det er da ikke så veldig avansert oppsett det der. Kopierte bare denne ut fra et program jeg jobber med :) Det er vel en generelt normal måte å hente ut en epostadresse på, og jeg tror det finnes ala på nettet om du søker litt

Endret av allyse
Lenke til kommentar
Korleis, forklar litt då! (Er nyskjerrig)

Korleis ser det logisk ut?

5685143[/snapback]

 

 

hehe. mja preg_match("[^[a-z0-9.-_]{1,}@[a-z0-9.-_]{1,}.[a-z]{2,}$]", $email)

da ser i hvert fall jeg ^ = start på linjen, finne [tallogbokstaver] en eller flere = {1,} så en @ såfinne [tallogbokstaver] så et puntum så vilkårlig bokstaver fra a-z minimum 2 stk så $ slutt på linjen

Endret av allyse
Lenke til kommentar
Korleis, forklar litt då! (Er nyskjerrig)

Korleis ser det logisk ut?

5685143[/snapback]

 

Deler koden i mindre biter:

 

preg_match <- Funksjonen som søker etter mønter

-> mønster det skal matche [^[a-z0-9.-_]{1,}@[a-z0-9.-_]{1,}.[a-z]{2,}$]",

--> Variabel som mønster/pattern skal matches mot = $email

 

Videre:

[a-z0-9.-_]{1,} <-- sier at mønster for første del skal være bokstaver (i lowercase) mellom a til z, kan også inneholde tall mellom 0 og 9 samt punktum(.), bindestrek (-) og underscore (_). Disse skal være en eller flere av (vises i {1, }

 

Deretter skal det være en alfakrøll (@)

 

Så samme mønster som første del ([a-z0-9.-_]{1,}) etterfulgt av et punktum og siste del av mønsteret skal være bokstaver mellom a-z, minimum to stykker.

 

 

Du kan også bruke ereg,

ereg('^[a-zA-Z0-9\-\.]+@[a-zA-Z0-9]+\.[\a-zA-Z0-9\_\.]+$', $epost);

 

Denne sier ingenting om antall bokstaver som hver del må inneholde

 

Ble det litt mer forståelig nå?

Lenke til kommentar

Kan du bare forklare fort hvordan man kan bruke den i et registrerings greie ?

har noe slikt

$mail = $_POST['mail']; 

$sql = "INSERT INTO brukere mail='$mail' WHERE id='$id'" 

 

men hvordan kan jeg skjekke den mellom der ? gidder ikke sitte og prøve,om du kan forklare det kjapt =)

 

PS: dette er ikke et forsøk på og stjele tråden, men vis andre (inkludert meg selv ) skulle lure på dette, så står det jo :D

Lenke til kommentar

if (preg_match("[^[a-z0-9.-_]{1,}@[a-z0-9.-_]{1,}.[a-z]{2,}$]", $mail)){
$sql = "INSERT INTO brukere mail='$mail' WHERE id='$id'" 
}else{
echo "Epost validerer ikke";
}

 

Veit en ikke trenger braketter her, men liker å bruke dem for oversikt :p

Endret av allyse
Lenke til kommentar
Allyse: Det forutset at du har $mail = $_POST['mail'];

5687248[/snapback]

Det gjør jo ikke det...

 

Kan jo godt ha:

$mail = "[email protected]";
if (preg_match("[^[a-z0-9.-_]{1,}@[a-z0-9.-_]{1,}.[a-z]{2,}$]", $mail)){
$sql = "INSERT INTO brukere mail='$mail' WHERE id='$id'"
}else{
echo "Epost validerer ikke";
}

uten at det vil gjøre at koden ikke funker...

Lenke til kommentar

i mine øyne ser koden noe feil ut. hvorfor har du [] runt det hele? her skal det brukes et tegn som start/ende av REGXPn dessuten må . escapes. da den har en betydning i regxp spørringe (punktum er en vilkårlig bokstav 1 gang...

 

Du har også glemt å sette den som case-insensitive (default er case-sensitiv

 

preg_match("/^[a-z0-9\.-_]{1,}@[a-z0-9\.-_]{1,}\.[a-z]{2,4}$/i", $_POST['mail']);

 

fjott:

manualen kan hjelpe deg med å lære om dette, er faktisk veldig godt forklart, men MYE å lese:

preg_match()

modifiers(der jeg har 'i' helt på slutten er en modifier, derfor vi bruker \ på begge sider så php vet hva som er regular expression og hva som er modifiers...)

 

Regular Expressions Syntax (Den merkelige sammensetningen av tegn for avasert søk i en streng)

 

Edit: rettet, glemte siste punktum

Endret av NH
Lenke til kommentar

Det stemmer...

Men den koden som Allyse postet, forutsetter ikke at det blir brukt $_POST. Koden funker like godt om det ikke hentes med $_POST.

 

Det må ikke hentes mailadresse fra en form for at koden skal fungere, hvis mener hva jeg forstår...

 

EDIT: Grunnen til at jeg kommenterte innlegget, ditt, var fordi du sa til Allyse, at den koden han postet, forutsatte at han har $mail = $_POST["mail"], og det stemmer ikke...

Endret av kakkle
Lenke til kommentar

Noen som vet hvordan jeg kan legge inn en sjekk som følger epost-standarden til punkt og prikke? Har hørt at php inneholder dette, men har ikke klart å finne det.

 

Jeg har sett "standarden" en gang for sjekk, og den var på en god A4-side, så jeg tviler litt på at denne sjekken gjør samme jobben.

 

Men selvfølgelig helt kurant til 99.99% av all sjekk man skal foreta. Vil bare være litt vanskelig :)

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