<?php
/**
*
* @package luc
* @license http://opensource.org/licenses/gpl-license.php GNU Public License
* @author Emily Brand
*
* Minimum Requirement: PHP 5.2
*/
class Process {
public $post;
public function Process($post) {
$error = false;
$_SESSION['value_array'] = $post;
foreach($post as $k => $v) {
if($k == 'email') {
if(!$this->check_email_address($v) && $v) {
$this->set_error($k, $v);
$error = true;
}
}
if(preg_match("/[<>]+/", $v)) {
$this->set_error($k, $v);
$error = true;
}
}
if($error) header("Location: ".$_SESSION['page']);
else unset($_SESSION['error_array']);
$this->post = $post;
}
function set_error($k, $v) {
if(!$_SESSION['error_array']) $_SESSION['error_array'] = array($k=>$v);
else $_SESSION['error_array'] = array_merge($_SESSION['error_array'], array($k=>$v));
}
public function getPost() {
return $this->post;
}
function check_email_address($email) {
// First, we check that there's one @ symbol,
// and that the lengths are right.
if (!ereg("^[^@]{1,64}@[^@]{1,255}$", $email)) {
// Email invalid because wrong number of characters
// in one section or wrong number of @ symbols.
return false;
}
// Split it into sections to make life easier
$email_array = explode("@", $email);
$local_array = explode(".", $email_array[0]);
for ($i = 0; $i < sizeof($local_array); $i++) {
if
(!ereg("^(([A-Za-z0-9!#$%&'*+/=?^_`{|}~-][A-Za-z0-9!#$%&'*+/=?^_`{|}~\.-]{0,63})|(\"[^(\\|\")]{0,62}\"))$",
$local_array[$i])) {
return false;
}
}
// Check if domain is IP. If not,
// it should be valid domain name
if (!ereg("^\[?[0-9\.]+\]?$", $email_array[1])) {
$domain_array = explode(".", $email_array[1]);
if (sizeof($domain_array) < 2) {
return false; // Not enough parts to domain
}
for ($i = 0; $i < sizeof($domain_array); $i++) {
if
(!ereg("^(([A-Za-z0-9][A-Za-z0-9-]{0,61}[A-Za-z0-9])|([A-Za-z0-9]+))$", $domain_array[$i])) {
return false;
}
}
}
return true;
}
}
?>