Фильтрация пользовательского ввода - требуется пояснение

Я хотел бы уточнить, как правильно фильтровать вводимые пользователем данные с помощью php. Например, у меня есть веб-форма, в которую пользователь вводит информацию. При отправке данные из формы будут внесены в базу данных.

Насколько я понимаю, вы не хотите дезинфицировать данные, поступающие в базу данных, за исключением экранирования, такого как mysql_escape_string, вы хотите дезинфицировать их при отображении во внешнем интерфейсе с помощью чего-то вроде htmlentities или htmlspecialchars. Однако, если вы хотите, вы можете проверить / отфильтровать ввод пользователя при отправке формы, чтобы убедиться, что данные находятся в правильном формате, например, если поле предназначено для адреса электронной почты, который вы хотите проверить, имеет ли он правильный формат электронной почты. Это правильно?

Мой следующий вопрос: что вы делаете с данными, когда повторно отображаете их в веб-форме? Допустим, пользователю разрешено редактировать информацию в этой форме после того, как он заполнил ее и информация была добавлена ​​в базу данных. Затем они возвращаются и просматривают данные в полях, которые они изначально ввели. Вам нужно очистить данные, чтобы они правильно отображались в полях формы? Например, есть поле «Моя должность», человек вводит «Мой титул» - «Менеджер».Вы видите цитаты вокруг менеджера, когда вы показываете его как есть в поле формы, оно ломается из-за цитат:

<input type="text" name="title" value="My title is "Manager"">

Так разве вам не нужно делать что-то вроде htmlentities, чтобы превратить цитаты в его html-сущности? В противном случае значение поля будет выглядеть так, как будто Мое название

Надеюсь, это имеет смысл.

1
задан kiamlaluno 5 September 2010 в 04:06
поделиться