Форум программистов, компьютерный форум, киберфорум
PHP для начинающих
Войти
Регистрация
Восстановить пароль
Блоги Сообщество Поиск Заказать работу  
 
Рейтинг 5.00/13: Рейтинг темы: голосов - 13, средняя оценка - 5.00
 Аватар для useruser
166 / 90 / 38
Регистрация: 29.06.2015
Сообщений: 1,100

Как лучше передавать параметры?

05.06.2017, 17:13. Показов 9298. Ответов 3
Метки нет (Все метки)

Студворк — интернет-сервис помощи студентам
Неожиданно для себя столкнулся с проблемой передачи параметров (значений).
Под параметрами я понимаю какие либо значения, исходя из которых скрипт выводит результаты.
Например GET и POST параметры.

Ну вот, например
Code
1
https://www.cyberforum.ru/newthread.php?do=newthread&f=61
Видим 2 параметра do и f, со значениями newthread и 61.

Теперь к сути. Мой скрипт, отображающий информацию, использует три таких параметра
Code
1
http://www.mycoolsite.ru/show.php?param_1=1&param_2=22&param_3=ok
То есть пользователь что то щелкает на странице, выбирает, сортирует. А скрипт передает параметры и отображает информацию. Метод GET выбран т.к. пользователь может закрыть браузер, а потом снова открыть. Всё довольно стандартно.

Но, у меня на странице есть jquery всплывающие окна по типу
JavaScript
1
$('#main_container').load('modules/add_form.php');
Вот это, например, добавляет пользователя. Форма-Обработчик (sql)-Основной скрипт.
Но после добавления, мне надо вернуться к моему основному скрипту. И не просто вернуться, а выставить все параметры.
И откуда их брать?
Такая JS загрузка кода не подразумевает их передачу. Это другой скрипт.

Но можно так. Ведь до загрузки кода, параметры известны. Просто формируем путь.
JavaScript
1
$('#main_container').load('modules/add_form.php?param_1=1&param_2=22&param_3=ok');
Но это форма. Т.е. далее на мы считываем эти параметры и передаем их, уже методом POST в скрипт-обработчик.
А в скрипте обработчике снова считываем их после всех действий отправляем пользователя к основному скрипту.
PHP
1
2
3
$param_1=$_POST['param_1'];
...
header('Location:show.php?param_1='.$param_1.'&param_2='.$param_2.'&param_3='.$param_3);
Итого ради этого "хвоста" параметров приходится
- добавлять их в путь к форме, вызываемой JS
- считывать их в этом скрипте-форме
- добавлять их в скрытые поля и пересылать их методом POST
- считывать их и добавлять к header, для отправки пользователя на текущую страницу

По идее, можно было бы просто отправить пользователя назад...но часть параметров могут быть изменены перед самой отправкой.
PHP
1
2
...
header('Location:show.php?param_1='.$param_1.'&param_2='.$param_2.'&param_3=no_ok');
Вопрос - как лучше передавать параметры?
Уже склоняюсь к кукам или простому хранению в БД для каждого пользователя... Но это как то не красиво.
0
Programming
Эксперт
39485 / 9562 / 3019
Регистрация: 12.04.2006
Сообщений: 41,671
Блог
05.06.2017, 17:13
Ответы с готовыми решениями:

Как передавать параметры внутри index.php
У меня на сайте есть меню. Я хочу сделать так, чтобы нажимая на разделы менялась какая-нибудь переменная, и в зависимости от неё загружать...

Как через цикл вызывать функцию и передавать ей параметры
Добрый вечер.Мой код выглядит сейчас так $BotObject = new BotObject(0); $k = $BotObject->GetMethod(0); $k_2 =...

Передавать POST параметры при навигации по сайту
Всем привет! Есть страничка с формой авторизации (выбор логина, ввод пароля) При отправке формы идет пост запрос с параметрами...

3
313 / 312 / 221
Регистрация: 11.07.2015
Сообщений: 1,107
04.07.2017, 10:52
Если требуется вернуться на страницу, с которой пришли:

PHP
1
header("Location: ".$_SERVER["HTTP_REFERER"]);
Хранить параметры можно в $_SESSION

