@dom12

Как сохранить get параметр при переходе на другую страницу?

Здравствуйте.
Как например при переходе с
https://domen.ru/test/?сity=mos
на
https://domen.ru/test_2/,
https://domen.ru/test_3/,
https://domen.ru/test_2/test_3/
и т.п., сохранить ?сity=mos , чтобы получилось:
https://domen.ru/test_2/?сity=mos,
https://domen.ru/test_3/?сity=mos,
https://domen.ru/test_2/test_3/?сity=mos
и т.п.

Реально ли через php дописать get параметр в адресной строке при переходе на любую внутреннюю ссылку?
  • Вопрос задан
  • 177 просмотров
Пригласить эксперта
Ответы на вопрос 3
@alexalexes
Если вы хотите сохранить выбранный населенный пункт в вашем разрабатываемом сайте (интернет магазине), то вам не нужно тянуть этот параметр при каждой ссылке. Вам нужно при выборе города от пользователя получить этот параметр один раз и сохранить его либо в куках $_COOKIE, либо в сессионной переменной в $_SESSION, либо в базе данных в профиле пользователя.
Далее, при любом обращении к любой странице вашего сайта доставать этот параметр из описанных выше источников и использовать как некую переменную контекста для выбора и формирования контента страницы.
Ответ написан
@dom12 Автор вопроса
Решил вопрос таким способом:
$dom = new DOMDocument;
		@$dom->loadHTML($output);
		if(isset($_GET["сity"])){
            foreach($dom->getElementsByTagName('a') as $link){
                $href = $link->getAttribute('href');
                $parts = parse_url($href); 
                parse_str($parts['query'], $query);
                if(!isset($query['сity']) && preg_match('/^(?!(?:javascript|data|chrome|mailto|tel|sms|callto|mms|skype):).+$/', $href)){
                    if ($parts['path'] == null) $href .= '/';
                    $href .= (($parsedUrl['query'] == NULL)?'?':'&').'сity='.$_GET["сity"];
                    $link->setAttribute('href', $href);
                }
            }
		}
        echo $dom->saveHTML();
Ответ написан
Комментировать
@iljaGolubev
через php дописать get параметр в адресной строке

это невозможно - php не управляет браузером напрямую.
---
Можно сделать редирект, но думаю для seo это тоже не хорошо.
//псевдо
if REFERRER has ?сity=mos
     return redirect REQUEST?сity=mos

---
В php генерите страницы добавляя в ссылки нужные параметры
т.е. на странице https://domen.ru/test/?сity=mos
ссылка должна быть сразу https://domen.ru/test_2/?сity=mos

---
Как вариант - через добавить ?сity=mos к нужным ссылкам на странице.
Ответ написан
Комментировать
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Войти через центр авторизации
Похожие вопросы