信用卡效验程序


Posted in PHP onOctober 09, 2006

<?php  

////////////////////////////////////////////////////  
//                                                //   
// Credit card validation routine                 //  
// May 15, 2000                                   //  
// By ariso                                       //  
// validateCardCode($number[,$cardtype])          //  
////////////////////////////////////////////////////  

function validateCardCode($cardnumber, $cardtype =  'unknown')
{  
     //Clean up input  

    $cardtype = strtolower($cardtype);  
    $cardnumber = ereg_replace( '[-[:space:]]',  '',$cardnumber);   

     //Do type specific checks  

    if ($cardtype ==  'unknown') {  
         //Skip type specific checks  
    }  
    elseif ($cardtype ==  'mastercard'){  
        if (strlen($cardnumber) != 16 || !ereg( '5[1-5]', $cardnumber)) return 0;  
    }  
    elseif ($cardtype ==  'visa'){  
        if ((strlen($cardnumber) != 13 && strlen($cardnumber) != 16) || substr($cardnumber, 0, 1) !=  '4')  

return 0;  
    }  
    elseif ($cardtype ==  'amex'){  
        if (strlen($cardnumber) != 15 || !ereg( '3[47]', $cardnumber)) return a;  
    }  
    elseif ($cardtype ==  'discover'){  
        if (strlen($cardnumber) != 16 || substr($cardnumber, 0, 4) !=  '6011') return 0;  
    }  
    else {  
         //invalid type entered  
        return -1;  
    }  

     // Start MOD 10 checks  

    $dig = toCharArray($cardnumber);  
    $numdig = sizeof ($dig);  
    $intIntJ = 0;  
    for ($intI=($numdig-2); $intI>=0; $intI-=2){  
        $dbl[$intIntJ] = $dig[$intI] * 2;  
        $intIntJ++;  
    }      
    $dblsz = sizeof($dbl);  
    $validate =0;  
    for ($intI=0;$intI<$dblsz;$intI++){  
        $add = toCharArray($dbl[$intI]);  
        for ($intIntJ=0;$intIntJ<sizeof($add);$intIntJ++){  
            $validate += $add[$intIntJ];  
        }  
    $add =  '';  
    }  
    for ($intI=($numdig-1); $intI>=0; $intI-=2){  
        $validate += $dig[$intI];   
    }  
    if (substr($validate, -1, 1) ==  '0') return 1;  
    else return 0;  
}  

// takes a string and returns an array of characters  

function toCharArray($intInput){  
    $len = strlen($intInput);  
    for ($intIntJ=0;$intIntJ<$len;$intIntJ++){  
        $char[$intIntJ] = substr($intInput, $intIntJ, 1);      
    }  
    return ($char);  
}  

?>  

PHP 相关文章推荐
用php过滤危险html代码的函数
Jul 22 PHP
php获取url字符串截取路径的文件名和扩展名的函数
Jan 22 PHP
让php处理图片变得简单 基于gb库的图片处理类附实例代码下载
May 17 PHP
php面向对象中的魔术方法中文说明
Mar 04 PHP
PHP实现取得HTTP请求的原文
Aug 18 PHP
php中的字符编码转换函数用法示例
Oct 20 PHP
php jsonp单引号转义
Nov 23 PHP
PHP对文件夹递归执行chmod命令的方法
Jun 19 PHP
PHP中SSO Cookie登录分析和实现
Nov 06 PHP
PHP基于DOM创建xml文档的方法示例
Feb 08 PHP
Laravel中七个非常有用但很少人知道的Carbon方法
Sep 21 PHP
Laravel框架实现的rbac权限管理操作示例
Jan 16 PHP
用文本文件实现的动态实时发布新闻的程序
Oct 09 #PHP
构建简单的Webmail系统
Oct 09 #PHP
如何删除多级目录
Oct 09 #PHP
用PHP实现多级树型菜单
Oct 09 #PHP
PHP4在Windows2000下的安装
Oct 09 #PHP
模仿OSO的论坛(五)
Oct 09 #PHP
基于mysql的论坛(2)
Oct 09 #PHP
You might like
php 魔术函数使用说明
2010/02/21 PHP
php使用fsockopen函数发送post,get请求获取网页内容的方法
2014/11/15 PHP
PHP 使用memcached简单示例分享
2015/03/05 PHP
一键生成各种尺寸Icon的php脚本(实例)
2017/02/08 PHP
PHP使用openssl扩展实现加解密方法示例
2020/02/20 PHP
利用javascript查看html源文件
2006/11/08 Javascript
JavaScript 开发规范要求(图文并茂)
2010/06/11 Javascript
js导航菜单(自写)简单大方
2013/03/28 Javascript
Javascript 函数parseInt()转换时出现bug问题
2014/05/20 Javascript
javascript实现密码强度显示
2015/03/18 Javascript
JavaScript实现算术平方根算法-代码超简单
2015/09/11 Javascript
JS深度拷贝Object Array实例分析
2016/03/31 Javascript
JS iFrame加载慢怎么解决
2016/05/13 Javascript
Angular.js与node.js项目里用cookie校验账户登录详解
2017/02/22 Javascript
微信小程序中setInterval的使用方法
2017/09/29 Javascript
详解在vue-cli中引用jQuery、bootstrap以及使用sass、less编写css
2017/11/08 jQuery
webpack css加载和图片加载的方法示例
2018/09/11 Javascript
es6函数之rest参数用法实例分析
2020/04/18 Javascript
解决ant Design Search无法输入内容的问题
2020/10/29 Javascript
nuxt 实现在其它js文件中使用store的方式
2020/11/05 Javascript
JS代码实现页面切换效果
2021/01/10 Javascript
python操作字典类型的常用方法(推荐)
2016/05/16 Python
Python实现遍历目录的方法【测试可用】
2017/03/22 Python
Python实现运行其他程序的四种方式实例分析
2017/08/17 Python
Python探索之静态方法和类方法的区别详解
2017/10/27 Python
python3 http提交json参数并获取返回值的方法
2018/12/19 Python
Python 互换字典的键值对实例
2019/02/12 Python
加拿大百叶窗和窗帘定制网站:Blinds
2017/01/30 全球购物
寻找迷宫的一条出路,o通路;X:障碍
2016/07/10 面试题
Java面试题:请说出如下代码的输出结果
2013/04/22 面试题
开学典礼主持词
2014/03/19 职场文书
小学捐书活动总结
2014/07/05 职场文书
2014年小学班主任工作总结
2014/11/08 职场文书
2014年管理人员工作总结
2014/12/01 职场文书
2015年“世界无车日”活动方案
2015/05/06 职场文书
SQL Server #{}可以防止SQL注入
2022/05/11 SQL Server