2010-08-29 4 views
1

sur mon site web J'ai une section commentaire. Je veux filtrer et valider l'entrée avant de la stocker dans ma base de données. S'il y a des caractères invalides dans l'entrée, l'utilisateur reçoit l'avis que son entrée est invalide.Comment filtrer et valider les entrées utilisateur dans Zend Framework

Ma question, quels caractères ne sont pas autorisés? par exemple. Je veux éviter les injections sql

Les tags ne sont pas autorisés. Comment puis-je vérifier cela?

Répondre

2

Si vous utilisez Zend_Db et les requêtes paramétrées (c'est-à-dire $adapter->insert($tableName, array('param' => 'value'))), il s'automatise automatiquement pour vous.

Si toutefois vous souhaitez valider davantage l'entrée d'utilisateur, un coup d'oeil à Zend_Validate et Zend_Filter

De plus, si par « tags » vous voulez dire des balises HTML, je ne ferais rien à ceux de l'entrée, mais faire assurez-vous d'échapper correctement/les bande sur la sortie (un coup d'oeil à htmlspecialchars())

Si vous souhaitez afficher un message d'erreur si l'entrée contient des balises HTML, et en supposant $comment est le corps de commentaire, vous pouvez essayer:

if(strip_tags($comment) !== $comment) { 
    // It seems it contained some html tags 
} 
+0

merci, j'échappe déjà à des choses en sortie. mais pourquoi devrais-je autoriser l'utilisateur à entrer des balises html. Je veux un message d'erreur à afficher que l'entrée est invalide –

+0

modifié la réponse avec un exemple sur la façon d'afficher un message d'erreur s'il contient des balises html. Je ne suis pas sûr du contexte du commentaire, mais il est généralement inoffensif d'autoriser mais d'échapper les balises html. Par exemple, si vous utilisiez un site Web sur le développement Web, le commentateur pourrait peut-être inclure des balises HTML à titre d'exemple. –

Questions connexes