Variable passed to each() is not an array or object
         
               Posted on 
16th Feb 2014 07:03 pm by  
admin
        
        Hi,
This is a email a friend type of form, and it isn't working anymore.
<?
  function validate_email($email, $location) {
    $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
		    $file_t = $location . "functions/tld.txt";
                $tlds = file($file_t);
                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;
  }
?>
These are the errors I get:
Warning: failed to open stream: No such file or directory on line 46
Warning: Variable passed to each() is not an array or object on line 47
Warning: eregi() [function.eregi]: REG_EMPTY on line 58
Could someone please help me.
Thank you       
      
       
		No comments posted yet	
	Your Answer:
	        Login to answer
        
140  
 5 
 
    
    
 
Other forums
 Having problemswith multithreading and prime numbers  
I have an assignment when I'm suppose to do the following:
Write a multithreaded Java, Pt
Compare user input to flat file data 
Help...Am a complete newbie to programming so my code is prolly quite long. Am trying to verify a us
Mysterious Timeouts 
I've deployed a few simple AJAX-enabled web page to a local server that is accessed through the Inte
parse error 
Parse error: syntax error, unexpected '[', expecting ')' in /Users/admin/Sites/phptest/array.php on 
Where am I going wrong 
Been trying to work this out for hours  
I have two tables called 'Genres' and 'Films'. Genre
Question about ShowWindow() 
Hello....
I'm struggling with sumpin, and I hope y'all can help.
I've got a CFormView 
PHP Programming error. Please help! 
Hi there,
Am making a website for a friend and have encountered a problem that i need fixing 
Logging and nologging bulk insert   
Hi,
oracle version: 10g Enterprise Edition Release 10.2.0.4.0 - 64bit Production
phph within href not showing php if change ? to & 
Code: [Select]<a href="<?php echo  $puser; ?>?m=<?php=(($m-1)&l
Need help making a blockquote and line items conditional 
I have some code I bought a few years ago that allows my clients to update content on their site usi