All pastes #290809 Raw Edit

Something

public xml v1 · immutable
#290809 ·published 2006-12-24 11:23 UTC
rendered paste body
<?phpclass validator {	function __construct($scheme, $isFile) {		$this->errors = null;		if ($isFile) {			$this->scheme = simplexml_load_file($scheme);		}		else {			$this->scheme = simplexml_load_string($scheme);		}		// foreach validation section		foreach($this->scheme as $name => $node) {			if ((string) $name != 'errors') {				$validator = (string) $name['validator'];				// foreach field				foreach($node->fields as $field) {					$requestObject = $this->getReference($field['type']);					eval("$validator::check({$field['id']}, {&$requestObject}))");				}				echo (string)  . '<br>';			}		}		die();		$this->prepareErrorArray();	}	private function addError($field, $name, $error, $otherData = null) {		$error = str_replace('*field*', (string) $name, (string) $error);		if (is_array($otherData)) {			foreach($otherData as $key => $data) {				$error = str_replace("*$key*", $data, $error);			}		}		$this->errors[(string) $field] = $error;	}	private function prepareErrorArray() {		var_dump($this->errors);	}	private function getReference($type) {		switch($type) {			case 'get':				return $_GET;				break;			case 'post':				return $_POST;				break;			case 'cookie':				return $_COOKIE;			case 'file':				return $_FILES;			default:				throw new Exception('Bad variable type');		}	}}class checkNumeracy extends validator {	static function check($value) {		if (is_numeric($value, $requestObject)) {			return true;		}		else {			return true;		}	}}class checkPresence extends validator {	static function check($value, $requestObject) {		return isset($requestObject[(string) $value]);	}}$scheme = file_get_contents('valid.xml');$v = new validator($scheme, false);