У меня есть текстовая область, в которую пользователи также добавляют заметки. На следующей странице я использую $_POST[Comments]
, чтобы показать, что было напечатано. У меня есть кнопка редактирования, чтобы вернуться и посмотреть, что было напечатано, и отредактировать заметки, но когда я показываю $_POST[Comments]
, он показывает все до апострофа.
Пример:
Первоначально набрано: Let's try this.
При редактировании: Let
Теперь, когда я передаю его на сервер для добавления SQL, я использую следующую функцию для защиты от SQL-инъекций.
function keepSafe($value) {
if (get_magic_quotes_gpc()) {
$value = stripslashes($value);
}
if (!is_numeric($value)) {
$value = "'" . mysqli_real_escape_string($value) . "'";
}
return $value;
}
Ниже показано, что я использую для форматирования ввода для вставки SQL.
$Comments = str_replace("\n","<br />",$_POST['CustComments']);
$Comments = keepSafe($_POST['Comments']);
Мне нужно иметь возможность видеть все апострофы в разделе примечаний при редактировании перед отправкой. И я хочу удостовериться, что когда я отправляю, это SQL-инъекция предотвратила безопасный код.
$_POST['CustComments']
, а затем$_POST['Comments']
в своем последнем примере, если это имеет значение (для вас должно быть). Кроме того (не для конкретного ответа), вы должны заменить\r\n
вместо просто\n
(с точки зрения Windows). Также (не для конкретного ответа) вы должны использовать подготовленные операторы вместо вставки прямой переменной (поскольку вы используете mysqli). - person newfurniturey   schedule 05.12.2012