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
Function
How can I make this function that once you click the link in the code it takes you to a new page wit
Problem with PHP code- simple contact form
Hi Folks,
I'm relativily new to PHP; I know HTML and CSS stuff but I have a problem- I have a co
retrieving images from mysql database using php
So I've been trying to figure out how to store images in a mysql database, and as far as i can tell
include function being weird?
I have a very simple system to grab an IP outputted by a PHP file.. (for a project I have) but it ou
Php WordPress help
I am writing the following code for making a plugin
<?php
header("Content-Type
EXplanation help
Hey all,
I am still fairly new to PHP programming and I am trying to put together a page wher
Need help/w Page: 1,2,3,4 function!
So I have this code im working on where it's ment to display seperate pages having 20 logs each
I
Retrieving Data from Two Different Databases
Hello All,
Ran into another problem and would appreciate some help! I have two datab
Breaking results into week blocks
I have a set of dates (and times), which are returned from a mySQL query.
These usually span
Little problem with form insertion in MySQL, Please help!!!
Hi!,
I'm a little bit new with php and I have a little issue here. I created a webform to ins