function escape($value){ $magic_quotes_active = get_magic_quotes_gpc(); $new_enough_php = function_exists("mysql_real_escape_string"); if ($new_enough_php) { if ($magic_quotes_active) { $value = stripslashes($value); $value = mysql_real_escape_string($value); } elseif (!$magic_quotes_active) { $value = addslashes($value); } return $value; } }
Долгое время я использовал функцию выше для escape-строки? Теперь, я хочу спросить, что мне нужно использовать эту функцию (я обнаружил, что через Интернет для экранирования строки, которая работает с большинством версий PHP)? ИЛИ Что делает вещи излишне сложными?
Нет, вы должны, по сути, избегать использования таких функций любой ценой! То, что вы должны изучать, – это использование подготовленных заявлений.
Проверьте страницы документа любой из функций mysql_*
и обратите внимание на красную предупреждающую вещь: расширение начало процесс устаревания, вместо этого предлагается PDO
или mysqli_*
.
Чтобы избежать инъекций, подготовленные заявления – это то, что вы должны использовать … прочитайте пару статей по этому вопросу и mysqli_*
преимущества как PDO
и mysqli_*
. Это, я боюсь, единственный путь вперед …
Вам не нужны такие функции. Обычно достаточно использовать addslashes(...)
. В особых случаях см. Документацию, например, @Elias Van Ootegem.