您的位置:首页网页设计PHP实例 → 信用卡效验程序

信用卡效验程序

时间:2004/11/7 3:24:00来源:本站整理作者:蓝点我要评论(0)




////////////////////////////////////////////////////  

//                                                //   

// 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
            $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);  

}  



?>  

相关阅读 Windows错误代码大全 Windows错误代码查询激活windows有什么用Mac QQ和Windows QQ聊天记录怎么合并 Mac QQ和Windows QQ聊天记录Windows 10自动更新怎么关闭 如何关闭Windows 10自动更新windows 10 rs4快速预览版17017下载错误问题Win10秋季创意者更新16291更新了什么 win10 16291更新内容windows10秋季创意者更新时间 windows10秋季创意者更新内容kb3150513补丁更新了什么 Windows 10补丁kb3150513是什么

文章评论
发表评论

热门文章 没有查询到任何记录。

最新文章 我的php文件怎么打开_php运算符怎么写 php 如何生成静态页面的函数PHP生成图片缩略图PHP session常见问题集锦及解决办法PHP实现同步远程Mysql

人气排行 DEDE在文章列表文章没有缩略图的不显示图片php+mysq修改用户密码我的php文件怎么打开_如何打开php文件的办法FCKeditor的配置和使用方法使用dedecms建站教程PHP+Ajax实现分页技术图片存储与浏览一例Linux+Apache+PHP+MySQLPHP生成图片缩略图