PHP: формы, их создание и обработка
Тег отправит данные на обработку скрипту action.php после нажатия на кнопку.
динамическое создание форм
Пример создания формы после чтения базы данных:
query('SELECT * FROM foo', PDO::FETCH_ASSOC); echo '' . "\n"; foreach ($res as $values) $keys = array_keys($values); foreach ($keys as $key) echo ' ' . "
\n"; $form = FRM; echo $form; ?>
Обработка формы и добавление значений в базу данных:
$k = substr($k, 0, -2); $v = substr($v, 0, -2); $db = new MyDB(); $db->exec("INSERT INTO foo ($k) VALUES ($v)");
Для работы не забудьте настроить PHP для работы с базой данных SQLite: в файле php.ini надо раскомментировать строки
extension=pdo_sqlite extension=sqlite3
Ссылки:
- Работа с формами, Переменные извне PHP (HTML-формы, GET и POST, HTTP Cookies)
- array_keys — Возвращает все или некоторое подмножество ключей массива
- heredoc-синтаксис
- PDO::query — Выполняет SQL-запрос и возвращает результирующий набор в виде объекта PDOStatement
- $_POST — Переменные HTTP POST
- substr — Возвращает подстроку
Работа с формами | Метод GET и POST в PHP
При разработке любого проекта, одной из самых основных вещей является общение с пользователем. Мы можем что-то у него спрашивать, и давать ему право на ответ (опрос), можем дать ему право написать свое мнение, о товаре или услуге, можем помогать ему посчитать стоимость наших услуг, если необходимо создать интернет магазин, и т.д.
Во всех случаях у пользователя должно быть право что-то написать и на что-то нажать. Для этого и существуют формы.
Работа с формами в PHP и HTML
Формы обозначаются тегом form:
Атрибут method указывает каким методом будет производиться отправка формы. Существуют 2 метода – GET и POST. Подробнее от этом читайте чуть ниже, пока в краце расскажем об основных элементах формы:
Текстовое поле — Input text
Текстовое поле, в которое можно вводить информацию. Атрибут name – имя текстового поля, value – значение. Выглядят вот так:
Кнопка — Input Submit
Кнопка, используется для отправки форм. Выглядит вот так:

Текстовой блок — Textarea
Текстовой блок, обычно используется для написания сообщений большого размера. Атрибут rows, cols – длина и ширина.

Подробнее о формах читайте на нашем сайте, или в других источниках. Цель данного урока показать как обрабатывать формы средствами PHP.
Метод GET и POST при отправке форм
Методы GET и POST указываются в атрибуте method формы при ее инициализации:
Метод GET передает информацию в адресе страницы, метод POST – в заголовках. Чтобы лучше понять что такое метод GET и POST напишем скрипт, который будет отправлять наше имя и сообщение на сервер, а сервер выводить сообщение на экран.
В PHP данные полученные методом GET хранятся в переменной $_GET. Данные переданные методом POSTхранятся в переменной $_POST.
Напишем в начале код для работы с методом GET, потом методом POST.
Формы - Дизайн студия OX2.ru нужен для удобного вывода на экран -->print_r($_GET); //Выводим массив функцией print_r
?>
Теперь переделаем скрипт, для отправки данных методом POST.
Формы - Дизайн студия OX2.ru нужен для удобного вывода на экран -->print_r($_POST); //Выводим массив функцией print_r
?>
Чтобы лучше понять работу с формами на PHP, отправку и прием данных методами POST и GET, в следующем уроке сделаем простенькую логическую игру.
При разработке любого проекта, одной из самых основных вещей является общение с пользователем. Мы можем что-то у него спрашивать, и давать ему право на ответ (опрос), можем дать ему право написать свое мнение, о товаре или услуге, можем помогать ему посчитать стоимость наших услуг, если необходимо создать интернет магазин, и т.д.
Добрый день! Подскажите пожалуйста, как создать форму с полями в цикле foreach и дальше передать их через POST для записи в MySQL
Затем, как принять её в $_POST['_а какая переменная здесь?_'] И, наконец, как указать её в запросе к БД MySQL:
query("INSERT INTO . VALUES($_POST['_и здесь какая переменная?'])Отслеживать
71.2k 12 12 золотых знаков 91 91 серебряный знак 180 180 бронзовых знаков
задан 26 июл 2022 в 16:47
3 3 3 бронзовых знака
нам ничего не понятно
26 июл 2022 в 16:49
стало понятнее совсем ничего
26 июл 2022 в 16:51
26 июл 2022 в 16:56
Прочитай, пожалуйста, справку и оформь вопрос как подобается (его можно редактировать)
26 июл 2022 в 16:58Вы так и не прочитали ru.stackoverflow.com/help/how-to-ask . потому что на данный момент всё так же ничего не ясно. что в $st . одинаковые по функции данные (например имена пользователей) или нет (массив с данными пользователей включая логин, имя, дата регистрация и пр). какие данные ожидаются на сервере. какого вида должны быть итоговый запрос insert. что именно туда вставляются. опять же только тупо список имён или несколько разных колонок. в общем, если не постараетесь полноценно, как разумный человек, умеющий рассуждать, описать, то ответа вы не дождётесь
PHP. Как сделать форму и обработчик в одном файле?
Здравствуйте. Потихоньку подтягиваю свои знания PHP.
Задался вопросом.
К примеру, у нас есть /guestbook/form.php/ В котором есть форма с полями "Логин, Текст".
Как сделать обработчик этой формы в том же файле? Какими способами?
Нативный вопрос, но даже не знаю как об этом спросить гугл.
Спасибо.
- Вопрос задан более трёх лет назад
- 2203 просмотра
Комментировать
Решения вопроса 2
программирование на python;linux
Наверно лучше все же как раз нормально все разделить, опираясь на паттерн MVC, чтобы избежать каши, но так можете же прописать в action параметр формы путь к тому же PHP скрипту, что и создавал форму , а дальше, опираясь на тип запроса определять какую часть кода запускать.
Ответ написан более трёх лет назад
Нравится 1 4 комментария
KiselevPD @KiselevPD Автор вопроса
пробую для начала какие нибудь простые скрипты. Это же не для массового пользования. =)
Я и не знаю каким способом. Можеть быть каким нибудь case'ом? Мол
$url = "текущий url" case "$url": обработчик; default: форма;
KiselevPD @KiselevPD Автор вопроса
GDApsy: Что-ж, спасибо. =))
И таки дополню: вот берете эту переменную $_SERVER['REQUEST_METHOD'] и хоть по if или switch пишете, например, для GETа логику, которая выводит форму, а для POST обработку формы

item_a + item_b =


