php简单的身份证验证代码分享(php登录验证码代码)

本文目录一览:

php的怎么用身份证号来做帐号判断代码

写了几个身份证方面的函数,个人感觉挺有用的,特别是在网络问卷调查时,对个人信息里的身份证进行验证很有用,但是应者寥寥,还是收在自己的blog里算了。

<?php

// 计算身份证校验码,根据国家标准GB 11643-1999

function idcard_verify_number($idcard_base){

 if (strlen($idcard_base) != 17){ return false; }

 // 加权因子

 $factor = array(7, 9, 10, 5, 8, 4, 2, 1, 6, 3, 7, 9, 10, 5, 8, 4, 2);

 // 校验码对应值

 $verify_number_list = array(’1’, ’0’, ’X’, ’9’, ’8’, ’7’, ’6’, ’5’, ’4’, ’3’, ’2’);

 $checksum = 0;

 for ($i = 0; $i < strlen($idcard_base); $i++){

$checksum += substr($idcard_base, $i, 1) * $factor[$i];

 }

 $mod = $checksum % 11;

 $verify_number = $verify_number_list[$mod];

 return $verify_number;

}

// 将15位身份证升级到18位

function idcard_15to18($idcard){

 if (strlen($idcard) != 15){

return false;

 }else{

// 如果身份证顺序码是996 997 998 999,这些是为百岁以上老人的特殊编码

if (array_search(substr($idcard, 12, 3), array(’996’, ’997’, ’998’, ’999’)) !== false){

 $idcard = substr($idcard, 0, 6) . ’18’. substr($idcard, 6, 9);

}else{

 $idcard = substr($idcard, 0, 6) . ’19’. substr($idcard, 6, 9);

}

 }

 $idcard = $idcard . idcard_verify_number($idcard);

 return $idcard;

}

// 18位身份证校验码有效性检查

function idcard_checksum18($idcard){

 if (strlen($idcard) != 18){ return false; }

 $idcard_base = substr($idcard, 0, 17);

 if (idcard_verify_number($idcard_base) != strtoupper(substr($idcard, 17, 1))){

return false;

 }else{

return true;

 }

}

?>

其中的$idcard_base是指身份证中的本位码,本位码是18位身份证里才有的,也就是18位身份证的前17位,最后一位称为校验码

一般在使用的时候不用直接调用idcard_verify_number(),平时的应用大多是使用后两个函数,这些函数都没有关心身份证字符串的格式问题,在调用前自行进行格式检查。

php登录系统身份验证

login.html

form id=”form1″ name=”form1″ method=”post” action=”checklogin.php”

table width=”400″

tr

th width=”27%” scope=”row”用户名/th

td width=”73%”input name=”user_name” type=”text” id=”user_name” //td

/tr

tr

th scope=”row”密码/th

tdinput name=”user_pwd” type=”password” id=”user_pwd” //td

/tr

tr

th scope=”row”请填写答案 /th

tdinput name=”yzm” type=”text” id=”yzm” size=”5″ /

123/td

/tr

tr

td colspan=”2″ scope=”row”div align=”center”

input type=”submit” name=”Submit” value=” 登录 ” /

/div/td

/tr

/table

/form

checklogin.php

?php

session_start();

require_once(“../include/class/Mysql.class.php”);

require_once(“../include/class/FuncAdmin.class.php”);

require_once(“../include/class/Users.class.php”);

$db = new Mysql();

$db-getConnection(1);

$db-select_db();

$db-query(“set names gb2312”);

$f = new FuncAdmin();

if(!empty($_POST[‘Submit’])){

//判断登录

$user_name = $_POST[‘user_name’];

$user_pwd = $_POST[‘user_pwd’];

$yzm = $_POST[‘yzm’];

//加强验证

//此处很重要但没写出呢cxmcook

if(empty($user_name) || empty($user_pwd)){

$f-alert_back(“用户名与密码不能为空!”);

}

$user = new Users();

$sql = $user-get_select_sql(” where user_name='”.$user_name.”‘ and user_pwd='”.$user_pwd.”‘ “);

$rs = $db-query($sql);

$row = $db-fetch_array($rs);

//var_dump($row);

//die(“hr”);

$rownum = $db-num_rows($rs);

//die(‘==========’.$rownum);

if( $rownum 0 ){

//$row = $db-fetch_array($rs);

$_SESSION[‘admin’] = ‘admin’;

$_SESSION[‘user_id’] = $row[‘user_id’];

$_SESSION[‘user_name’] = $row[‘user_name’];

$_SESSION[‘user_realname’] = $row[‘user_realname’];

$_SESSION[‘user_last_logintime’] = $row[‘user_last_logintime’];

$_SESSION[‘user_last_loginIp’] = $row[‘user_last_loginIp’];

$_SESSION[‘user_loginnum’] = $row[‘user_loginnum’];

//header(“Location:index.php”);

echo “script

alert(‘登录成功!”.$_SESSION[‘user_realname’].”‘);

location=’index.php’;

/script”;

}else{

$f-admin_tip(“用户名或密码错误!”);

}

}

