Sur allvisio dans ton defaultController:
- test du userAgent:
if (preg_match('/iphone/i',$ua) || preg_match('/ipad/i',$ua) || preg_match('/ipod/i',$ua))
Il s'agit de rechercher des chaînes littérales, autant utiliser stripos ça ira plus vite. Ou une mise en facteur: if (preg_match('/ip(?:[oa]d|hone)/i', $ua)) ou en utilisant le modificateur "Study" pour rester lisible et profiter d'une recherche rapide pour chacune des branches: if (preg_match('/iphone|ipad|ipod/Si', $ua)). (Cela dit la différence de performance n'est pas très importante dans ce cas de figure, c'est une broutille, il s'agit plus d'utiliser "une bonne façon".)
- test de l'email:
if($email != "" || preg_match("#^[a-z0-9._-]+@[a-z0-9._-]{2,}\.[a-z]{2,4}$#", $email))
PHP dispose de filter_var avec l'option FILTER_VALIDATE_EMAIL qui acceptera bien plus d'emails correct que ta pattern.
- test de l'extension:
if(preg_match('/(.php|.php2|.php3|.html|.htm|.xml|.xhtml|.asp|.css|.cfm|%00)/', $nomF))
Là c'est carrément faux, le point représente n'importe quel caractère (sauf un saut de ligne) dans une pattern, pour décrire le caractère . tu dois l'échapper: \.. De plus, vue qu'elle n'est pas ancrée rien ne prouve que ".php" est l'extension du nom de fichier, exemple: jesuislefichiertextediabolique.php.txt.
Sinon symfony a le service Validator qui peut servir à ce genre de choses.
- ligne 189:
1 2 3
| } else {
if ( in_array($ext, $pattern) ) { |
} elseif ( in_array($ext, $pattern) ) {
évitera un niveau d'imbrication.
Partager