Хранить параметр URL между страницами? - PullRequest
0 голосов
/ 09 апреля 2011

Я хочу сохранить переменную в URL во время их просмотра.

Например: Меню, когда пользователь выбирает? Category = shopping, идет к карте с покупками, и они могут щелкнуть по месту, и оно должно перейти к? Category = shop & id = 22.

Если они вернутся в меню, следует удалить категорию? И, если они нажмут на что-то еще, например? Category = cafe.

Я был действительно озадачен этим и был бы признателен за любую помощь - спасибо!

Ответы [ 3 ]

1 голос
/ 09 апреля 2011

Если вам просто нужно сохранить состояние между страницами, как подсказывает ваш заголовок, вы можете сохранить эту информацию в суперглобальном массиве $_SESSION. Вы начинаете новый сеанс, запуская session_start() в качестве первой строки любой новой страницы, прежде чем какой-либо вывод будет отправлен в браузер. Все, что вы затем сохраните в $_SESSION, будет доступно, когда вы начнете сеанс таким же образом на следующей странице.

Если вас интересует только создание строки запроса (т. Е. Части URL ?field=value&field2=value2), как указывает содержание вашего вопроса, то вы можете взглянуть на http_build_query() функция.

Ваш вопрос мне кажется немного двусмысленным относительно вашей реальной цели, поэтому я дал вам оба подхода. Просто помните, что вы должны использовать $_SESSION для состояния и http_build_query() для создания динамических URL-адресов, указывающих на конкретный контент. Также помните, что если данные должны быть защищены, вам не следует помещать их в URL-адрес или в другое место, где пользователь может изменить его, или где другие могут его прочитать (например, в адресной строке браузера). Такая информация должна быть в $_SESSION.

1 голос
/ 09 апреля 2011

Это хорошее применение для переменных сеанса.

$_SESSION["category"]="stuff";

вы можете оставить его, пока он вам больше не понадобится, или они не прекратят свою сессию

0 голосов
/ 09 апреля 2011

Я хочу сохранить переменную в URL во время их просмотра.

Вы не можете «хранить» что-либо в URL.
Если вы хотите передать некоторые данные с одной страницы на другую, используя строку запроса, вы должны добавить эти данные в строку запроса.

"Карта с покупками" должна добавлять категорию к каждой ссылке.
Так работает каждое веб-приложение.

Сессия не подходит, потому что каждая страница на сайте должна иметь свой адрес , и ваша категория является важной частью этого адреса. Если вы сохраните его в сеансе, никакая закладка не будет добавлена, никакая ссылка не будет отправлена ​​другу, и никакая поисковая система не будет индексировать ваши товары.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...