Форум программистов, компьютерный форум, киберфорум
PHP для начинающих
Войти
Регистрация
Восстановить пароль
Карта форума Темы раздела Блоги Сообщество Поиск Заказать работу  
 
Рейтинг 4.55/11: Рейтинг темы: голосов - 11, средняя оценка - 4.55
165 / 89 / 38
Регистрация: 29.06.2015
Сообщений: 1,098
1

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

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

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

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

Теперь к сути. Мой скрипт, отображающий информацию, использует три таких параметра
Код
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
Эксперт
94731 / 64177 / 26122
Регистрация: 12.04.2006
Сообщений: 116,782
05.06.2017, 17:13
Ответы с готовыми решениями:

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

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

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

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

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

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 3
Цитата Сообщение от useruser Посмотреть сообщение
но часть параметров могут быть изменены перед самой отправкой
header('location: путь+параметры');exit();
0
Заблокирован
04.07.2017, 16:28 4
useruser, либо скрытые поля формы, как выше показали. Либо ваш вариант с обработкой POST-запроса по тому же самому адресу. Он оптимальный, только вы неправильно его используете. Нужно просто целиком брать тек. адрес (без всяких дроблений/объединений), предварительно проверив его корректность. К примеру я могу смело использовать $_SERVER['REQUEST_URI'], т.к. уверен, что в него не затесалось ничего лишнего, потому что он проверяется на входе.

Добавлено через 2 минуты
Цитата Сообщение от miketomlin Посмотреть сообщение
К примеру я могу смело использовать $_SERVER['REQUEST_URI']
P.S. Везде кроме обработчика/шаблона 404-ой, т.к. все обращения по левым адресам уходят именно туда.
0
04.07.2017, 16:28
IT_Exp
Эксперт
87844 / 49110 / 22898
Регистрация: 17.06.2006
Сообщений: 92,604
04.07.2017, 16:28
Помогаю со студенческими работами здесь

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

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

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

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


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

Или воспользуйтесь поиском по форуму:
4
Ответ Создать тему
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2024, CyberForum.ru