Знакомство с GET-запросами

Обработка формы скриптом с get параметрами

Есть страница index.php?a=1&b=2. На этой странице расположена форма, которая должна отправить get запросом данные формы на этот скрипт index.php?a=1&b=2, т.е получается такой урл index.php?a=1&b=2&form_param1=1&form_param2=2. В action формы указываю адрес страницы, однако переадресация после отправки формы идёт на index.php?form_param1=1&form_param2=2.
Почему?

Обработка HTML-формы PHP-скриптом
Первые попытки на PHP, есть следующая HTML-форма ее необходимо обработать PHP-скриптом. Есть первые.

Обработка форм одним скриптом?
Вечер добрый уважаемые.Такой вот вам вопрос ,имеется две формы 1)регистрация ,2)Тест(который.

Обработка одинаковых select одним скриптом jq
Есть страница интернет магазина, на которой выводятся товары. На каждом товаре добавлен select для.

Связь формы с скриптом.
что-то не особо получается связать значение формы со скриптом. нужно передать значение из поля.

Если я Вас правильно понял, Вам необходимо, чтобы помимо данных из формы, вводимых пользователем, передавались еще какие-то данные в GET запросе?
Я напряг все свои экстрасенсорные способности, и смело предполагаю, что Вы пытаетесь сделать что-то вроде того:

form action="index.php?a=1&b=2" method="GET"> input type="text" name="form_param1"> input type="text" name="form_param2"> input type="submit"> /form>

А у Вас выходит запрос index.php?form_param1=1&form_param_2=2 вместо ожидаемого:
index.php?a=1&a=2&form_param1=1&form_param_2=2
Все дело в том, что метод GET при отправке из формы затирает ваш урл, прописанный в action вставляя после знака «?» только данные из формы.

Чтобы получить GET запрос, который Вам нужен, можно использовать, например, скрытые поля в форме. Этот способ древний как этот мир:

form action="index.php" method="GET"> input type="hidden" name="a" value="1"> input type="hidden" name="b" value="2"> input type="text" name="param1"> input type="text" name="param2"> input type="submit"> /form>

Такая форма даст нужный Вам GET-запрос, с которым Вы потом можете работать в php:

1 2 3 4 5 6 7 8 9 10 11 12
if(isset($_GET[a])) { echo "a пришел в get
"
; } if(isset($_GET[b])) { echo "b пришел d get
"
; } if(isset($_GET[form_param1])) { echo "param1 пришел в get
"
; } if(isset($_GET[form_param2])) { echo "param2 пришел в get
"
; }
form action="index.php?a=1&b=2" method="POST"> input type="text" name="form_param1"> input type="text" name="form_param2"> input type="submit"> /form>

Теперь параметры a и b нам нужно брать из GET, а param1 и param2 из POST:

1 2 3 4 5 6 7 8 9 10 11 12
if(isset($_GET[a])) { echo "a пришел в get
"
; } if(isset($_GET[b])) { echo "b пришел d get
"
; } if(isset($_POST[form_param1])) { echo "param1 пришел в post
"
; } if(isset($_POST[form_param2])) { echo "param2 пришел в post
"
; }

Источник

PHP занятие 8. Передача данных

Атрибуты тега FORM

егэ разбор егэ разбор pascal уроки c уроки python уроки c++ уроки vb уроки lazarus уроки php уроки html уроки css уроки javascript уроки jquery и ajax уроки prolog уроки flash уроки

При передачи данных формы на сервер формируются суперглобальные переменные — ассоциативные массивы, содержащие передаваемые значения:

  • $_GET[] — ассоциативный массив, который содержит все значения, передаваемые в сценарий с помощью метода формы GET .
  • $_POST[] – ассоциативный массив, который содержит все значения, передаваемые в сценарий с помощью метода формы POST .
  • $_REQUEST[] – ассоциативный массив, который содержит все значение, передаваемые в сценарий с помощью методов POST и GET .

Рассмотрим пример использования метода GET

Пример: В файле index.html находится форма для заполнения данных пользователем. В файле abswer.php разработать скрипт обработки данных формы с выводом введенных пользователем значений (использовать метод GET )

Выполнение:
Файл index.html

form action="answer.php" method="get"> Имя br>input type="text" name="Firstname" >br> Фамилия br> input type="text" name="Lastname" >br> E-mailbr> input type="text" name="email">br> input type="submit" name="submit" value="Отправить"> /form>
 echo " 
Ваше имя"
. $_GET['Firstname']; echo "
Ваша фамилия"
. $_GET['Lastname']; echo "
Ваш электронный адрес"
. $_GET['email']; ?>

Ваше имя» . $_GET[‘Firstname’]; echo »
Ваша фамилия» . $_GET[‘Lastname’]; echo »
Ваш электронный адрес» . $_GET[’email’]; ?>

Рассмотрим вариант безопасной обработки данных:

 If (isset($_GET['Firstname']) { $firstname=trim (strip_tags($_GET['Firstname'])); echo " 
Ваше имя"
.$firstname;} ?>

Безопасная обработка данных php

Безопасная обработка данных

Рассмотрим тот же самый пример с использованием метода POST

Пример: В файле index.html находится форма для заполнения данных пользователем. В файле abswer.php разработать скрипт обработки данных формы с выводом введенных пользователем значений (использовать метод POST )

Выполнение:
Файл index.html

form action="answer.php" method="post"> Имя br>input type="text" name="Firstname">br> Фамилия br> input type="text" name="Lastname">br> E-mailbr> input type="text" name="email">br> input type="submit" name="submit" value="Отправить"> /form>
  echo " 
Ваше имя"
. $_POST['Firstname']; echo "
Ваша фамилия"
. $_POST['Lastname']; echo "
Ваш электронный адрес"
. $_POST['email']; ?>

Ваше имя» . $_POST[‘Firstname’]; echo »
Ваша фамилия» . $_POST[‘Lastname’]; echo »
Ваш электронный адрес» . $_POST[’email’]; ?>

Итерации по массиву $_Request

Пример: В файле index.html находится форма для заполнения данных пользователем. В файле abswer.php разработать скрипт обработки данных формы с выводом введенных пользователем значений (использовать метод REQUEST )

Выполнение:
Файл index.html

form action="answer.php" method="post"> Имя br>input type="text" name="Firstname">br> Фамилия br> input type="text" name="Lastname">br> E-mailbr> input type="text" name="email">br> input type="submit" name="submit" value="Отправить"> /form>
 foreach($_REQUEST as $key => $value) { echo $key; echo ": " .$value; echo "
"
; } ?>

Формируемый при передачи массив имеет вид:

$_Request['Firstname']="…" $_Request['Lastname']="…" $_Request['email']="…"

Функции для обработки данных формы

  • is_string(string) – определяет, является ли переменная string строкой. Возвращает значение true или false .
  • is_int(string) или is_integer(string) – определяет, является ли переменная string целым числом. Возвращает значение true или false .
  • is_numeric(string) – определяет, является ли переменная string числовой строкой. Возвращает значение true или false .
  • is_double(string) или is_float(string) – определяет, является ли переменная string числом с плавающей точкой. Возвращает значение true или false
  • был ли отправлен запрос при щелчке на кнопке
  • были ли поля заполнены цифрами, а не другими символами
  • Создайте файл calculator.php
  • Для построения формы воспользуйтесь конструкцией:

 echo $_SERVER['PHP_SELF']; ?>" method="post">

Функции php для обработки данных формы

Лабораторная работа 8_2 (сложный вариант):
Написать интерфейс, который позволял бы создавать html-формы. Пользователь выбирает, какие элементы и в каком количестве нужно создать, придумывает им названия, а программа сама генерирует требуемую форму.

    выбор типов элементов ввода и их количества (task_form.html);

создание элементов управления php

создание элементов управления php

task_form.html:
форма средствами php
Результат:
7

элементы управления php

ask_names.php:

При создании двух элементов типа «текстовая строка» и одного элемента типа «текстовая область» получим (рис. 8). Введем в эту форму, например, строки «Название», «Автор» и «Краткое содержание». Эти данные будет обрабатывать скрипт task.php.

рис. 8. Промежуточные результаты

рис. 8. Промежуточные результаты

7

Результатом работы скрипта с входными данными, приведенными выше, будет следующая форма:

Лабораторная работа 8_3 (легкий вариант):
Средствами PHP разработать простой валютный калькулятор, который конвертирует различные валюты в рубли (см. рисунок). Форму калькулятора и скрипт обработки поместить в один файл, используя функцию:

Валютный калькулятор на php

Валютный калькулятор на php

Лабораторная работа 8_4:
Заменить фреймовую структуру с меню, на работу с одним файлом php.

  1. Откройте файл в котором формируется меню.
  2. Измените значения всех элементов массива на index.php
  3. Добавьте к значению «index.php» параметр id , передаваемый методом GET
  4. Добавьте к параметру id уникальные значения.
action=" echo $_SERVER['PHP_SELF']; ?>"

Источник

GET-запросы в PHP

loader

Итак, пришло время нам начать взаимодействовать с пользователем.

Как мы говорили ранее, PHP работает на сервере. Отсюда следует вопрос, а как же нам из браузера начать с ним взаимодействовать? Например, заполнить форму логина на сайте и отправить данные на сервер, чтобы наш код с ним что-нибудь сделал.

Именно об этом мы и поговорим в этом уроке.

Итак, давайте удалим все наши файлы в проекте и создадим новый пустой файл с именем index.php. Запишем в него следующий код:

Давайте выполним этот скрипт, открыв в браузере адрес:
http://myproject.loc/index.php

Как мы помним из этого урока, мы отправляем запрос веб-серверу, он понимает, что мы запрашиваем PHP-скрипт, выполняет его с помощью интерпретатора и возвращает нам ответ в виде результата выполнения этого скрипта.

Возникает вопрос: «А как можно передать от пользователя внутрь скрипта какие-либо данные?». Ответов на него у нас сразу несколько, и все мы их рассмотрим в этом уроке.

Метод GET

Когда мы вбиваем адрес скрипта и нажимаем Enter, выполняется GET-запрос по протоколу HTTP. В этом типе запроса к основному адресу мы можем прикрепить дополнительные параметры. Для того чтобы передать их, в конце основного адреса ставится знак вопроса, и мы можем перечислять эти параметры — вот так:
параметр1=значение1.
При этом если нам нужно указать несколько параметров, то мы разделяем их с помощью знака амперсанда:
арг1=знач1&арг2=знач2.

Если сейчас перейти по этой ссылке в браузере, то на сервер передадутся 2 параметра:

Мы можем очень просто получить к ним доступ из PHP с помощью магической переменной $_GET. Эта переменная является суперглобальной, то есть доступна нам в PHP всегда и в любом месте. Она представляет собой ассоциативный массив, в котором хранятся все переданные в запросе GET-параметры.

Давайте изменим код нашего index.php, чтобы узнать, что именно хранится в этой переменной.

array (size=2) 'arg1' => string '123' (length=3) 'arg2' => string 'scrrr' (length=5)

Как мы можем видеть, это действительно наши переданные аргументы, представленные в виде ассоциативного массива.

Учимся обрабатывать параметры

array (size=2) 'login' => string 'admin' (length=5) 'password' => string '12345' (length=5)

Разумеется, мы можем обращаться к этим элементам как к элементам обычного массива. Например, так:

Давайте создадим простую страничку, на которой мы будем выводить переданные с помощью GET-запроса логин и пароль.

      

Переданный логин:
Переданный пароль:

Обработанные query-параметры

Обновим нашу страничку в браузере и увидим результат.

Отлично, мы успешно обработали данные, которые нам пришли от пользователя.

Учимся работать с формами

Давайте теперь вспомним уроки про формы из курса по HTML и сделаем простейшую форму для отправки GET-запроса на страничку.

Давайте запишем в наш index.php следующий код:

      Логин 
Пароль

И давайте теперь откроем его в браузере: http://myproject.loc/index.php

Как мы видим по исходному коду, форма отправит аргументы login и password с введенными значениями на адрес /login.php.

Форма входа

Давайте введем в поля значения admin и Pa$$w0rd соответственно и нажмем на кнопку «Войти».

Ошибка 404

Где сервер нам скажет о том, что такой странички не найдено.

Отлично! Так давайте же её создадим! Создаём рядом с нашим index.php файл с именем login.php. И пишем в него следующий код:

 else < $isAuthorized = false; >?>    

Вернёмся на нашу форму и повторно отправим пароль. Теперь мы увидим информацию о том, что мы успешно авторизовались. Это простейший прототип формы авторизации. Разумеется, он сильно упрощён, не всё сразу. А пока – делаем домашнее задание.

Источник

Читайте также:  Html css верхняя панель
Оцените статью