?

使用PHP代码编写一个在网页中强迫用户进行身份认证的程序语句段

if ($_SERVER[‘PHP_AUTH_USER’]!=’user’ || $_SERVER[‘PHP_AUTH_PW’]!=’123456′) {

      header(‘WWW-Authenticate: Basic realm=”MyFramework Realm”‘);

      header(‘HTTP/1.0 401 Unauthorized’);

      echo “You must enter a valid login ID and password to access this resource.\n”;

      exit;

}

上面的代码段作用就是强制用户输入认证,用户名跟密码可以自己设置

如何使用PHP实现身份证是否合法的验证

function is_idcard( $id ) 

  $id = strtoupper($id); 

  $regx = “/(^\d{15}$)|(^\d{17}([0-9]|X)$)/”; 

  $arr_split = array(); 

  if(!preg_match($regx, $id)) 

  { 

    return FALSE; 

  } 

  if(15==strlen($id)) //检查15位 

  { 

    $regx = “/^(\d{6})+(\d{2})+(\d{2})+(\d{2})+(\d{3})$/”; 

  

    @preg_match($regx, $id, $arr_split); 

    //检查生日日期是否正确 

    $dtm_birth = “19”.$arr_split[2] . ‘/’ . $arr_split[3]. ‘/’ .$arr_split[4]; 

    if(!strtotime($dtm_birth)) 

    { 

      return FALSE; 

    } else { 

      return TRUE; 

    } 

  } 

  else      //检查18位 

  { 

    $regx = “/^(\d{6})+(\d{4})+(\d{2})+(\d{2})+(\d{3})([0-9]|X)$/”; 

    @preg_match($regx, $id, $arr_split); 

    $dtm_birth = $arr_split[2] . ‘/’ . $arr_split[3]. ‘/’ .$arr_split[4]; 

    if(!strtotime($dtm_birth)) //检查生日日期是否正确 

    { 

      return FALSE; 

    } 

    else

    { 

      //检验18位身份证的校验码是否正确。 

      //校验位按照ISO 7064:1983.MOD 11-2的规定生成,X可以认为是数字10。 

      $arr_int = array(7, 9, 10, 5, 8, 4, 2, 1, 6, 3, 7, 9, 10, 5, 8, 4, 2); 

      $arr_ch = array(‘1’, ‘0’, ‘X’, ‘9’, ‘8’, ‘7’, ‘6’, ‘5’, ‘4’, ‘3’, ‘2’); 

      $sign = 0; 

      for ( $i = 0; $i  17; $i++ ) 

      { 

        $b = (int) $id{$i}; 

        $w = $arr_int[$i]; 

        $sign += $b * $w; 

      } 

      $n = $sign % 11; 

      $val_num = $arr_ch[$n]; 

      if ($val_num != substr($id,17, 1)) 

      { 

        return FALSE; 

      } //phpfensi.com 

      else

      { 

        return TRUE; 

      } 

    } 

  } 

  

}

php 身份证 正则 检测是否有效怎么写?

你的正则表达式的规则错了。。当然不能执行啦

这是规则。如果你只是拿来主义,就无视吧。

代码长篇大论,是对你负责;说真的,百度没几个愿意自己写那么多字的人。我第二程序是自己写的,试验过了。可以自动把身份证升级到18位,然后验证。

正则表达式其实是来自数学的概念,后来加入了编程语言。正则表达式验证身份证简单,但是有缺点,你的要求是:验证出身年月日,很可惜,正则没办法验证的太完善。也就是说只要符合规则就是正确(比如19940939之类的出生年月。。。),所以写程序就是为了完善它。话说多了= =不采纳也没办法。我自认为我比楼上的好多了。

?php

$s15=”/^[0-9]{15}$/”;

//15位正则表达式

$s18=”/^[0-9]{6}[1]{1}[9]{1}[0-9]{2}[0-1]{1}[0-9]{1}[0-3]{1}[0-9]{1}[0-9]{3}[0-9X]{1}$/”;

//18位正则表达式

$sid=”18位或者15位身份证”;

if(preg_match($s15,$sid) or preg_match($s18,$sid))

//如果满足这两个条件的其中一个,输出echo

echo ‘ok’;

else

echo ‘no’;

?

简单不好用,我花了一个小时写了一个15位转18位然后自动验证的函数:

