Сегодня поговорим о форме отправки.
Как нам получить данные из формы.
Так какие формы мы знаем ?
Форма обратной связи,
Форма авторизации ,
Форма регистрации итд,
Форма нужна для передачи данных .
Давайте познакомимся с двумя методами Get и Post.
* $_GET — Переменные HTTP GET
* $_POST — Переменные HTTP POST
________________
Давайте создадим обычную HTML страницу и нам нужна форма
<!DOCTYPE html>
<html lang=»en»>
<head>
<meta charset=»UTF-8″>
<meta http-equiv=»X-UA-Compatible» content=»IE=edge»>
<meta name=»viewport» content=»width=device-width, initial-scale=1.0″>
<title>Document</title>
<style>
form {
display: flex;
flex-direction: column;
max-width: 500px;
justify-content: center;
align-items: center;
margin: 0 auto;
}
</style>
</head>
<body>
<form action=»send.php»>
<input name=»name» type=»text» placeholder=»name»>
<input name=»email» type=»text» placeholder=»email»>
<input name=»surname» type=»text» placeholder=»surname»>
<input name=»phone» type=»tel» placeholder=»phone»>
<button type»submit»»>send</button>
</form>
</body>
</html>
В атрибуте action=»send.php» мы указываем Файл, который будет обрабатывать эти данные,
Если мы ничего не укажем, то данные будут обрабатываться на этой странице
________________
Давайте укажем в атрибуте action путь до send.php и создадим файл send.php,
Теперь с помощью глобальной переменной Post мы можем вывести на экран данные
Ну для начала форме нам нужно указать метод пост
print_r($_POST);
Это массив также мы можем его пропустить через foreach
foreach($_POST as $v){
echo $v;
}
Также мы можем присвоить переменной определенный элемент массива
________________
Итак, давайте разберёмся какой метод нам выбрать для отправки данных
post или get ?
Для незначительных вещей как поиск на сайте можете использовать метод Get, во всех остальных случаях Используйте метод пост
________________
Давайте добавим нашу форму checkbox
<input type=»checkbox» name=»agree»>
Если мы посмотрим, то checkbox а у нас не водится
Если мы его отметим – то тогда он появится
Чтобы проверить есть ли в массиве checkbox для этого у нас есть две функции
isset — Определяет, была ли установлена переменная значением, отличным от null
empty — Проверяет, пуста ли переменная
Как работает на примере isset
Давайте попробуем вывести переменную которую мы не объявляли
echo $x;
Мы получим Предупреждение: неопределённая переменная $x
Тут нам и поможет функция isset
if (isset($x)) {
echo $x;
}
Мы проверяем если есть такая переменная то Выводим её
________________
Функция empty похоже на isset
Но она проверяет на пустоту
if (empty($x)) {
echo $x;
}
if (!empty($x)) {
echo $x;
}
Давайте поставим условия если галочка не отмечено то у нас ничего не будет выводиться
if (!empty($_POST[‘agree’])){
print_r($_POST);
}
________________
Давайте добавим select нашу форму
<select name=»lang» id=»» multiple>
<option value=»ru»>ru</option>
<option value=»eng»>eng</option>
<option value=»fr»>fr</option>
</select>
Если нам нужно выбрать несколько языков
то мы можем указать что Select это массив
<select name=»lang[]» id=»» multiple>
Также мы можем этот массив пропустить через foreach
foreach($_POST[‘lang’] as $v){
echo $v . «<br>»;
}
________________
* $_REQUEST — Переменные HTTP-запроса
print_r( $_REQUEST);
Советую вам не использовать эту переменную цели безопасности
HOME TASK
Создать форму обратной связи Где будут поля
- имя
- фамилии
- возраст
- телефон
- checkbox
1 Если не заполнены все поля вывести сообщение, что все поля обязательны
2 Убрать все пробелы с помощью функции trim()
3 Если возраст меньше 18 вывести сообщение, что вам ещё рано получать права.
4 Если пользователь не отметил checkbox, то вывести сообщение, что вы должны отметить checkbox.
5 Попробовать настроить отправку на почту с помощью функции Mail https://www.php.net/manual/en/book.mail.php
6 Прочитайте про функцию die
https://www.php.net/manual/ru/function.die.php