sfsf
Новичок
Идея такая
Брать параметры из Get и формировать на странице новые ссылки с учетом этих параметров
Я думаю вы не раз делали сайт где есть сортировка и еще куча параметров которые работают вместе
Быть может вы мне подскажете правильное решение реализации, а пока я покажу что я сделал
Мы находимся на странице index.php
Вот как будут отображаться ссылки
Теперь мы зайдем на страницу index.php?section=2
Ссылки будут отображаться с учетом параметра
Теперь мы заходим на страницу index.php?section=2&city=3
Ссылки будут такими
Теперь реализация самих функция, они находятся в классе
Функция functions::arr_union сливает 2 масива в один с заменой одинаковых параметров в пользу нового массива
Функция check::html это htmlspecialchars(stripslashes())
Как можно упростить всю эту реализацию?
Что почитать по теме? и все ли учтено в плане безопасности?
Брать параметры из Get и формировать на странице новые ссылки с учетом этих параметров
Я думаю вы не раз делали сайт где есть сортировка и еще куча параметров которые работают вместе
Быть может вы мне подскажете правильное решение реализации, а пока я покажу что я сделал
PHP:
<?php
//эти значения из базы, но для понятности присваиваю им значения
$pack->user_title['category_id']=1;
$pack->user_title['sections_id']=2;
$pack->user_title['city_id']=3;
//так я формирую новые параметры параметры
$pack->add_url(array('category' => $pack->user_title['category_id']),'category');
$pack->add_url(array('section' => $pack->user_title['sections_id']),'section');
$pack->add_url(array('city' => $pack->user_title['city_id']),'city');
?>
PHP:
<a href="index.php?<?php echo $pack->get_url('category'); ?>">Категория</a>
<a href="index.php?<?php echo $pack->get_url('section'); ?>">Раздел</a>
<a href="index.php?<?php echo $pack->get_url('city'); ?>">Город</a>
Мы находимся на странице index.php
Вот как будут отображаться ссылки
PHP:
<a href="index.php?category=1">Категория</a>
<a href="index.php?section=2">Раздел</a>
<a href="index.php?city=3">Город</a>
Теперь мы зайдем на страницу index.php?section=2
Ссылки будут отображаться с учетом параметра
PHP:
<a href="index.php?category=1§ion=2">Категория</a>
<a href="index.php?section=2">Раздел</a>
<a href="index.php?section=2&city=3">Город</a>
Теперь мы заходим на страницу index.php?section=2&city=3
Ссылки будут такими
PHP:
<a href="index.php?category=1§ion=2&city=3">Категория</a>
<a href="index.php?section=2&city=3">Раздел</a>
<a href="index.php?section=2&city=3">Город</a>
Теперь реализация самих функция, они находятся в классе
PHP:
public function add_url(array $param_arr, $part) {
if(!array_key_exists($part, $this->url)) {
$this->url[$part]=array();
}
foreach($_GET as $k => $v) {
if($k!='p') {
$this->url[$part]=functions::arr_union($this->url[$part], array($k => check::html($v)));
}
}
foreach($param_arr as $k => $v) {
$this->url[$part]=functions::arr_union($this->url[$part], array($k => check::html($v)));
}
}
public function get_url($part) {
return http_build_query($this->url[$part]);
}
Функция functions::arr_union сливает 2 масива в один с заменой одинаковых параметров в пользу нового массива
Функция check::html это htmlspecialchars(stripslashes())
Как можно упростить всю эту реализацию?
Что почитать по теме? и все ли учтено в плане безопасности?