webForumDet fria alternativet

Kolla om epost är riktig

PHP

5 svar · 3 481 visningar · startad av startail

Medlem sedan sep. 2000155 inlägg
Frågan#1

Hej,

Jag försöker göra ett skript som skall kolla om en epost address är riktig, men också så att den skall retunera sant om man skriver in asterisker, såsom *@isp.com eller *@*.isp.com.

Jag har i dagsläget en kod som kollar att addressen är riktig, men jag vet inte hur jag skall få in asteriskerna i det hela så det fortfarande retunerar sant.

eregi("^[_a-z0-9-]+(\.[_a-z0-9-]+)*@[a-z0-9-]+(\.[a-z0-9-]+)*(\.[a-z]{2,3})$", $str)

Hoppas någon kan hjälpa mig med detta.

Medlem sedan sep. 2000155 inlägg
#2

Verkar som att det inte var så svårt som jag trodde. Fick ett fel när jag testade först, men det verkar som jag bara skrev något fel. Om någon ser nått fel på min ändring så säg till. Detta kanske inte är det bästa sättet?

eregi("^[*_a-z0-9-]+(\.[_a-z0-9-]+)*@[*a-z0-9-]+(\.[a-z0-9-]+)*(\.[a-z]{2,3})$", $str)
Medlem sedan nov. 2000857 inlägg
#3

Flyttas från Script - PHP..

Medlem sedan nov. 2006188 inlägg
#4
<?php
     if (!preg_match('/^[-A-Za-z0-9_.]+[@][A-Za-z0-9_-]+([.][A-Za-z0-9_-]+)*[.][A-Za-z]{2,6}$/', $_POST['epost'])) {
     echo "
     <script type='text/javascript'>alert('Du måste fylla i korrekt en E-mail adress.'); </SCRIPT>
     <script type='text/javascript'>self.location=('regfab1.php')</script>
     ";
     die();
}
?>
Medlem sedan sep. 200619 inlägg
#5

startail skrev:

eregi("^[*_a-z0-9-]+(\.[_a-z0-9-]+)*@[*a-z0-9-]+(\.[a-z0-9-]+)*(\.[a-z]{2,3})$", $str)

Ditt uttryck matchar e-post adresser som som t.ex *blabla@*blabla.com och det matchar också e-postadresser som börjar med . (punkt).

dwmedia skrev:

preg_match('/^[-A-Za-z0-9_.]+[@][A-Za-z0-9_-]+([.][A-Za-z0-9_-]+)*[.][A-Za-z]{2,6}$/', $_POST['epost'])

Detta uttryck är också felaktigt, precis som ovan matchar detta uttryck en e-postadress som t.ex börjar med . (punkt). Det matchar inte * adresser som önskat.

För att matcha en giltig e-postadress samt ta hänsyn till asterisker (*) som trådskaparen önskar, kan uttrycket t.ex se ut så här:

preg_match('/^([a-z0-9][-a-z0-9_\.]+|\*)@([a-z0-9][-a-z0-9_\.]+|\*)\.[a-z]{2,6}/i', $str)
Medlem sedan nov. 2006188 inlägg
#6

Ja det fins ju dem som har domäner som

<blabla@sin-domän.se>

Kör själv bara med sånna via pop3/imap

man kan ju även ha

.@sin-domän.se

Har jag för mig i alle fall ;)

263 ms totalt · 4 externa anrop · v20260731065814-full.a51de22e
127 ms — deklarationer (db)
0 ms — hämta statistik (cache)
131 ms — hämta tråd, inlägg och bilagor (db)
129 ms — ändringar (db)