2010-01-22 7 views
5

Est-il correct d'utiliser ce code pour couper et échapper tous les postes dans ma fonction de registre? ou est-il une meilleure pratique pour couper et échapper à chacun et à chaque entréeEst-ce intelligent ou non?

// Trim and sanitize our input 
$_POST = array_map('trim', $_POST); 
$_POST = array_map('mysql_real_escape_string', $_POST); 

if (invalidinput) dostuff 
else insert into user (username,passwd) values ('{$_POST['username']}','{$_POST['passwd']}') 

Répondre

9

Non, parce que:

  1. Il ne fonctionne pas pour les tableaux multidimensionnels.
  2. Vous ne pouvez pas utiliser chaque valeur $_POST en tant que paramètre DB et donc 3).
  3. Il peut être inutilement lent.
  4. mysql_real_escape_string() peut avoir besoin de l'argument $link_identifier.

Le point # 1 peut être élaboré avec une fonction récursive personnalisée, au prix d'être encore plus lent.

0

No.

Vous ne devriez pas être fuyez en premier lieu. Vous devriez utiliser des paramètres liés.

+1

Je préfère certainement les paramètres liés, mais tant que vous faites quelque chose pour échapper correctement votre entrée SQL, il n'y a aucun mal à ne pas les utiliser. –