Добавлено через 3 минуты
или отправлять нужный url в форме в одном из полей
HTML5
1
<input type="hidden" name="url" value="http://...">
0
97 / 47 / 17
Регистрация: 25.04.2017
Сообщений: 471
04.07.2017, 10:59
Цитата Сообщение от useruser Посмотреть сообщение
но часть параметров могут быть изменены перед самой отправкой
header('location: путь+параметры');exit();
0
930 / 846 / 190
Регистрация: 28.11.2013
Сообщений: 3,621
04.07.2017, 16:28
useruser, либо скрытые поля формы, как выше показали. Либо ваш вариант с обработкой POST-запроса по тому же самому адресу. Он оптимальный, только вы неправильно его используете. Нужно просто целиком брать тек. адрес (без всяких дроблений/объединений), предварительно проверив его корректность. К примеру я могу смело использовать $_SERVER['REQUEST_URI'], т.к. уверен, что в него не затесалось ничего лишнего, потому что он проверяется на входе.

Добавлено через 2 минуты
Цитата Сообщение от miketomlin Посмотреть сообщение
К примеру я могу смело использовать $_SERVER['REQUEST_URI']
P.S. Везде кроме обработчика/шаблона 404-ой, т.к. все обращения по левым адресам уходят именно туда.
0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
inter-admin
Эксперт
29715 / 6470 / 2152
Регистрация: 06.03.2009
Сообщений: 28,500
Блог
04.07.2017, 16:28
Помогаю со студенческими работами здесь

Как лучше передавать параметры в метод/функцию
Здравствуйте! У меня возник вопрос, посредством какого оператора передавать параметры в функцию быстрее? Если быть точнее, ByRef - это...

Наследование vs Композиция vs Агрегация: что лучше выбрать? Как лучше передавать объекты в функции?
Добрый день!! Дело вот в чём, я хочу создать класс, внутри которого будут созданы объекты других классов (реализованных в некоторой...

Как передавать параметры через GET
Здравствуйте! Идея: жму на ссылку и через ГЕТ запрос передаю имя поля БД, которое нужно вывести. У меня есть ссылка &lt;a...

Многопоточность, как правильно передавать параметры?
#include &quot;lcbot.h&quot; #include &quot;game.h&quot; #include &lt;windows.h&gt; #include &lt;process.h&gt; #include &lt;stdio.h&gt; game Game; ...

Как передавать параметры хранимым процедурам?
Подскажите плз.... как из VB передать параметры хранимой процедуре в MS SQL SERVER 2000. Очень нужно... Заранее спасибо.


Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
4
Ответ Создать тему
Новые блоги и статьи
Оттенки серого
Argus19 18.03.2026
Оттенки серого Нашёл в интернете 3 прекрасных модуля: Модуль класса открытия диалога открытия/ сохранения файла на Win32 API; Модуль класса быстрого перекодирования цветного изображения в оттенки. . .
SDL3 для Desktop (MinGW): Рисуем цветные прямоугольники с помощью рисовальщика SDL3 на Си и C++
8Observer8 17.03.2026
Содержание блога Финальные проекты на Си и на C++: finish-rectangles-sdl3-c. zip finish-rectangles-sdl3-cpp. zip
Символические и жёсткие ссылки в Linux.
algri14 15.03.2026
Существует два типа ссылок — символические и жёсткие. Ссылка в Linux — это запись в каталоге, которая может указывать либо на inode «файла-ИСТОЧНИКА», тогда это будет «жёсткая ссылка» (hard link),. . .
[Owen Logic] Поддержание уровня воды в резервуаре количеством включённых насосов: моделирование и выбор регулятора
ФедосеевПавел 14.03.2026
Поддержание уровня воды в резервуаре количеством включённых насосов: моделирование и выбор регулятора ВВЕДЕНИЕ Выполняя задание на управление насосной группой заполнения резервуара,. . .
делаю науч статью по влиянию грибов на сукцессию
anaschu 13.03.2026
прикрепляю статью
SDL3 для Desktop (MinGW): Создаём пустое окно с нуля для 2D-графики на SDL3, Си и C++
8Observer8 10.03.2026
Содержание блога Финальные проекты на Си и на C++: hello-sdl3-c. zip hello-sdl3-cpp. zip Результат:
Установка CMake и MinGW 13.1 для сборки С и C++ приложений из консоли и из Qt Creator в EXE
8Observer8 10.03.2026
Содержание блога MinGW - это коллекция инструментов для сборки приложений в EXE. CMake - это система сборки приложений. Здесь описаны базовые шаги для старта программирования с помощью CMake и. . .
Как дизайн сайта влияет на конверсию: 7 решений, которые реально повышают заявки
Neotwalker 08.03.2026
Многие до сих пор воспринимают дизайн сайта как “красивую оболочку”. На практике всё иначе: дизайн напрямую влияет на то, оставит человек заявку или уйдёт через несколько секунд. Даже если у вас. . .
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2026, CyberForum.ru