Bonjour a tous
J'ai un petit souci avec le preg_match. quand je lance ma page php il m'arrive un message erreur me disant ceci
Delimiter must not be alphanumeric or backslash
Il me dis que j'ai un problème de délimiteur.
Dans la classe que utilise pour tester ce que l'utilisateur insère dans les formulaire j'ai des constante avec plusieurs expression différente selon je que je veux tester. Elle on toute le caractère # comme délimiteur. Je ne comprend pas pourquoi cela ne marche pas
voici une partie de ma classe
L'erreur est dans la methode isValidFormat
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73 class Chaine{ private $chaine; private $str_const; private $error_message; private $valide_message; /** * Constante permettant un controle standard d'une chaine * La chaine peux contenir uniquement des chiffre et lettre * chiffre 0..9 lettre a..z et A..Z */ const EXPREG_STANDARD = "#[a-zA-Z0-9\-']$#"; /** * Constante permettant un controle pour une addresse email */ const EXPREG_EMAIL = "#^[a-zA-Z0-9\-\._]+@[a-zA-Z0-9\-]+\.[a-zA-Z0-9]+$#"; /** * Constante permet de controler que certain caractère ne sont pas dans la chaine * Les caractère suivant sont controler: < > _ \ . = */ const EXPREG_NOT_IN = "#[^<>_/\\.=]+$#"; /** * Constante permet de controler que certain caractère ne sont pas dans la chaine standards * Les caractère suivant sont controler: < > _ \ = */ const EXPREG_NOT_IN_STANDARD_STRING = "#[<>_/\\=]+$#"; /** * Constante permet de controler si la chaine est numerique */ const EXPREG_NUMERIC = "#[0-9]$#"; /** * Constante permet de controler si la variable action contient uniquement 1,2 ou 3 */ const EXPREG_NUMERIC_FOR_VAR_ACTION = "#1|2|3#"; /** * Constante permet de controler si les varaible d'authentification sont formater correctement. * Les lettres a..z et A..Z, les chiffres 0..9 et les caracteres _ - . sont acceptes. */ const EXPREG_AUTH = "#^[a-zA-Z0-9_\-\.]+$#"; /** * Constante permet de controler si la date est formater correctement. * Format de la date (jj-mm-aaaa). * @example 11-12-2011 */ const EXPREG_DATE = "#[0-9]{2}+\.[0-9]{2}+\.[0-9]{4}$#"; /** * Constante permet de configurer la longueur min de la chaine pour Authentification. * Ceci pour le nom d'utilisateur et le mot de passe. */ public function __construct($chaine){ $this->setChaine($chaine); } /** * Chaine::setChaine() * * @param mixed $chaine * @return */ function setChaine($value){ $this->chaine = $value; } /** * Chaine::isValidFormat() * * @return boolean true si la chaine est correct et false si la chaine ne correpond pas au critère; */ public function isValidFormat(){ //echo $this->getChaine()." ".$this->getConst()."<br />"; return preg_match($this->getConst(),$this->getChaine()); }
Merci d'avance pour toute l'aide que vous pourrez m'ammener
Di Blasio Michael
Partager