mirror of
https://github.com/optim-enterprises-bv/control-pane.git
synced 2025-10-29 17:12:20 +00:00
147 lines
3.4 KiB
PHP
147 lines
3.4 KiB
PHP
<?php
|
|
|
|
class Validate {
|
|
|
|
private $f;
|
|
|
|
function __construct(array $pool)
|
|
{
|
|
$this->f = $pool;
|
|
}
|
|
|
|
public static function short_string($string, $exact_len = 0)
|
|
{
|
|
if (filter_var($string, FILTER_SANITIZE_STRING) != $string){
|
|
throw new Exception($string." string did not pass the validation");
|
|
}
|
|
$len = strlen($string);
|
|
if ($exact_len > 0){
|
|
if ($len != $exact_len) {
|
|
throw new Exception($string." string did not pass the lenght validation");
|
|
}
|
|
} else {
|
|
if ($len < 1 || $len > 34){
|
|
throw new Exception($string." string did not pass the lenght validation");
|
|
}
|
|
}
|
|
}
|
|
|
|
public static function url($url)
|
|
{
|
|
if (filter_var($url, FILTER_SANITIZE_URL) != $url){
|
|
throw new Exception($string." string did not pass the validation");
|
|
}
|
|
}
|
|
|
|
public static function long_string($string)
|
|
{
|
|
if (filter_var($string, FILTER_SANITIZE_STRING) != $string){
|
|
throw new Exception($string." string did not pass the validation");
|
|
}
|
|
$len = strlen($string);
|
|
if ($len < 1 || $len > 150){
|
|
throw new Exception($string." string did not pass the lenght validation");
|
|
}
|
|
}
|
|
|
|
public function exists($key)
|
|
{
|
|
return isset($this->f[$key]);
|
|
}
|
|
|
|
public function add_default($key, $val)
|
|
{
|
|
// NOTE this appends to f and it will stay there
|
|
if (!isset($this->f[$key])){
|
|
$this->f[$key] = $val;
|
|
}
|
|
}
|
|
|
|
public function all()
|
|
{
|
|
foreach($this->f as $f){
|
|
if (filter_var($f, FILTER_SANITIZE_STRING) != $f){
|
|
throw new Exception($f." string did not pass the validation");
|
|
}
|
|
}
|
|
|
|
return $this->f;
|
|
}
|
|
|
|
public function these(array $list)
|
|
{
|
|
if (empty($this->f)) {
|
|
throw new Exception("Validation data pool is empty");
|
|
}
|
|
|
|
foreach($list as $e => $type){
|
|
if (!isset($this->f[$e])){
|
|
throw new Exception($e.' is not set in form');
|
|
}
|
|
}
|
|
|
|
$r = [];
|
|
|
|
foreach($list as $e => $type){
|
|
|
|
switch($type){
|
|
case 1: # INT
|
|
$r[$e] = (int)$this->f[$e];
|
|
break;
|
|
case 2: # INT 0 not accepted
|
|
$r[$e] = (int)$this->f[$e];
|
|
if($r[$e] == 0){
|
|
throw new Exception($e." can't be 0");
|
|
}
|
|
break;
|
|
case 3: # SHORT STRING
|
|
if (filter_var($e, FILTER_SANITIZE_STRING) != $e){
|
|
throw new Exception($e." string did not pass the validation");
|
|
}
|
|
$len = strlen($this->f[$e]);
|
|
if ($len < 1 || $len > 34){
|
|
throw new Exception($e." string did not pass the lenght validation");
|
|
}
|
|
$r[$e] = $this->f[$e];
|
|
break;
|
|
case 4: # LONG STRING
|
|
if (filter_var($e, FILTER_SANITIZE_STRING) != $e){
|
|
throw new Exception($e." string did not pass the validation");
|
|
}
|
|
$len = strlen($this->f[$e]);
|
|
if ($len < 1 || $len > 150){
|
|
throw new Exception($e." string did not pass the lenght validation");
|
|
}
|
|
$r[$e] = $this->f[$e];
|
|
break;
|
|
case 5: # STRING WITH SPECIAL CHARS
|
|
if (filter_var($e, FILTER_SANITIZE_SPECIAL_CHARS) != $e){
|
|
throw new Exception($e." string did not pass the validation");
|
|
}
|
|
$len = strlen($this->f[$e]);
|
|
if ($len < 1 || $len > 20){
|
|
throw new Exception($e." string did not pass the lenght validation");
|
|
}
|
|
$r[$e] = $this->f[$e];
|
|
break;
|
|
case 6: # IP v4
|
|
if (filter_var($e, FILTER_FLAG_IPV4) != $e){
|
|
throw new Exception($e." string did not pass the validation");
|
|
}
|
|
$r[$e] = $this->f[$e];
|
|
break;
|
|
}
|
|
|
|
switch($e){
|
|
case 'password':
|
|
if ($len < 6){
|
|
throw new Exception("Minimal password lenght is 6");
|
|
}
|
|
break;
|
|
}
|
|
}
|
|
|
|
return $r;
|
|
}
|
|
|
|
} |