2010-01-22 15 views
5

È corretto usare questo codice per tagliare e sfuggire a tutti i post nella mia funzione di registro? o è meglio la pratica di tagliare e fuggire ciascuno e ogni ingressiÈ intelligente o no?

// 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']}') 

risposta

9

No, perché:

  1. Non funziona per gli array multidimensionali.
  2. Non è possibile utilizzare ogni singolo valore $_POST come parametro DB e quindi 3).
  3. Può essere inutilmente lento.
  4. mysql_real_escape_string() potrebbe essere necessario l'argomento $link_identifier.

Il punto n. 1 può essere elaborato con una funzione ricorsiva personalizzata, a scapito di essere ancora più lento.

0

No.

Non si dovrebbe essere fuggendo in primo luogo. Dovresti utilizzare i parametri associati.

+1

Sicuramente preferisco i parametri associati, ma finché si sta facendo qualcosa per evitare correttamente l'input SQL, non c'è nulla di male a non usarli. –