Обработка формы
ПОЛУЧИТЬ против ПУБЛИКАЦИИ
1. Как get, так и post создают массивы (например, массив (ключ = > значение, ключ2 = > Значение 2, Ключ3 = > значение 3,…). Этот массив содержит пары ключ/значение, где ключ-это имя элемента управления формой, а значение-входные данные пользователя.
2. Get и post рассматриваются как$_ Get и$_ POST.Они являются супер глобальными переменными, что означает, что доступ к ним не нужно ограничивать – вы можете получить к ним доступ из любой функции, класса или файла без какого-либо специального кода.
3. Режим передачи
$5 Get-это массив переменных, передаваемых текущему сценарию через параметр URL. $5 Post-это массив переменных, передаваемых текущему сценарию через HTTP post.
(1) Когда использовать get?
Информация, отправленная из формы с помощью метода get, видна любому (все имена и значения переменных отображаются в URL-адресе). Get также ограничивает объем отправляемой информации. Он ограничен примерно 2000 символами.
Get можно использовать для отправки конфиденциальных данных.
Примечание: никогда не используйте get для отправки паролей или другой конфиденциальной информации!
(2) Когда использовать почту?
Информация, отправленная из формы с помощью метода post, невидима для других (все имена/значения встроены в тело HTTP-запроса), и объем отправляемой информации не ограничен.
Кроме того, post поддерживает функции высокого уровня, такие как многосоставный двоичный ввод при загрузке файлов на сервер.
Совет: разработчики предпочитают отправлять данные формы по почте.
Проверка формы
Функция Htmlspecialchars()
Если вы хотите отправить форму на саму страницу, а не переходить на другую страницу. Таким образом, пользователи могут получать сообщения об ошибках на странице формы.
HTML-код формы выглядит следующим образом:
(1) Что это за переменная$_ SERVER[“PHP_ Self “]?
$$5 СЕРВЕР[“PHP_ Self”] – это суперглобальная переменная, которая возвращает имя файла текущего выполняемого сценария. Поэтому$_ SERVER[“PHP_ Self “] отправляет данные формы на саму страницу, а не переходит на другую страницу. Таким образом, пользователи могут получать сообщения об ошибках на странице формы.
(2) Что такое функция htmlspecialchars ()?
Функция htmlspecialchars() преобразует специальные символы в объекты HTML. Это означает, что HTML-символы, такие как < и>, заменяются на & lt; и & gt;, а эффект страницы по-прежнему < >. Это предотвращает использование злоумышленниками кода путем введения кода HTML или JavaScript в форму (атаки с использованием межсайтовых сценариев). Если нет функции htmlspecialchars()
URL-адрес для ввода хакером:
http://www.example.com/test_form.php/%22%3E%3Cscript%3Ealert('hacked')%3C/script%3EФорма будет преобразована в:
Типичное отражение XSS
Функция проверки формы:
Обязательные поля для проверки электронной почты и URL-адреса
1. Проверьте имя
Следующий код показывает простой способ проверить, содержит ли поле имени буквы и пробелы. Если поле имя неверно, сохраняется сообщение об ошибке:
$name = test_input($_POST["name"]);
if (!preg_match("/^[a-zA-Z ]*$/",$name)) {
$nameerr = "only letters and spaces are allowed! ";
}2. Проверьте электронную почту
Следующий код показывает простой способ проверки правильности синтаксиса адреса электронной почты. Если нет, сохраняется сообщение об ошибке:
$email = test_input($_POST["email"]);
if (!preg_match("/([\w\-]+\@[\w\-]+\.[\w\-]+)/",$email)) {
$mailerr = "invalid email format! ";
}3. Проверьте URL-адрес
В следующем коде показан метод проверки правильности синтаксиса URL-адреса (это регулярное выражение также допускает косые черты в URL-адресе). Если синтаксис URL-адреса неверен, сохраняется сообщение об ошибке:
$website = test_input($_POST["website"]);
if (!preg_match("/\b(?:(?:https?|ftp):\/\/|www\.)[-a-z0-9+&@#\/%?=~_|!:,.;]*[-a-z0-9+&@#\/%
=~_|]/i",$website)) {
$websiteer = invalid URL;
}Заполните экземпляр формы
PHP instance verification
< span > * required fields
Выше приведено подробное содержание резюме знаний, связанных с формой PHP. Для получения дополнительной информации о форме PHP, пожалуйста, обратите внимание на другие соответствующие статьи в developeppaer!