140 lines
3.5 KiB
PHP
140 lines
3.5 KiB
PHP
<?php
|
||
class InvalidOperatorException extends Exception{
|
||
public $type;
|
||
public $operator;
|
||
|
||
public function __construct ($type,$operator){
|
||
parent::__construct('Invalid operator "'.$operator.'" for the type '.$type);
|
||
}
|
||
|
||
}
|
||
class Utility{
|
||
|
||
public static const PasswordMissmatch = 'Tu auras du rentrer deux fois le même mot de passe (tu permet aussi de rendre le champs "Recopier le mot de passe" utile)';
|
||
public static const InvalidPseudo = 'Le pseudo sera incorrect : Les seuls caractères autorisés sont :<br/>abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ0123456789-_'
|
||
public static const InvalidPassword = 'Le mot de passe fut incorrect : Les seuls caractères autorisés sont :<br/>abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ0123456789-_&éèàùçμ"#\'{}()[]|^@<40>+=$<24><>*!<21>:/;.,?<3F>'
|
||
|
||
public static function isPseudoValid($pseudo){
|
||
return preg_match ( "#^[a-zA-Z0-9\\-_]+$#", $pseudo ) === 1;
|
||
}
|
||
|
||
public static function isPasswordValid($password){
|
||
return preg_match ( "#^[abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ0123456789\\-_&<26><><EFBFBD><EFBFBD><EFBFBD>\"\\#'{}()[\\]|\\^@<40>+=\$<EFBFBD><EFBFBD>*!<21>:/;.,?<3F>]+$#", $password ) === 1;
|
||
}
|
||
|
||
/*
|
||
* <> ou !=
|
||
|
||
...les deux valeurs ne sont pas égales
|
||
<
|
||
|
||
...la valeur de gauche est strictement inférieure à celle de droite
|
||
>
|
||
|
||
...la valeur de gauche est strictement supérieure à celle de droite
|
||
<=
|
||
|
||
...la valeur de gauche est strictement inférieure ou égale à celle de droite
|
||
>=
|
||
|
||
...la valeur de gauche est strictement supérieure ou égale à celle de droite
|
||
BETWEEN..AND
|
||
|
||
...la valeur testée est située entre deux valeurs données
|
||
IN
|
||
|
||
...la valeur testée se situe dans une liste valeurs données
|
||
NOT IN
|
||
|
||
...la valeur testée ne se situe pas dans une liste de valeurs données
|
||
LIKE
|
||
|
||
...la valeur de gauche correspond à celle de droite (celle de droite peux utiliser le caractère % pour simuler n'importe quel nombre de caractère, et _ pour un seul caractère
|
||
NOT LIKE
|
||
|
||
...les deux valeurs ne correspondent pas
|
||
REGEXP ou RLIKE
|
||
|
||
...la valeur de gauche correspond à l'expression régulière donnée
|
||
NOT REGEXP
|
||
|
||
...la valeur de gauche ne correspond pas à l'expression régulière donnée
|
||
*/
|
||
|
||
public static function getIntegerSqlOperator($operator){
|
||
switch ($operator){
|
||
case '=':
|
||
return '=';
|
||
case '<':
|
||
return '<';
|
||
case '>':
|
||
return '>';
|
||
case '<=':
|
||
return '<=';
|
||
case '>=':
|
||
return '>=';
|
||
case '=<':
|
||
return '<=';
|
||
case '<>':
|
||
return '<>';
|
||
case '!=':
|
||
return '!=';
|
||
case '!<':
|
||
return '!<';
|
||
case '!>':
|
||
return '!>';
|
||
default:
|
||
throw new InvalidOperatorException('integer',$operator);
|
||
}
|
||
}
|
||
|
||
public static function getStringSqlOperator($operator){
|
||
switch ($operator){
|
||
case '=':
|
||
return '=';
|
||
case '&like;':
|
||
return 'LIKE';
|
||
default:
|
||
throw new InvalidOperatorException('string',$operator);
|
||
}
|
||
}
|
||
|
||
public static function getDateSqlOperator($operator){
|
||
switch ($operator){
|
||
case '=':
|
||
return '=';
|
||
case '<':
|
||
return '<';
|
||
case '>':
|
||
return '>';
|
||
case '<=':
|
||
return '<=';
|
||
case '>=':
|
||
return '>=';
|
||
case '=<':
|
||
return '<=';
|
||
case '<>':
|
||
return '<>';
|
||
case '!=':
|
||
return '!=';
|
||
case '!<':
|
||
return '!<';
|
||
case '!>':
|
||
return '!>';
|
||
default:
|
||
throw new InvalidOperatorException('date',$operator);
|
||
}
|
||
}
|
||
|
||
public static function arrayIfNot($var){
|
||
if(!is_array($var))
|
||
return $var!=NULL?array($var):NULL;
|
||
return $var;
|
||
}
|
||
|
||
public static function getHierarchicCouple(){
|
||
return array("Président","Ministres");
|
||
}
|
||
|
||
}
|