if ($fldVal != "") {
                            $arInd .= "-" . $fldVal;
                        }
                        break;
                }
            }
        }
    }
}
if (($fp2 = fopen($filename2, "r")) == false) {
    die("Can't open data file '{$filename2}'.\n");
}
$regByType = array();
$currArInd = "";
$addedToRC = false;
while ($inString = read_file_line($fp2)) {
    //Add new registrant to appropriate category
    list($lname, $fname) = explode(',', $inString);
    if ($fname == "") {
        //this is a heading in the file
        $currArInd = trim($lname);
        if ($arInd == $currArInd) {
            //This is the category the person has registered for
            list($regFName, $regLName) = explode(" ", $name);
            //Split name into components
            //Add new registrant's name to array
            $regByType[$currArInd] = $regLName . "," . $regFName;
            $addedToRC = true;
        }
    } else {
        //This is a name in the file - just add them to the array for writing back to the file
Exemplo n.º 2
0
function check_banlist($logOnBan, $email)
{
    global $errors, $scriptName, $banListFile;
    $notAllowed = false;
    $banList = array();
    if ($fp = @fopen($banListFile, "r")) {
        while ($inString = read_file_line($fp)) {
            $banList[] = $inString;
        }
        fclose($fp);
    }
    if (count($banList)) {
        $emailFix = trim(strtolower($email));
        $remoteHostFix = trim(strtolower($_SERVER['REMOTE_HOST']));
        foreach ($banList as $banned) {
            $banFix = trim(strtolower(ereg_replace('\\.', '\\.', $banned)));
            if (strstr($banFix, "@")) {
                if (ereg('^@', $banFix)) {
                    $banFix = ereg_replace('^@', '[@\\.]', $banFix);
                    if ($notAllowed = ereg("{$banFix}\$", $emailFix)) {
                        $bannedOn = $emailFix;
                        break;
                    }
                } elseif (ereg('@$', $banFix)) {
                    if ($notAllowed = ereg("^{$banFix}", $emailFix)) {
                        $bannedOn = $emailFix;
                        break;
                    }
                } else {
                    if ($notAllowed = strtolower($banned) == $emailFix) {
                        $bannedOn = $emailFix;
                        break;
                    }
                }
            } elseif (preg_match('/^\\d{1,3}(\\\\.\\d{1,3}){0,3}(\\/\\d{1,2})?$/', $banFix)) {
                if ($notAllowed = check_ip($banFix, $_SERVER['REMOTE_ADDR'])) {
                    $bannedOn = $_SERVER['REMOTE_ADDR'];
                    break;
                }
                if (!empty($_SERVER['HTTP_X_FORWARDED_FOR'])) {
                    if ($notAllowed = check_ip($banFix, $_SERVER['HTTP_X_FORWARDED_FOR'])) {
                        $bannedOn = $_SERVER['HTTP_X_FORWARDED_FOR'];
                        break;
                    }
                }
            } else {
                if ($notAllowed = ereg("{$banFix}\$", $remoteHostFix)) {
                    $bannedOn = $remoteHostFix;
                    break;
                }
            }
        }
    }
    if ($notAllowed) {
        $errors[] = "Attempt from a banned email address, host or domain! ({$bannedOn})";
        if ($logOnBan) {
            error_log("[{$scriptName}] Banned on \"{$bannedOn}\"", 0);
        }
    }
    return $notAllowed;
}