PDA

View Full Version : مقاله: تشخیص صحت کد ملی با استفاده از php



P.H.P.
یک شنبه 26 دی 1389, 14:50 عصر
http://www.vvolf.net/wp-content/uploads/2011/01/mellicode.jpg


تشخیص صحت کد ملی با استفاده از PHP

کد ملی شماره ای 10 رقمی است که سه رقم اول آن مربوط به کد شهرستان محل تولد فرد، شش رقم بعد منحصر به فرد و رقم آخر رقم کنترولی به حساب میآید.

امروزه در تمامی نرم افزار ها، ارگانها و سازمانهای دولتی سیستم های استفاده کننده و تکمیل پرونده نیاز به کد ملی برای دریافت اطلاعات فرد دارند.


کلاسی برای این کار نوشتم که میتوانید استفاده کنید

این کلاس را میتوانید در تمامی برنامه های PHP استفاده کنید


کد هایی برای تشخیص صحت کد ملی با جاوا اسکریپت نوشته شده اند، خوبی این کلاس این است که با php نوشته شده و امکان دور زدن آن وجود ندارد.



دریافت کلاس از سایت PHP Classes: دریافت کنید... (http://www.phpclasses.org/package/6735.html)



منبع: www.Vvolf.net (http://www.vvolf.net/)

موفق

ghasemweb
یک شنبه 26 دی 1389, 17:39 عصر
دانلود نميشه اگه تو تايپيك ضميمه كني ممنون ميشيم

ravand
یک شنبه 26 دی 1389, 17:41 عصر
من اين اسكريپت رو قبلا امتحان كردم و مشكل داشته. و كد ملي رو كه بهش دادم گفته كه وجود نداره.

رضا قربانی
یک شنبه 26 دی 1389, 17:45 عصر
کلاسی برای این کار نوشتم که میتوانید استفاده کنید

داداش ممنون

اگر خودتون نوشتید که می تونید همین جا آپلود کنی تا کاربرامون راحت بتونن دانلود کنند.

ممنون
موفق باشید

P.H.P.
یک شنبه 26 دی 1389, 18:29 عصر
من اين اسكريپت رو قبلا امتحان كردم و مشكل داشته. و كد ملي رو كه بهش دادم گفته كه وجود نداره.

قبلا کجا تست کردی؟ اینو تازه نوشتم و آپلود کردم و کاملا درست کار میکنه



داداش ممنون

اگر خودتون نوشتید که می تونید همین جا آپلود کنی تا کاربرامون راحت بتونن دانلود کنند.

ممنون
موفق باشید


لینک دریافت کلاس برای کسانی که نمیتونن از php classes فایل دریافت کنند (البته با یه ثبت نام ساده میتونن راحت دریافت فایل کنند)

http://www.vvolf.net/vvolf-2011-01-12.tar.gz

موفق باشید

$ M 3 H R D A D $
دوشنبه 27 دی 1389, 16:11 عصر
کلاس :



<?php

/**
* In the name of God
*
* Validate National Iranian Code
*
* @package melliCode
* @version 1.0.0 mellicode.class.php Wednesday, January 12, 2011
* @author Reza Sheari
* @web http://www.Vvolf.net
* @email r.sheari@gmail.com
*/

class melliCode
{
/**
* Hold National Code
*
* @access Protected
* @var Integer
*/
protected static $nationalCode = int;

/**
* Incorrect List
*
* @access Protected
* @var Integer
*/
protected static $notNationalCode = array(
"1111111111",
"2222222222",
"3333333333",
"4444444444",
"5555555555",
"6666666666",
"7777777777",
"8888888888",
"9999999999",
"0000000000");

/**
* Construct
*
* @access Public
* @var Empty
*/
public function __construct()
{

}

/**
* National Validation Code
*
* @access Public
* @var Integer
*/
public function nationalCode($code)
{
self::$nationalCode = trim($code);

if(self::validCode())
{
$melliCode = self::$nationalCode;

$subMid = self::subMidNumbers($melliCode, 10, 1);

$getNum = 0;

for($i = 1; $i < 10; $i++)
$getNum += (self::subMidNumbers($melliCode, $i, 1) * (11 - $i));

$modulus = ($getNum % 11);

if((($modulus < 2) && ($subMid == $modulus)) || (($modulus >= 2) && ($subMid == (11 - $modulus))))
return true;
}

return false;
}

/**
* Validate
*
* @access Protected
* @var Boolean
*/
protected function validCode()
{
$melliCode = self::$nationalCode;

if((is_numeric($melliCode)) && (strlen($melliCode) == 10) && (strspn($melliCode, $melliCode[0]) != strlen($melliCode)))
return true;

return false;
}

/**
* Get Portion of String Specified
*
* @access Protected
* @var Integer
*/
protected function subMidNumbers($number, $start, $length)
{
$number = substr($number, ($start - 1), $length);

return $number;
}
}

?>



کد تست :



<?php

/**
* In the name of God
*
* Validate National Iranian Code
*
* @package melliCode
* @author Reza Sheari
* @web http://www.Vvolf.net
* @email r.sheari@gmail.com
*/

require("mellicode.class.php");

// Using PHP Class

$myMelliCode = "2050149204";

$melliClass = new melliCode;

if($melliClass::nationalCode($myMelliCode))
echo "+ True";
else
echo "- False";

?>