View Single Post
ישן 11-01-08, 22:29   # 1
-roee-
חבר על
 
מיני פרופיל
תאריך הצטרפות: Nov 2005
מיקום: IL
הודעות: 864

-roee- לא מחובר  

[PHP] מדריך לאימות דואר אלקטרוני (יותר מביטוי רגולרי פשוט)

היי,

למעשה בימים האחרונים פנו אלי אנשים שונים ובקשו ממני לעזור להם לשפר את המערכות שהם בנו מבחינת "אבטחה" או איך נקרא לזה - "התחכמות".

אז החלטתי לתת לכם את הפונקציה האישית שלי אשר עובדת במערכות שבניתי.
הפונקציה בעצם מקבלת מחרוזת ומבצעת פעולה שימושית מאוד, בודקת האם המחרוזת היא דואר אלקטרוני תקינה אלא שבנוסף לבדיקה הרגילה של הביטוי הרגולרי, הפונקציה מנסה ליצור קשר עם השרת ולוודא שאכן הוא קיים.
היתרון הענקי של הפונקציה זה הוא שהיא לא משתמשת ב-fsockopen אלא ב-gethostbyname פשוט.

PHP קוד:
// נכתב על ידי רועי נוי
// http://www.roeenoy.com
function check_email$email )

    
$email htmlspecialchars stripslashes strip_tags $email ) ) , ENT_QUOTES );
    if ( 
eregi ('^([a-z0-9_]|\\-|\\.)+@(([a-z0-9_]|\\-)+\\.)+[a-z]{2,4}$'$email ) )
    {
        
$domain explode('@'$email ) ;
        
$domain_ip gethostbyname($domain[1]);
        if( 
$domain[1] != $domain_ip )
        {
            return 
true;
        }else {
            return 
false;
        }
    } else {
        return 
false;
    }

לא נראה לי שיש פה יותר מדי מה להסביר, כל אחד יכול להבין את הקוד הפשוט הזה.

על מנת להשתמש בפונקציה יש כמובן לכתוב כך:
PHP קוד:
if( check_email("my_username@yahoo.com") )
    echo 
"<font color=green>Correct Email Address</font>";
else
    echo 
"<font color=red>Wrong Email Address</font>"
מה ניתן לומר עוד?
זוהי פונקציה שימושית מאוד ואני ממליץ מקרב לב להשתמש בה.
__________________
בברכה,
רועי
  Reply With Quote