Jump to content
  • Checkout
  • Login
  • Get in touch

osCommerce

The e-commerce.

problem with validation.php can't verify emails


Guest

Recommended Posts

Fatal error: Call to undefined function: checkdnsrr() in

 

..............catalog\includes\functions\validations.php on line 116

 

????????????

 

<?php

/*

$Id: validations.php,v 1.1.4.4 2003/04/22 17:04:47 serg Exp $

 

osCommerce, Open Source E-Commerce Solutions

http://www.oscommerce.com

 

Copyright © 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 (eregi($mail_pat, $email, $components)) {

$user = $components[1];

$domain = $components[2];

// validate user

if (eregi($user_pat, $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 = true;

}

}

}

}

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;

}

?> :unsure:

Link to comment
Share on other sites

Archived

This topic is now archived and is closed to further replies.

×
×
  • Create New...