ftp
3 سال پیش توسط ftp مطرح شد
7 پاسخ

اعتبار سنجی کدملی با php

@mohaligateway
@eniack
@mhyeganeh
@ali.bayat
چطوری کد ملی رو اعتبار سنجی کنیم


ثبت پرسش جدید
علی بیات
تخصص : توسعه دهنده ارشد وب
@ali.bayat 3 سال پیش مطرح شد
4

از این تابع میتونی استفاده کنی

function check_national_code($value)
{
    if(!preg_match('/^[0-9]{10}$/',$value)) {
        return (bool) false;
    }

    for($i=0;$i<10;$i++)
        if(preg_match('/^'.$i.'{10}$/',$value)) {
            return (bool) false;
        }

    for($i=0,$sum=0;$i<9;$i++)
        $sum+=((10-$i)*intval(substr($value, $i,1)));
        $ret=$sum%11;
        $parity=intval(substr($value, 9,1));
        if(($ret<2 && $ret==$parity) || ($ret>=2 && $ret==11-$parity)) {
            return (bool) true;
        }

    return (bool) false;

}

moha li
تخصص : توسعه دهنده لاراول و Vue
@mohaligateway 3 سال پیش مطرح شد
0

سلام
شماره کد ملی دارای ده رقم در سه گروه ۳، ۶ و ۱ رقمی است که سه رقم اول مربوط به محل تولد می‌باشد. در کارت بین سه گروه رقم‌ها با خط تیره فاصله‌گذاری شده‌است ولی معمولا هنگام درج مشخصات و کد ملی نیازی به جداگانه‌نویسی ارقام وجود ندارد و از چپ به راست ده رقم پشت سرهم نوشته می‌شوند.
کد ملی شماره‌ای است ۱۰ رقمی که از سمت چپ سه رقم کد شهرستان محل صدور شناسنامه، شش رقم بعدی کد منحصربه‌فرد برای فرد دارنده شناسنامه در شهرستان محل صدور و رقم آخر آن هم یک رقم کنترل است که از روی ۹ رقم سمت چپ به‌دست می‌آید. برای راستی‌آزمایی کد کافی است کد ملی خود را بدون خط تیره در فیلد زیر وارد کرده تا صحت کد ملی مشخص گردد. درصورتی که کد با صفر شروع شده حتما عدد صفر هم وارد شود.
@ftp


فرشید مرادی
تخصص : noob
@eniack 3 سال پیش مطرح شد
4

سلام دوست من ،
این مورد رو داخل گوگل سرچ کنید حداقل ۲۰ نتیجه خوب میاره واستون که میتونید استفاده کنید و توضیحاتشون رو بخونید ،
اینم خودش یک مهارت هست که چیزی که نمیدونید رو برید دنبالش سرچ کنید و بدست بیارید ،
با احترام🙏


امیرحسین عنبری
تخصص : Web application developer
@amiranbari33 1 سال پیش آپدیت شد
0

سلام دوست عزیز.باید اول یک RULE ایجاد کنی و سپس این کد رو بزار و استفاده کن :

`if(!preg_match('/^[0-9]{10}$/',$value)) return false; for($i=0;$i<10;$i++) if(preg_match('/^'.$i.'{10}$/',$value)) return false; for($i=0,$sum=0;$i<9;$i++) $sum+=((10-$i)*intval(substr($value, $i,1))); $ret=$sum%11; $parity=intval(substr($value, 9,1)); if(($ret<2 && $ret==$parity) || ($ret>=2 && $ret==11-$parity)) return true; return false;`

علی بیات
تخصص : توسعه دهنده ارشد وب
@ali.bayat 3 سال پیش مطرح شد
4

از این تابع میتونی استفاده کنی

function check_national_code($value)
{
    if(!preg_match('/^[0-9]{10}$/',$value)) {
        return (bool) false;
    }

    for($i=0;$i<10;$i++)
        if(preg_match('/^'.$i.'{10}$/',$value)) {
            return (bool) false;
        }

    for($i=0,$sum=0;$i<9;$i++)
        $sum+=((10-$i)*intval(substr($value, $i,1)));
        $ret=$sum%11;
        $parity=intval(substr($value, 9,1));
        if(($ret<2 && $ret==$parity) || ($ret>=2 && $ret==11-$parity)) {
            return (bool) true;
        }

    return (bool) false;

}

Muhammad
تخصص : Back-End Developer
@muhammad 3 سال پیش مطرح شد
0

چرا این فانکشن، true و false رو cast کرده؟ @ali.bayat


علی بیات
تخصص : توسعه دهنده ارشد وب
@ali.bayat 3 سال پیش مطرح شد
1

@muhammad
این کد داخل یک پکیج ولیدیشن های فارسی هست
به نظر من هم زیاده رویه که true & false رو دوباره bool کنی


حسن حیدریان
تخصص : رابط
@mighatenoor 2 سال پیش مطرح شد
0

سلام
در فرم المنتور چطور میشه ایجاد کرد؟


برای ارسال پاسخ لازم است وارد شده یا ثبت‌نام کنید

ورود یا ثبت‌نام