powered by simpleCommunicator - 2.0.60     © 2026 Programmizd 02
Целевая тема:
Создать новую тему:
Автор:
Закрыть
Цитировать
Форумы / PHP, Perl, Python [игнор отключен] [закрыт для гостей] / Помогите упростить функцию - мозгошторм
2 сообщений из 2, страница 1 из 1
Помогите упростить функцию - мозгошторм
    #38310385
Фотография prot0type
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Идея такая

В брать параметры из Get и формировать на странице новые ссылки с учетом этих параметров

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

Быть может вы мне подскажете правильное решение реализации, а пока я покажу что я сделал


Код: php
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
<?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');
?>



Код: html
1.
2.
3.
<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
Вот как будут отображаться ссылки

Код: html
1.
2.
3.
<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
Ссылки будут отображаться с учетом параметра

Код: html
1.
2.
3.
<a href="index.php?category=1&section=2">Категория</a>
<a href="index.php?section=2">Раздел</a>
<a href="index.php?section=2&city=3">Город</a>



Теперь мы заходим на страницу index.php?section=2&city=3
Ссылки будут такими

Код: html
1.
2.
3.
<a href="index.php?category=1&section=2&city=3">Категория</a>
<a href="index.php?section=2&city=3">Раздел</a>
<a href="index.php?section=2&city=3">Город</a>



Теперь реализация самих функция, они находятся в классе

Код: php
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
13.
14.
15.
16.
17.
	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())

Как можно упростить всю эту реализацию?
Как обстоят дела с безопасностью XSS и SQL иньекций?
...
Рейтинг: 0 / 0
Помогите упростить функцию - мозгошторм
    #38310552
Фотография r u
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
prot0type,

что за бред
у вас получились в итоге одинаковые ссылки
<a href="index.php?section=2&city=3">Раздел</a>
<a href="index.php?section=2&city=3">Город</a>
юзер кликнет по любой из них - и как вы узнаете на КАКОЙ именно он кликнул?

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

либо опишите нормально начальную задачу, что хотите сделать. может я чегото неуловил
...
Рейтинг: 0 / 0
2 сообщений из 2, страница 1 из 1
Форумы / PHP, Perl, Python [игнор отключен] [закрыт для гостей] / Помогите упростить функцию - мозгошторм
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


Просмотр
0 / 0
Close
Debug Console [Select Text]