?php

function check($sid)

{

if(strlen($sid)== 15)

//如果是15身份证,进入自动转换程序,把15位升级到18位

{

$wi=array(‘7′,’9′,’10’,’5′,’8′,’4′,’2′,’1′,’6′,’3′,’7′,’9′,’10’,’5′,’8′,’4′,’2′,’1′);

$sid=substr_replace($sid,19,6,0);

$count=array();

for($i=0;$i18;++$i)

{

@$count[$i]=$sid[$i]*$wi[$i];

}

$sum=array_sum($count)%11;

$zuihou=array(‘1′,’0′,’X’,’9′,’8′,’7′,’6′,’5′,’4′,’3′,’2′);

$sid=substr_replace($sid,$zuihou[$sum],17,0);

//这个sid是18位的。= = 不信你拿自己的身份证(15位)放过来试验,肯定没错。

}

$wi18=array(7,9,10,5,8,4,2,1,6,3,7,9,10,5,8,4,2);

$sum2=array();

for($j=0;$j17;$j++)

{

$sum2[$j]=$sid[$j]*$wi18[$j];

}

$sum2=array_sum($sum2)%11;

$yz=array(‘1′,’0′,’X’,’9′,’8′,’7′,’6′,’5′,’4′,’3′,’2′);

if($yz[$sum2] == $sid[17])

//如果最后一位和验证号一样,则返回真

return true;

else

return false;

}

$sid=”18位或者15位身份证”;

if(check($sid))

echo ‘是正确的身份证’;

else

echo ‘身份证不正确’;

?

原创文章,作者:小蓝,如若转载,请注明出处:https://www.506064.com/n/257730.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
小蓝的头像小蓝
上一篇 2024-12-15 12:46
下一篇 2024-12-15 12:46

相关推荐

  • Python周杰伦代码用法介绍

    本文将从多个方面对Python周杰伦代码进行详细的阐述。 一、代码介绍 from urllib.request import urlopen from bs4 import Bea…

    编程 2025-04-29
  • Python字符串宽度不限制怎么打代码

    本文将为大家详细介绍Python字符串宽度不限制时如何打代码的几个方面。 一、保持代码风格的统一 在Python字符串宽度不限制的情况下,我们可以写出很长很长的一行代码。但是,为了…

    编程 2025-04-29
  • Python基础代码用法介绍

    本文将从多个方面对Python基础代码进行解析和详细阐述,力求让读者深刻理解Python基础代码。通过本文的学习,相信大家对Python的学习和应用会更加轻松和高效。 一、变量和数…

    编程 2025-04-29
  • Python简单数学计算

    本文将从多个方面介绍Python的简单数学计算,包括基础运算符、函数、库以及实际应用场景。 一、基础运算符 Python提供了基础的算术运算符,包括加(+)、减(-)、乘(*)、除…

    编程 2025-04-29
  • 仓库管理系统代码设计Python

    这篇文章将详细探讨如何设计一个基于Python的仓库管理系统。 一、基本需求 在着手设计之前,我们首先需要确定仓库管理系统的基本需求。 我们可以将需求分为以下几个方面: 1、库存管…

    编程 2025-04-29
  • Python满天星代码:让编程变得更加简单

    本文将从多个方面详细阐述Python满天星代码,为大家介绍它的优点以及如何在编程中使用。无论是刚刚接触编程还是资深程序员,都能从中获得一定的收获。 一、简介 Python满天星代码…

    编程 2025-04-29
  • 写代码新手教程

    本文将从语言选择、学习方法、编码规范以及常见问题解答等多个方面,为编程新手提供实用、简明的教程。 一、语言选择 作为编程新手,选择一门编程语言是很关键的一步。以下是几个有代表性的编…

    编程 2025-04-29
  • Python实现简易心形代码

    在这个文章中,我们将会介绍如何用Python语言编写一个非常简单的代码来生成一个心形图案。我们将会从安装Python开始介绍,逐步深入了解如何实现这一任务。 一、安装Python …

    编程 2025-04-29
  • 怎么写不影响Python运行的长段代码

    在Python编程的过程中,我们不可避免地需要编写一些长段代码,包括函数、类、复杂的控制语句等等。在编写这些代码时,我们需要考虑代码可读性、易用性以及对Python运行性能的影响。…

    编程 2025-04-29
  • Python海龟代码简单画图

    本文将介绍如何使用Python的海龟库进行简单画图,并提供相关示例代码。 一、基础用法 使用Python的海龟库,我们可以控制一个小海龟在窗口中移动,并利用它的“画笔”在窗口中绘制…

    编程 2025-04-29

发表回复

登录后才能评论