PluginProbe ʕ •ᴥ•ʔ
Matomo Analytics – Powerful, Privacy-First Insights for WordPress / 1.3.1
Matomo Analytics – Powerful, Privacy-First Insights for WordPress v1.3.1
5.11.1 5.11.0 5.10.2 5.10.1 trunk 1.0.2 1.0.3 1.0.4 1.0.5 1.0.6 1.1.0 1.1.1 1.1.2 1.1.3 1.2.0 1.3.0 1.3.1 1.3.2 4.0.0 4.0.1 4.0.2 4.0.3 4.0.4 4.1.0 4.1.1 4.1.2 4.1.3 4.10.0 4.11.0 4.12.0 4.13.0 4.13.2 4.13.3 4.13.4 4.13.5 4.14.0 4.14.1 4.14.2 4.15.0 4.15.1 4.15.2 4.15.3 4.2.0 4.3.0 4.3.1 4.4.1 4.4.2 4.5.0 4.6.0 5.0.1 5.0.2 5.0.3 5.0.4 5.0.5 5.0.6 5.0.7 5.0.8 5.1.0 5.1.1 5.1.2 5.1.3 5.1.4 5.1.5 5.1.6 5.1.7 5.10.0 5.2.0 5.2.1 5.2.2 5.3.0 5.3.1 5.3.2 5.3.3 5.6.0 5.6.1 5.7.0 5.7.1 5.8.0 5.8.1 5.8.2
matomo / app / libs / Zend / Validate / Ccnum.php
matomo / app / libs / Zend / Validate Last commit date
File 6 years ago Hostname 6 years ago Abstract.php 6 years ago Alnum.php 6 years ago Alpha.php 6 years ago Between.php 6 years ago Callback.php 6 years ago Ccnum.php 6 years ago CreditCard.php 6 years ago Date.php 6 years ago Digits.php 6 years ago Exception.php 6 years ago Float.php 6 years ago GreaterThan.php 6 years ago Hex.php 6 years ago Hostname.php 6 years ago Iban.php 6 years ago Identical.php 6 years ago InArray.php 6 years ago Int.php 6 years ago Interface.php 6 years ago Ip.php 6 years ago Isbn.php 6 years ago LessThan.php 6 years ago NotEmpty.php 6 years ago PostCode.php 6 years ago Regex.php 6 years ago StringLength.php 6 years ago
Ccnum.php
113 lines
1 <?php
2 /**
3 * Zend Framework
4 *
5 * LICENSE
6 *
7 * This source file is subject to the new BSD license that is bundled
8 * with this package in the file LICENSE.txt.
9 * It is also available through the world-wide-web at this URL:
10 * http://framework.zend.com/license/new-bsd
11 * If you did not receive a copy of the license and are unable to
12 * obtain it through the world-wide-web, please send an email
13 * to license@zend.com so we can send you a copy immediately.
14 *
15 * @category Zend
16 * @package Zend_Validate
17 * @copyright Copyright (c) 2005-2011 Zend Technologies USA Inc. (http://www.zend.com)
18 * @license http://framework.zend.com/license/new-bsd New BSD License
19 * @version $Id: Ccnum.php 23775 2011-03-01 17:25:24Z ralph $
20 */
21
22 /**
23 * @see Zend_Validate_Abstract
24 */
25 // require_once 'Zend/Validate/Abstract.php';
26
27 /**
28 * @category Zend
29 * @package Zend_Validate
30 * @copyright Copyright (c) 2005-2011 Zend Technologies USA Inc. (http://www.zend.com)
31 * @license http://framework.zend.com/license/new-bsd New BSD License
32 */
33 class Zend_Validate_Ccnum extends Zend_Validate_Abstract
34 {
35 /**
36 * Validation failure message key for when the value is not of valid length
37 */
38 const LENGTH = 'ccnumLength';
39
40 /**
41 * Validation failure message key for when the value fails the mod-10 checksum
42 */
43 const CHECKSUM = 'ccnumChecksum';
44
45 /**
46 * Digits filter for input
47 *
48 * @var Zend_Filter_Digits
49 */
50 protected static $_filter = null;
51
52 /**
53 * Validation failure message template definitions
54 *
55 * @var array
56 */
57 protected $_messageTemplates = array(
58 self::LENGTH => "'%value%' must contain between 13 and 19 digits",
59 self::CHECKSUM => "Luhn algorithm (mod-10 checksum) failed on '%value%'"
60 );
61
62 public function __construct()
63 {
64 trigger_error('Using the Ccnum validator is deprecated in favor of the CreditCard validator');
65 }
66
67 /**
68 * Defined by Zend_Validate_Interface
69 *
70 * Returns true if and only if $value follows the Luhn algorithm (mod-10 checksum)
71 *
72 * @param string $value
73 * @return boolean
74 */
75 public function isValid($value)
76 {
77 $this->_setValue($value);
78
79 if (null === self::$_filter) {
80 /**
81 * @see Zend_Filter_Digits
82 */
83 // require_once 'Zend/Filter/Digits.php';
84 self::$_filter = new Zend_Filter_Digits();
85 }
86
87 $valueFiltered = self::$_filter->filter($value);
88
89 $length = strlen($valueFiltered);
90
91 if ($length < 13 || $length > 19) {
92 $this->_error(self::LENGTH);
93 return false;
94 }
95
96 $sum = 0;
97 $weight = 2;
98
99 for ($i = $length - 2; $i >= 0; $i--) {
100 $digit = $weight * $valueFiltered[$i];
101 $sum += floor($digit / 10) + $digit % 10;
102 $weight = $weight % 2 + 1;
103 }
104
105 if ((10 - $sum % 10) % 10 != $valueFiltered[$length - 1]) {
106 $this->_error(self::CHECKSUM, $valueFiltered);
107 return false;
108 }
109
110 return true;
111 }
112 }
113