嗨,我正在使用codeigniter。我想验证我的信用卡详细信息。我看到php中有类来验证信用卡号码。我在codeigniter看到了一个帮助者来验证信用卡
http://codeigniter.com/wiki/Credit_Card_Helper
/**
* Truncates a card number retaining only the first 4 and the last 4 digits. It then returns the truncated form.
*
* @param string The card number to truncate.
* @return string The truncated card number.
*/
function truncate_card($card_num) {
$padsize = (strlen($card_num) < 7 ? 0 : strlen($card_num) - 7);
return substr($card_num, 0, 4) . str_repeat('X', $padsize). substr($card_num, -3);
}
/**
* Validates a card expiry date. Finds the midnight on first day of the following
* month and ensures that is greater than the current time (cards expire at the
* end of the printed month). Assumes basic sanity checks have already been performed
* on month/year (i.e. length, numeric, etc).
*
* @param integer The expiry month shown on the card.
* @param integer The expiry year printed on the card.
* @return boolean Returns true if the card is still valid, false if it has expired.
*/
function card_expiry_valid($month, $year) {
$expiry_date = mktime(0, 0, 0, ($month + 1), 1, $year);
return ($expiry_date > time());
}
/**
* Strips all non-numerics from the card number.
*
* @param string The card number to clean up.
* @return string The stripped down card number.
*/
function card_number_clean($number) {
return ereg_replace("[^0-9]", "", $number);
}
/**
* Uses the Luhn algorithm (aka Mod10) <http://en.wikipedia.org/wiki/Luhn_algorithm>
* to perform basic validation of a credit card number.
*
* @param string The card number to validate.
* @return boolean True if valid according to the Luhn algorith, false otherwise.
*/
function card_number_valid ($card_number) {
$card_number = strrev(card_number_clean($card_number));
$sum = 0;
for ($i = 0; $i < strlen($card_number); $i++) {
$digit = substr($card_number, $i, 1);
// Double every second digit
if ($i % 2 == 1) {
$digit *= 2;
}
// Add digits of 2-digit numbers together
if ($digit > 9) {
$digit = ($digit % 10) + floor($digit / 10);
}
$sum += $digit;
}
// If the total has no remainder it's OK
return ($sum % 10 == 0);
}
?>
它使用通用验证。但我希望根据卡片类型进行验证
http://www.braemoor.co.uk/software/creditcard.php
codeigniter中是否有任何库或帮助程序。请帮助.....................
答案 0 :(得分:8)
正如人们已经告诉过你的那样,CodeIgniter是一个php框架,使用php编码,在php环境下工作并使用..,php类和函数:)。
此外,您链接的文件是一个简单的功能。一个功能。你知道你能做什么吗?按原样获取文件,将其命名为creditcard_helper.php
,将其放在帮助文件夹中,打开它并将整个代码放在此代码段中(丑陋但必要,因为每当您第二次加载帮助程序时否则给你错误):
if(!function_exists('checkCreditCard')
{
//the whole content goes here untouched;
}
你已经定下来了。只需使用:
$this->load->helper('creditcard');
if(checkCreditCard($cardnumber, $cardname, &$errornumber, &$errortext))
{
echo 'card OK';
}
else
{
echo 'wrong card type/number';
}
答案 1 :(得分:1)
我在this helper内找到了CodeIgniter Github wiki page。当放入helpers
文件夹中时,您可以使用加载它的控制器或模型中的文件中的函数。