Передача переменных между страницами.
В этой статье я расскажу о том, как передавать переменные и их значения между страницами. Когда-то для меня это было не такой простой и тривиальной задачей, какой я вижу ее сейчас.
Итак, можно выделить три основных способа передачи переменных между PHP скриптами:
- Через массив $_GET
- Через массив $_POST
- Через массив $_SESSION
Каждый из этих вариантов удобен в конкретных случаях, и обычно, определить каким из массивов пользоваться не сложно. Зачем же передавать данные от одной страницы другой? Примеров масса, здесь и отправка html-формы на электронную почту, и авторизация пользователей, и работа корзины интернет магазина, а также различные фильтры и много много другого. На самом деле владеть методами работы с передачей данных между страницами необходимо любому, кто работает с PHP, без этого ну никуда. Итак, рассмотрим каждый метод передачи данных по очереди:
- Передача данных в суперглобальном массиве $_GET. Как она происходит. Например, у вас есть страница, на которой динамически выводятся какие-либо данные. Чтобы было понятнее, возьмем интернет магазин (я думаю, практически каждый хоть раз сталкивался с написанием интернет магазинов, а если не сталкивался, то обязательно столкнется). Есть страница со списком товаров, и есть страница описания конкретного товара. Вывод описания товара осуществляется по его уникальному идентификатору в базе данных (естественно, я не рассматриваю случай, когда для каждого товара есть своя отдельная html страничка, на которую ведет ссылка из списка товаров, и я надеюсь что вы тоже уже переросли такие сайты). Задача заключается в следующем: Есть две страницы: список товаров и описание товара. Как определить, описание какого товара показать пользователю, пришедшему со страницы списка товаров?
Решение:
http://домен.ру/product_list.php — список товаров
http://домен.ру/product_details.php — описание конкретного товара. Чтобы передать идентификатор на страницу product_details.php нужно обратиться к ней по ссылке:
http://домен.ру/product_details.php?product_id=идентификатор_продукта
и тогда значение идентификатора товара будет доступно как переменная $_GET[‘product_id’]. Ну и дальше можно его использовать в любом месте скрипта product_details.php. Обратите внимание, что все переменные передаются в адресной строке после знака вопроса (?), чтобы предать несколько переменных их разделяют знаком &. Например:
http://домен.ру/product_list.php?category_id=1&order_by=price&order=DESC
В этом примере мы передали файлу product_list.php переменные $_GET[‘category_id’], $_GET[‘order_by’] и $_GET[‘order’]. Зачем это нужно? Например при сортировке списка товаров запрос к базе данных выглядит следующим образом:
SELECT * FROM products ORDER BY price DESC
Передав переменные order_by, order и category_id Можно переписать наш запрос так:
SELECT * FROM products WHERE category_id=$_GET[‘category_id’] ORDER BY $_GET[‘order_by’] $_GET[‘order’];
Таким образом можно писать фильтры для упорядоченного вывода данных. - Передача переменных в массиве $_POST. Здесь уже не все так очевидно, как в случае $_GET, однако сложного тоже ничего нет. Каждый из нас ежедневно сталкивается с html-формами (авторизация, регистрация, поиск и т.д. и т.д.). А как и куда передаются данные, введенные вами в форме? Рассмотрим самую простую форму:
Рассмотрим первую строку. Значение атрибута action определяет файл обработчик формы, т.е. тот файл, которому будут доступны переменные формы. Атрибут action может быть и пустым, тогда обрабатывать форму можно в той же странице, в которой она выводится. Атрибут method определяет, в какой массив будут помещены значения полей формы. Если method=”get”, переменные будут доступны в массиве $_GET, еслиmethod=”post” — $_POST. Теперь перейдем непосредственно к полям формы. Мы создали всего одно текстовое поле с атрибутом name=”some_field”, который и определяет имя переменной, которое будет соответствовать значение поля. Т.е., после нажатия кнопки отправить, доступ к значению поля some_field можно получить как $_POST[‘some_field’]. На самом деле, есть еще один массив $_REQUEST, который может содержать как массив $_GET, так и массив $_POST, но его я встречал только в backend-файлах AJAX приложений, поэтому ничего по поводу того, как его использовать сказать не могу.
Обратимся к случаю, когда обработчик формы и сама форма находятся в одном файле. Вот пример кода:
if (empty($_POST)) ?>
>
else print_r($_POST);
>
?php
Сразу оговорюсь, что я не рассматривал использование массива $_COOKIES. Почему? Может быть кому-то это покажется странным, но я до сих пор им ни разу не пользовался, поэтому не могу сходу описать, как с ним работать.
Подводя итог, можно сказать, что каждый метод удобен в том или ином случае. Переменные массива $_GET удобны для написания фильтров и условий; $_POST – для передачи больших массивов, например текстовое описание и т.д. (передача данных методом $_POST используется в панели управления сайтом для администрирования и добавления данных); $_SESSION удобно использовать в тех случаях, когда доступ к переменным нам может понадобится на любой из страниц сайта. На этом, я думаю можно закончить. Если возникли вопросы – пишите на форуме.
Как передать переменную PHP в HTML документ
Имеется HTML страница запущенная на IIS и PHP страница запущенная на Denwer Можно ли передать переменную из php страницы в html документ, если они находятся в разных директориях? Пишу php код внутри html — не выполняется.
Отслеживать
задан 25 июл 2018 в 4:09
Николай Василенков Николай Василенков
481 2 2 серебряных знака 14 14 бронзовых знаков
пример вашего кода в студию пожалуйста
25 июл 2018 в 5:28
1 ответ 1
Сортировка: Сброс на вариант по умолчанию
Можно ли передать переменную из php страницы в html документ, если они находятся в разных директориях?
Вот простой пример как это можно сделать:
Имеется такая структура проекта:
/docroot /someDir --inc-file.php index.php
Index
Если вы передаете переменную в файл с расширением php , то можно, но файл с другим расширением не будет знать, что делать с кодом-переменной из php .
Отслеживать
ответ дан 25 июл 2018 в 5:50
5,811 3 3 золотых знака 15 15 серебряных знаков 24 24 бронзовых знака
- php
- html
- iis
- denwer
-
Важное на Мете
Похожие
Подписаться на ленту
Лента вопроса
Для подписки на ленту скопируйте и вставьте эту ссылку в вашу программу для чтения RSS.
Дизайн сайта / логотип © 2023 Stack Exchange Inc; пользовательские материалы лицензированы в соответствии с CC BY-SA . rev 2023.11.15.1019
Нажимая «Принять все файлы cookie» вы соглашаетесь, что Stack Exchange может хранить файлы cookie на вашем устройстве и раскрывать информацию в соответствии с нашей Политикой в отношении файлов cookie.
Передача переменной из html в PHP

