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
moving mouse to display image coordinates
I have an existing MFC application that shows an image in the main window.
I'd like to be able to
How do I get the row number from from an sql table query
Hi all
I have a table that I query and it returns a number of rows.
mysql_num_rows($query)
mr8m - reverse document
Friends,
I'm trying to reverse a document held by MIRO, but it reports the message balan
Please help with SMTP Authenticated PHP Email Form
Hello, I'm creating a PHP email form, and for this particular server, I have to use SMTP Authenticat
The control with ID 'ace' requires a ScriptManager on the page
I'm trying to add a simple AlwaysVisibleControlExtender to my page, but it's not working. I get the
Amend code to allow multiple attachments
Hi
I have a php page that allows the user to browse to a file (image) then sumbit, the confi
Stats of viewers
Hello. I have a website in php and people can login. I want to make an admin control panel where u c
ALV List Display to point to another report on Double Click
Hi,
I want my ALV List Display to point to another report on Double Click on its line ite
php calculate
this code echoes correctly the sum but the inserted result is 0??
Code: <?php
$TotalNum
User registration and login
I don't know whether this is the correct forum, if not i apologise but am pretty desperate at the mo