نمایش نتایج: از شماره 1 تا 3 , از مجموع 3

موضوع: تابع چک کردن صحت کد ملی

  1. #1
    عضو انجمن omid1991 آواتار ها
    تاریخ عضویت
    Jun 2013
    محل سکونت
    نمین
    نوشته ها
    217
    تشکر تشکر کرده 
    412
    تشکر تشکر شده 
    495
    تشکر شده در
    284 پست

    پیش فرض تابع چک کردن صحت کد ملی

    سلام و عرض ادب خدمت کاربران گرامی

    شاید بسیار برایتان پیش آمده باشد که در پروژه ای لازم هست که شماره ملی کاربر را دریافت کنید
    و شاید تا الان تنها اعتبارسنجی که انجام میدادید چک کردن ده رقمی بودن و فقط عدد بودن کد ملی بوده
    بنا به دلایلی لازم شد که واقعا صحت کد ملی کاربر را بوسیله آلگوریتمی تشخیص دهیم

    قبل از آموزش منابع رو معرفی میکنم
    منبع اول : علی آرش
    منبع دوم : رضا شیخله
    منبع سوم (خودم رفع باگ منابع اول و دوم) : امید آران

    در منابع اول و دوم بسیار کامل توضیح داده شده ولی متاسفانه باگی در هر دو کد وجود داره
    میشه با وارد کرد عددی مثل 1111111111 این تابع رو دور زد.
    ولی بنده اون باگ رو رفع کردم و کامل آماده استفاده هستش

    کد PHP:
    function CheckNationalCode($code='')
    {
        
    $code = (string) preg_replace('/[^0-9]/','',$code);
        if(
    strlen($code)>10 or strlen($code)<8)
            return 
    false;
        
        
    // --- Added by omid Aran ---
        
    $code str_pad($code100STR_PAD_LEFT);
        for(
    $i=0$i<10$i++)
            
    $blist[] = str_pad($i10$iSTR_PAD_LEFT);
        
        if(
    in_array($code$blist))
            return 
    false;
        
    // ------------------------
        
        
    $list_code str_split($code);
        
    $last = (int) $list_code[9];
        unset(
    $list_code[9]);
        
    $i 10;
        
    $sum 0;
        foreach(
    $list_code as $key=>$_)
        {
            
    $sum += intval($_) * $i;
            
    $i--;
        }
        
        
    $mod =(int) $sum 11;
        if(
    $mod >= 2)
            
    $mod 11 $mod;
        
        return 
    $mod == $last;
    }
     
    $code 1231234567;
    if(
    CheckNationalCode($code))
        echo 
    'ok';
    else
        echo 
    'err'

  2. تعداد تشکر ها ازomid1991 به دلیل پست مفید


  3. # ADS




     

  4. #2
    عضو انجمن
    تاریخ عضویت
    May 2010
    نوشته ها
    277
    تشکر تشکر کرده 
    249
    تشکر تشکر شده 
    314
    تشکر شده در
    248 پست

    پیش فرض پاسخ : تابع چک کردن صحت کد ملی

    این باگ در سایت نیک هم است (:

  5. تعداد تشکر ها از mibfa به دلیل پست مفید


  6. #3

  7. تعداد تشکر ها ازrezaonline.net به دلیل پست مفید


اطلاعات موضوع

کاربرانی که در حال مشاهده این موضوع هستند

در حال حاضر 1 کاربر در حال مشاهده این موضوع است. (0 کاربران و 1 مهمان ها)

مجوز های ارسال و ویرایش

  • شما نمیتوانید موضوع جدیدی ارسال کنید
  • شما امکان ارسال پاسخ را ندارید
  • شما نمیتوانید فایل پیوست کنید.
  • شما نمیتوانید پست های خود را ویرایش کنید
  •