|
|
|
|
# 1 |
|
חבר מתקדם
|
בדיקת תקינות מייל
ניסתי להשתמש בפונק' הזאת:
קוד:
function email($email)
{
if(strpos($email, '@') === false) return false;
$host = explode("@",$email); $mxarr = array();
$regexp = '/^[-!#$%&\'*+\\.\/0-9=?A-Z^_`{|}~]+@([-0-9A-Z]+\.)+([0-9A-Z]){2,4}$/i';
if (!preg_match($regexp, $email)) return false;
if (function_exists('getmxrr') && !getmxrr($host[1],$mxarr)) return false;
return true;
}
Last edited by AlonElk; 05-03-13 at 20:07.. |
|
|
|
# 2 |
|
חבר וותיק
|
2 אפשריות לרשותך
![]() filter_var - פונקצייה מובנת בPHP שעוזרת לאמת מחרוזות מסויימות. regex - אתה בטח יודע מה זה. filter_var: קוד:
if( !filter_var($_POST['email'], FILTER_VALIDATE_EMAIL) )
{
echo "אימייל שגוי";
}
קוד:
if( !preg_match("/^[a-zA-Z0-9-_]{3,50}@[a-zA-Z0-9_-\.]+\.[a-zA-Z]{2,5}$/", $_POST['email']) )
{
echo "אימייל שגוי";
}
|
|
|
|
# 3 |
|
חבר מתקדם
|
תודה
![]() |
|
|
|
# 5 |
|
חבר בקהילה
|
בחיים אל תשתמש בREGEX כדי לבדוק תקינות מייל, מתי שאפשר לחסוך בזה שימוש - חוסכים.
חוץ מזה שהREGEX שהרוב כותבים (אם אפשר לקרוא לזה "הרוב" ולא כולם) לא מכיל את כל הדברים שמעידים על תקינות מייל כמו בfilter_var. תשתמש בfilter_var. וכמו שאדיר אמר... אם אין לך אפשרות, תפנה אל האחסון שיטפלו בזה, זה ממש בושה אחסון שלא מריץ php5.2+... --- דרך אגב, הפונקציה שנתת לא בודקת אם המייל עצמו תקין, אלה אם הדומיין המשוייך תקין. זאת אומרת, גם מייל כזה יעבור: asasas321212121121cvxv@gmail.com על אף שהוא לא באמת קיים. לעומת מייל פשוט שכזה שלא יכול לעבור כי אין דומיין בשם gmailxxxx3.co.il user@gmailxxxx3.co.il Last edited by Rebuilt; 08-03-13 at 11:02.. |
|
![]() |
| חברים פעילים הצופים באשכול זה: 1 (0 חברים ו- 1 אורחים) | |
|
|