Gå til innhold

sjekke for valid epost


Anbefalte innlegg

Videoannonse
Annonse
Skrevet (endret)

noe ala dette kanskje? Gikk litt fort i svingene, men det skal funke

 

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

Endret av allyse
Skrevet (endret)
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
Skrevet
Kan du sei meg korleis du klarer å hugse noko sånnt?

Logisk?

5685115[/snapback]

 

 

Ja, er logisk for min del. Er som alt annet. Ser kryptisk ut til du forstår sammenhengen ;)

Skrevet (endret)
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
Skrevet
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å?

Skrevet

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

Skrevet (endret)

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

Skrevet (endret)

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
Skrevet

kakkle: Ikkje? Når du skal få info frå eit input-felt, må du vel ha $POST/GET/REQUEST['lol']; for å få informasjonen?

Skrevet (endret)

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
Skrevet

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 :)

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å
  • Hvem er aktive   0 medlemmer

    • Ingen innloggede medlemmer aktive
×
×
  • Opprett ny...