Welcome to mirror list, hosted at ThFree Co, Russian Federation.

github.com/matomo-org/matomo.git - Unnamed repository; edit this file 'description' to name the repository.
summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authormattpiwik <matthieu.aubry@gmail.com>2007-09-03 17:04:17 +0400
committermattpiwik <matthieu.aubry@gmail.com>2007-09-03 17:04:17 +0400
commit05ed4e58db5cc742806dbc974251ca6148e2f0c8 (patch)
tree6325f8492b8ad53567430a4b2e3880af81d285b1 /libs/HTML/QuickForm/Rule/Email.php
parentfee947eb1fe09f09fc308863a3d4e83f3e9649d1 (diff)
git-svn-id: http://dev.piwik.org/svn/trunk@53 59fd770c-687e-43c8-a1e3-f5a4ff64c105
Diffstat (limited to 'libs/HTML/QuickForm/Rule/Email.php')
-rwxr-xr-xlibs/HTML/QuickForm/Rule/Email.php73
1 files changed, 73 insertions, 0 deletions
diff --git a/libs/HTML/QuickForm/Rule/Email.php b/libs/HTML/QuickForm/Rule/Email.php
new file mode 100755
index 0000000000..1c39823f14
--- /dev/null
+++ b/libs/HTML/QuickForm/Rule/Email.php
@@ -0,0 +1,73 @@
+<?php
+/* vim: set expandtab tabstop=4 shiftwidth=4 softtabstop=4: */
+
+/**
+ * Email validation rule
+ *
+ * PHP versions 4 and 5
+ *
+ * LICENSE: This source file is subject to version 3.01 of the PHP license
+ * that is available through the world-wide-web at the following URI:
+ * http://www.php.net/license/3_01.txt If you did not receive a copy of
+ * the PHP License and are unable to obtain it through the web, please
+ * send a note to license@php.net so we can mail you a copy immediately.
+ *
+ * @category HTML
+ * @package HTML_QuickForm
+ * @author Bertrand Mansion <bmansion@mamasam.com>
+ * @copyright 2001-2007 The PHP Group
+ * @license http://www.php.net/license/3_01.txt PHP License 3.01
+ * @version CVS: $Id: Email.php,v 1.6 2007/06/03 13:47:06 avb Exp $
+ * @link http://pear.php.net/package/HTML_QuickForm
+ */
+
+/**
+ * Abstract base class for QuickForm validation rules
+ */
+require_once 'HTML/QuickForm/Rule.php';
+
+/**
+ * Email validation rule
+ *
+ * @category HTML
+ * @package HTML_QuickForm
+ * @author Bertrand Mansion <bmansion@mamasam.com>
+ * @version Release: 3.2.9
+ * @since 3.2
+ */
+class HTML_QuickForm_Rule_Email extends HTML_QuickForm_Rule
+{
+ var $regex = '/^((\"[^\"\f\n\r\t\v\b]+\")|([\w\!\#\$\%\&\'\*\+\-\~\/\^\`\|\{\}]+(\.[\w\!\#\$\%\&\'\*\+\-\~\/\^\`\|\{\}]+)*))@((\[(((25[0-5])|(2[0-4][0-9])|([0-1]?[0-9]?[0-9]))\.((25[0-5])|(2[0-4][0-9])|([0-1]?[0-9]?[0-9]))\.((25[0-5])|(2[0-4][0-9])|([0-1]?[0-9]?[0-9]))\.((25[0-5])|(2[0-4][0-9])|([0-1]?[0-9]?[0-9])))\])|(((25[0-5])|(2[0-4][0-9])|([0-1]?[0-9]?[0-9]))\.((25[0-5])|(2[0-4][0-9])|([0-1]?[0-9]?[0-9]))\.((25[0-5])|(2[0-4][0-9])|([0-1]?[0-9]?[0-9]))\.((25[0-5])|(2[0-4][0-9])|([0-1]?[0-9]?[0-9])))|((([A-Za-z0-9\-])+\.)+[A-Za-z\-]+))$/';
+
+ /**
+ * Validates an email address
+ *
+ * @param string $email Email address
+ * @param boolean $checkDomain True if dns check should be performed
+ * @access public
+ * @return boolean true if email is valid
+ */
+ function validate($email, $checkDomain = false)
+ {
+ // Fix for bug #10799: add 'D' modifier to regex
+ if (preg_match($this->regex . 'D', $email)) {
+ if ($checkDomain && function_exists('checkdnsrr')) {
+ $tokens = explode('@', $email);
+ if (checkdnsrr($tokens[1], 'MX') || checkdnsrr($tokens[1], 'A')) {
+ return true;
+ }
+ return false;
+ }
+ return true;
+ }
+ return false;
+ } // end func validate
+
+
+ function getValidationScript($options = null)
+ {
+ return array(" var regex = " . $this->regex . ";\n", "{jsVar} != '' && !regex.test({jsVar})");
+ } // end func getValidationScript
+
+} // end class HTML_QuickForm_Rule_Email
+?> \ No newline at end of file