首頁
編程語言
C語言|JAVA編程
Python編程
網頁編程
ASP編程|PHP編程
JSP編程
數據庫
MYSQL數據庫|SqlServer數據庫
Oracle數據庫|DB2數據庫
您现在的位置: 程式碼之家 >> 編程語言 >  >> 網頁程式設計 >> PHP 程式設計 >> PHP 相關知識

PHP 驗證身份證後六位的實現方法

     編輯:PHP 相關知識

需求場景

表單提交時要求用戶輸入身份證號後六位,與系統存儲的值比對,僅當一致才允許進行後續操作。

核心邏輯

身份證後六位屬於定長字符串比對,可直接使用 substr 截取或正則驗證格式後再比較。

代碼實現

方法一:直接比對(假設已從數據庫讀取完整身份證號)

<?php
// $stored_idcard 為數據庫中存儲的完整身份證號
// $_POST['id_suffix'] 為用戶提交的後六位
$stored_suffix = substr($stored_idcard, -6);
if ($stored_suffix === $_POST['id_suffix']) {
    echo '驗證通過,允許操作';
    // 執行後續業務邏輯
} else {
    echo '身份證後六位不匹配,操作被拒絕';
}
?>

方法二:從文件讀取並比對(針對單文件存儲場景)

<?php
$file_path = 'idcard.txt'; // 僅存儲一行完整身份證號
if (file_exists($file_path)) {
    $full_id = trim(file_get_contents($file_path));
    $suffix = substr($full_id, -6);
    if ($suffix === $_POST['id_suffix']) {
        echo '匹配成功';
    } else {
        echo '不匹配';
    }
} else {
    echo '數據源文件不存在';
}
?>

進階:增加格式校驗

防止用戶提交非數字或長度不足的內容:

if (!preg_match('/^\d{6}$/', $_POST['id_suffix'])) {
    die('請輸入正確的 6 位數字');
}

安全提示

  • 身份證屬於敏感個人信息,嚴禁明文存儲,生產環境應加密存儲(如 AES)或僅存儲哈希值(如 SHA-256)。
  • 傳輸過程必須使用 HTTPS。
  • 驗證後應立即銷毀明文變量,避免日志洩露。
  1. 上一篇文章:
  2. 下一篇文章:
Copyright © 程式碼之家 All Rights Reserved