PHP показывает старый url, как пофиксить?

108
09 апреля 2021, 13:40

Вообщем в зависимости нажат ли чекбокс в JS прокидываю параметр в url, а в PHP меняю значение переменной в зависимости от url.Все работает хорошо, кроме того что PHP опоздывает на один рендер!Например есть url: http://ru.stackoverflow.com и при нажатии чекбокса прокидывается параметр ts=true, страница перезагружается и получается http://ru.stackoverflow.com?ts=true . А эхо в PHP показывает http://ru.stackoverflow.com если если снять чекбокс, тем самым убрав параметр из url то url в браузере будет http://ru.stackoverflow.com а эхо в PHP покажет http://ru.stackoverflow.com?ts=true

Код PHP:

$url = $_SERVER['HTTP_REFERER'];
echo $url;
$parts = parse_url($url);
parse_str($parts['query'], $query);
if ($query['ts'] == true) {
    $CHECK_DATES = 'N';
} else {
    $CHECK_DATES = 'Y';
}
?>

Ну и это все происходит в битриксе, где как раз таки $CHECK_DATES один из параметров компонента, но думаю что это никак не влияет на этот баг.

Ну и как собственно получить в PHP актуальный url тот же который в браузере?

Буду благодарен все откликнувшимся!

Answer 1

$_SERVER['HTTP_REFERER'] содержит url с которого был сделан запрос.

Вам нужны параметры $_SERVER['HTTP_HOST'] и $_SERVER['REQUEST_URI']

https://www.php.net/manual/ru/reserved.variables.server.php

READ ALSO
Как в php через сущность создать колонку с типом float с точностью до сотых

Как в php через сущность создать колонку с типом float с точностью до сотых

Есть некая сущностьВ ней формируем колонку, например: num

79
bind_param() не хочет передавать значение для id

bind_param() не хочет передавать значение для id

Fatal error: Cannot pass parameter 6 by reference in E:\OSPanel\domains\localhost\miacum1php on line 41

97
Почему в “Docker logs” не попадают логи от Monolog?

Почему в “Docker logs” не попадают логи от Monolog?

Всем приветНалаживаю работу с логами, я хочу зацепить некий агрегатор и собирать все логи им

111