Warning: Cannot use a scalar value as an array in /home/admin/public_html/forum/include/fm.class.php on line 757

Warning: Invalid argument supplied for foreach() in /home/admin/public_html/forum/include/fm.class.php on line 770

Warning: Invalid argument supplied for foreach() in /home/admin/public_html/forum/topic.php on line 737
Форумы портала PHP.SU :: Присвоение значения строки URL другим ссылкам на страницы. Вариант приема переменных запроса

 PHP.SU

Программирование на PHP, MySQL и другие веб-технологии
PHP.SU Портал     На главную страницу форума Главная     Помощь Помощь     Поиск Поиск     Поиск Яндекс Поиск Яндекс     Вакансии  Пользователи Пользователи


 Страниц (1): [1]   

> Без описания
Cerg
Отправлено: 30 Января, 2016 - 14:39:08
Post Id


Новичок


Покинул форум
Сообщений всего: 11
Дата рег-ции: Янв. 2016  


Помог: 0 раз(а)




1) Можно ли для передачи текущего значения URL другим ссылкам на странице (например при постраничном выводе, передать уже сформированное условие для ссылок на следующую страницу) использовать значение получаемое из $_SERVER['QUERY_STRING']? Скрипт все отрабатывает как надо, смущает только то, что если юзер руками допишет в URL свою переменную, то она так и будет мотаться по всем ссылкам, которым присвоено значение из $_SERVER['QUERY_STRING']. Можно конечно очистить от «чужих» переменных, использую массив из имен «своих» переменных.
2) Если скрипт предполагает прием большого числа переменных из GET запроса, то писать двадцать раз текст вида:
Цитата:
if (isset($_GET[var1'])) { $var1=$_GET['var1'];} else {$var1=’’;} …….
if (isset($_GET[var_n'])) { $var_n=$_GET['var_n'];} else {$var_n=’’;}


нерационально . Можно ли использовать что-то типа такого скрипта, заодно и решив проблему из п.1:
Цитата:
$my_url_var = array ('var1',……., 'var_n');
$renew_url=array();
foreach ($_REQUEST as $url_var=>$url_var_value) {

if(in_array($url_var, $my_url_var)){
//если эта переменная есть в списке моих переменных
$$url_var=$url_var_value; //созаем переменную со значением
$renew_url[$url_var] = $url_var_value;
}
}

$renew_url='http_build_query($renew_url); // получаем значение $_SERVER['QUERY_STRING'], очищенное от непредусмотренных переменных ( для п.1)


Что скажете? Стоит-ли так делать?

(Отредактировано автором: 30 Января, 2016 - 15:27:19)

 
 Top
Мелкий Супермодератор
Отправлено: 30 Января, 2016 - 14:49:11
Post Id



Активный участник


Покинул форум
Сообщений всего: 11926
Дата рег-ции: Июль 2009  
Откуда: Россия, Санкт-Петербург


Помог: 618 раз(а)




1) а какая вам разница? Фильтр всё равно валидировать нужно заново. Ну допишет ещё параметр - ну и фиг с ним.
2) filter_input_array, более глупый array_merge или более умные средства из используемого фреймворка.

Переменные переменные ($$) не используйте никогда. Отлаживать их потом невозможно. Всегда можно найти нормальное решение.


-----
PostgreSQL DBA
 
 Top
Cerg
Отправлено: 30 Января, 2016 - 15:19:30
Post Id


Новичок


Покинул форум
Сообщений всего: 11
Дата рег-ции: Янв. 2016  


Помог: 0 раз(а)




Мелкий пишет:
1) а какая вам разница? Фильтр всё равно валидировать нужно заново.

да, прием через GET, и соотв. там выбираются только нужные переменные и приводятся к нужному типу. А $_SERVER['QUERY_STRING'] только чтобы руками опять заново не пересобирать URL, забыв по дороге добавить нужную переменную в итоговую ссылку)

Про filter_input_array() не знал, интересная функция.

(Отредактировано автором: 30 Января, 2016 - 15:20:50)

 
 Top
Страниц (1): [1]
Сейчас эту тему просматривают: 0 (гостей: 0, зарегистрированных: 0)
« Вопросы новичков »


Все гости форума могут просматривать этот раздел.
Только зарегистрированные пользователи могут создавать новые темы в этом разделе.
Только зарегистрированные пользователи могут отвечать на сообщения в этом разделе.
 



Powered by PHP  Powered By MySQL  Powered by Nginx  Valid CSS  RSS

 
Powered by ExBB FM 1.0 RC1. InvisionExBB