Передача переменной из html в php
Добрый день. Возникла проблема при передаче переменой из html в php. Прошуршал весь интернет и.

PHP & MySQL передача в запрос SQL значения переменной из PHP
Здравствуйте. Мне необходимо передать в SQL-запрос значение любой переменной. Например, мне.
pChart, передача переменной из 1-го файла php в файл php построения графика, метод include
Есть два файла: 1-й: здесь запрашивается график т.е 2-й файл, а также из 1-го нужно передать.

Передача данных между страницами html (запрос к базе)-> php (обработка) -> html (вывод результата обработки)
Есть два файла: 1) index.php HTML c кнопкой, которая запускает PHP обработчик запроса к базе.
Добавляем PHP прямо в разметку
Мы сделали переменную, как теперь добавить её значение в шаблон?
Сначала добавим фрагмент PHP-кода в шаблон, для этого будем использовать теги . При добавлении PHP в шаблон, нужно обязательно использовать закрывающий PHP-тег. Так мы обозначим границы PHP-кода.
Затем выведем значение переменной на страницу в браузере. Для этого можно использовать команду echo . В круглых скобках после названия команды укажем имя переменной.
В итоге в шаблоне будет вот такой код:
// Добавили PHP-код в заголовок в шаблоне
Но как значение переменной попадает в шаблон? Мы объявили переменную в основном сценарии product.php , а после этого подключили шаблон components/product_info.php . Из-за склеивания файлов переменные из сценария видно в шаблоне. Если значение переменной будет меняться, изменится и значение на странице. Вот она, суперсила PHP!
Добавим значение переменной $title в шаблон и убедимся, что у товара появится название.
Перейти к заданию
Разнообразные товары для дома с доставкой по всей планете



