验证表单输入:信用卡

问题
希望用户不要输入一个仿造的信用卡号。
解决方案
is_valid_credit_card()函数可以告诉你所提供的一个信用卡号在语法上是否合法。
验证信用卡号
function is_valid_credit_card($s){
// 删除非数字字符,并反向
$s = strrev(preg_replace('/[^\d]/','',$s));
// 计算校验和
$sum = 0;
for($i = 0, $j = strlen($s); $i < $j; $i++){
//偶数位不做修改
if(($i % 2) == 0){
$val[$i] = $s[$i];
}else{
// 将奇数位加倍,如果大于9则减9
$val[$i] = $s[$i] * 2;
if($val[$i] > 9) {$val[$i] -= 9;}
}
$sum += $val[$i];
}
// 如果和是10的倍数,卡号则是合法的
return (($sum % 10) == 0);
}

if(! is_valid_credit_card($_POST['credit_card'])){
print 'Sorry, that card number is invalid.';
}else{
print($_POST['credit_card']);
}

强email地址验证还需要外部验证(通常向所提供的地址发送一个消息,其中包含一个确认链接),类似地,信用卡验证也需要外部验证,可以将信用卡号提交给一个支付系统,并提供相关的帐户信息(卡持有人姓名和地址),确保得到一个确认。

posted @   kksllss  阅读(5)  评论(0编辑  收藏  举报
相关博文:
阅读排行:
· 微软正式发布.NET 10 Preview 1:开启下一代开发框架新篇章
· 没有源码,如何修改代码逻辑?
· PowerShell开发游戏 · 打蜜蜂
· 在鹅厂做java开发是什么体验
· WPF到Web的无缝过渡:英雄联盟客户端的OpenSilver迁移实战
点击右上角即可分享
微信分享提示