2010-01-22 5 views
5

Можно ли использовать этот код для обрезки и удаления всех сообщений в моей функции регистрации? или лучше практика, чтобы обрезать и убежать каждый входыЯвляется ли это умным или нет?

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

ответ

9

Нет, потому что:

  1. Это не работает для многомерных массивов.
  2. Вы можете не использовать каждое значение $_POST в качестве параметра БД и, следовательно, 3).
  3. Это может быть излишне медленным.
  4. mysql_real_escape_string() может потребоваться аргумент $link_identifier.

Пункт №1 может быть разработан с помощью специальной рекурсивной функции за счет еще более медленной работы.

0

No.

Вы не должны бежать в первую очередь. Вы должны использовать связанные параметры.

+1

Я, конечно, также предпочитаю связанные параметры, но пока вы делаете что-то, чтобы должным образом избежать ввода SQL, нет никакого вреда в том, что вы их не используете. –