booota Posted June 19, 2010 Posted June 19, 2010 Hi all I am testing oscommerce 2.2a on my local server (XAMPP) with PHP 5.3 in windows 7 environment. when i submit the registration form, it gives me following error Your E-Mail Address does not appear to be valid - please make any necessary corrections. Though there were other deprecated errors which i have corrected... Now this is what i cant get into... What should i do with it? Here is my validation file i.e catalog\includes\functions\validations.php /* $Id: validations.php 1739 2007-12-20 00:52:16Z hpdl $ osCommerce, Open Source E-Commerce Solutions http://www.oscommerce.com Copyright (c) 2003 osCommerce Released under the GNU General Public License */ //////////////////////////////////////////////////////////////////////////////////////////////// // // Function : tep_validate_email // // Arguments : email email address to be checked // // Return : true - valid email address // false - invalid email address // // Description : function for validating email address that conforms to RFC 822 specs // // This function is converted from a JavaScript written by // Sandeep V. Tamhankar ([email protected]). The original JavaScript // is available at http://javascript.internet.com // // Sample Valid Addresses: // // [email protected] // [email protected] // "first last"@host.com // "first@last"@host.com // [email protected] // first.last@[123.123.123.123] // // Invalid Addresses: // // first [email protected] // // //////////////////////////////////////////////////////////////////////////////////////////////// function tep_validate_email($email) { $valid_address = true; $mail_pat = '^(.+)@(.+)$'; $valid_chars = "[^] \(\)<>@,;:\.\\\"\[]"; $atom = "$valid_chars+"; $quoted_user='(\"[^\"]*\")'; $word = "($atom|$quoted_user)"; $user_pat = "^$word(\.$word)*$"; $ip_domain_pat='^\[([0-9]{1,3})\.([0-9]{1,3})\.([0-9]{1,3})\.([0-9]{1,3})\]$'; $domain_pat = "^$atom(\.$atom)*$"; if (preg_match('/^(' . $mail_pat . ')(;q=[0-9]\\.[0-9])?$/i', $email, $components)) { $user = $components[1]; $domain = $components[2]; // validate user if (preg_match('/^(' . $user_pat . ')(;q=[0-9]\\.[0-9])?$/i', $user)) { // validate domain if (eregi($ip_domain_pat, $domain, $ip_components)) { // this is an IP address for ($i=1;$i<=4;$i++) { if ($ip_components[$i] > 255) { $valid_address = false; break; } } } else { // Domain is a name, not an IP if (eregi($domain_pat, $domain)) { // domain name seems valid, but now make sure that it ends in a valid TLD or ccTLD and that there's a hostname preceding the domain or country. $domain_components = explode(".", $domain); // Make sure there's a host name preceding the domain. if (sizeof($domain_components) < 2) { $valid_address = false; } else { $top_level_domain = strtolower($domain_components[sizeof($domain_components)-1]); // Allow all 2-letter TLDs (ccTLDs) if (eregi('^[a-z][a-z]$', $top_level_domain) != 1) { $tld_pattern = ''; // Get authorized TLDs from text file $tlds = file(DIR_WS_INCLUDES . 'tld.txt'); while (list(,$line) = each($tlds)) { // Get rid of comments $words = explode('#', $line); $tld = trim($words[0]); // TLDs should be 3 letters or more if (eregi('^[a-z]{3,}$', $tld) == 1) { $tld_pattern .= '^' . $tld . '$|'; } } // Remove last '|' $tld_pattern = substr($tld_pattern, 0, -1); if (eregi("$tld_pattern", $top_level_domain) == 0) { $valid_address = false; } } } } else { $valid_address = false; } } } else { $valid_address = false; } } else { $valid_address = false; } if ($valid_address && ENTRY_EMAIL_ADDRESS_CHECK == 'true') { if (!checkdnsrr($domain, "MX") && !checkdnsrr($domain, "A")) { $valid_address = false; } } return $valid_address; } Waiting for any kind response... Thanks
Recommended Posts
Archived
This topic is now archived and is closed to further replies.