www

Unnamed repository; edit this file 'description' to name the repository.
Log | Files | Refs

commit c88d80205d5a3f6380a1a25863cb5f50a83404b8
parent 39611da89f83c2a9be44901be913d0bdd16b2ad6
Author: John Charron <rm_rf_windows@yahoo.fr>
Date:   Thu, 17 Feb 2011 20:24:41 +0100

Ajout de la classe qui pourrait peut-ĂȘtre nous faciliter la gestion des formulaires

Diffstat:
Acode/serveur/php/FormValidator.php | 165+++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
1 file changed, 165 insertions(+), 0 deletions(-)

diff --git a/code/serveur/php/FormValidator.php b/code/serveur/php/FormValidator.php @@ -0,0 +1,165 @@ +<?php +/** + * The purpose of this class is to facilitate form writing in php. + * It does this by: + * - facilitating value retrieval with reduced complex $_POST['var'] or + * $_GET['var'] syntax + * - encapsulates all primary form validation checking within a single class + * + */ +class FormValidator { + + /** array of error codes */ + private $arErrors; + /** 'post' or 'get' */ + private $method; + + public function FormValidator($method) { + /** resets array of error codes */ + $this->arErrors = array(); + /** 'post' or 'get' */ + $this->method = $method; + } + + /** + * + * @param <type> $name + * @return <type> + */ + public function getSimpleValue($name) { + switch ($this->method) { + case "post": + if (!is_array($_POST["$name"])) { + return $_POST["$name"]; + } + break; + case "get": + if (!is_array($_GET["$name"])) + return $_GET["$name"]; + break; + default: + echo "ERROR: getSimpleValue() error"; + } + return NULL; + } + + public function getCompoundValue($name) { + switch ($this->method) { + case "post": + if (is_array($_POST["$name"])) + return $_POST["$name"]; + break; + case "get": + if (is_array($_GET["$name"])) + return $_GET["$name"]; + break; + default: + echo "ERROR: getCompoundValue() error"; + } + return NULL; + } + + public function isEmpty($name, $msg) { + $value = $this->getSimpleValue($name); + if (trim($value) == "") { + //$msg += " (not a string) "; + $this->arErrors[] = array("name" => $name, "value" => $value, "msg" => $msg); + return true; + } + return false; + } + + /** + * $type can be any of "boolean", "integer", "double", "string", "array" + * "object", "resource", "NULL", "unknown type" + * @param <type> $type + * @param <type> $name + * @param <type> $msg + * @return <type> + */ + public function isOfType($type, $name, $msg) { + $string = ""; + $value = $this->getSimpleValue($name); + if ($type == gettype($value)) { + return true; + } else { + $msg += "(not a(n) " + $type + ")"; + $this->arErrors[] = array("name" => $name, "value" => $value, + "msg" => $msg); + } + } + + public function isSafeAlphaString($name, $msg) { + $value = $this->getSimpleValue($name); + $pattern = "/^[a-zA-Z]+$/"; + if (!preg_match($pattern, $value)) { + $this->arErrors[] = array("name" => $name, "value" => $value, "msg" => $msg); + return false; + } + return true; + } + + public function isSafeNumericString($name, $msg) { + $value = $this->getSimpleValue($name); + $pattern = "/^-*([0-9]+|[0-9]*\.[0-9]+)$/"; + if (preg_match($pattern, $value)) { + $this->arErrors[] = array("name" => $name, "value" => $value, "msg" => $msg); + return false; + } + return true; + } + + public function isSafeAlphaNumeric($name, $msg) { + $value = $this->getSimpleValue($name); + $pattern = "/^([a-zA-Z0-9])+([\.\-_][a-zA-Z0-9]*)*/"; + // TODO: Make is so that you can only have one . or - or _ in a row + if (!preg_match($pattern, $value)) { + $this->arErrors[] = array("name" => $name, "value" => $value, "msg" => $msg); + return false; + } return true; + } + + + public function isWithin($name, $min, $max, $msg) { + $value = $this->getSimpleValue($field); + if (!is_numeric($value) || $value < $min || $value > $max) { + $this->arErrors[] = array("name" => $name, "value" => $value, "msg" => $msg); + return false; + } return true; + } + + public function isSafeValidEmail($name, $msg) { + $value = $this->getSimpleValue($name); + //$pattern = "/^([a-zA-Z0-9])+([\.a-zA-Z0-9_-])*@([a-zA-Z0-9_-])+(\.[a-zA-Z0-9_-]+)+/"; + $pattern = "/^([a-zA-Z0-9])+([\.\-_][a-zA-Z0-9]*)*@([a-zA-Z0-9_-])+(\.[a-zA-Z0-9_-]+)+/"; + // TODO: Make is so that you can only have one . or - or _ in a row + if (!preg_match($pattern, $value)) { + $this->arErrors[] = array("name" => $name, "value" => $value, "msg" => $msg); + return false; + } return true; + } + + public function isSafeValidPasssword($name, $msg){ + //TODO:... + } + + public function addCostumErrorMsg($msg){ + $this->arErrors[] = array("name" => "**custom**", "value" => "**costum**", "msg" => $msg); + } + + public function getArErrors() { + return $this->arErrors; + } + + function isValidForm() { + if (sizeof($this->arErrors) > 0) { + return false; + } + return true; + } + + public function getMethod() { + return $this->method; + } +} +?>