Je ne veux pas accepter les balises HTML. Je pense que
Peut-être, mais pas si vous voulez permettre aux gens de taper « < «/»> » caractères qui signifient simplement moins que et supérieur, je devrais au moins utiliser strip_tags() et Aren » Rien à voir avec les tags. Lors de la saisie de champs de texte libre, vous ne voulez pas vraiment filtrer beaucoup plus que les caractères de contrôle non-retour (que vous ne voulez généralement pas) et, si vous utilisez UTF-8, séquences invalides/redondantes.
Ensuite, lorsque vous la sortie de la valeur à la page que vous aurez bien sûr ne pas oublier d'utiliser htmlspecialchars() de sorte que « < » obtient échappées à « & lt; » et apparaît comme un littéral « < » à l'écran, à droite ? Vous devez utiliser htmlspecialchars() chaque fois que vous affichez une valeur de texte en HTML dans un modèle, que cette chaîne provienne d'une soumission de formulaire, de la base de données ou d'un autre emplacement.
Pour les champs non-libres où vous voulez que toutes les entrées correspondent à un format restreint particulier, alors oui, une expression rationnelle peut être un bon moyen de faire correspondre cela.
et addslashes().
addslashes() est presque toujours la mauvaise chose. Une bonne règle est: ne l'utilisez pas. Addslashes() est inadéquat pour l'échappement SQL, car il ne correspond pas au format d'échappement littéral de la chaîne SQL, vous pouvez donc construire des chaînes qui sont encore dangereuses quand addslashed. Lorsque vous utilisez MySQL, vous devez utiliser mysql_real_escape_string() à la place. D'autres bases de données ont leurs propres fonctions d'échappement. Utilisez-les (ou, plus facilement, utilisez des requêtes paramétrées afin de ne pas avoir à extraire du texte manuellement vers SQL).
(addslashes() est insuffisant pour HTML échapper parce qu'il ne tente pas de faire quoi que ce soit avec les caractères spéciaux HTML à tous. Ce n'est pas ce qu'il est pour.)
Dans tous les cas, en essayant de faire face à output- s'échapper à l'étape de filtrage d'entrée est en arrière. Au lieu de cela, gardez toutes les chaînes internes à votre application en tant que texte brut, et échappez-les à la sortie de l'application: mysql_real_escape_string quand elles sortent pour prendre part à une requête SQL, htmlspecialchars() quand elles vont sur une page HTML, et ainsi de suite.
Je pense que Cornify est cool. – lynn
utilisez-vous simplement le prénom et le nom comme entrées? Si c'est le cas, regex serait un moyen rapide de déterminer la validité. vérifiez simplement s'il y a des caractères ou des nombres valides. – Mark