$_SERVER['REQUEST_URI'] и урл вида site.ru/str#info

P
На сайте с 06.01.2009
Offline
592
791

Здравствуйте.

Есть ли способ определить, что текущий урл содердит в строке #info

?

Спасибо заранее.

ps Задача. Юзеру предоставить тот же самый документ, что и site.ru/str, но с небольшим дополнением в контенте. Для ПС должен оставаться документ один и тот же, нужно просто определить, что юзер открыл документ с #info

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

ps3 даже если делать 2 документа несколько отличающихся друг от друга для юзера, то для ПС нужно чтобы это был один документ...чтобы ссылки с соцсетей на документ2, считались ПС ссылками на документ1. Поведенческие работали для док1 и т.д.

J
На сайте с 20.02.2014
Offline
120
jkm
#1

Браузер не отправит в запросе эту часть урл, так что на стороне сервера невозможно узнать было там #info или нет.

owx
На сайте с 27.06.2009
Offline
100
owx
#2

<?

$var = 'http://someurl.com/path#anchor';
$anchor = parse_url($var);
Appassionato
На сайте с 22.06.2010
Offline
286
#3

В $_SERVER['REQUEST_URI'] якоря не передаются.

Сделайте подзапрос к серверу аяксом и scroll до нужного фрагмента, если сервер ответил "фас".

---------- Добавлено 06.03.2015 в 23:33 ----------

~AL~ видимо не прочитал заголовок темы.

Хостинг Работает, как Часы ( http://tinyurl.com/nze85xw ). Проверено за 11+ лет.
P
На сайте с 06.01.2009
Offline
592
#4
~AL~:
<?

$var = 'http://someurl.com/path#anchor';
$anchor = parse_url($var);

Прошу прощения, не понял, как это тут применить?

$url = substr ($_SERVER['REQUEST_URI']);

те. мы не задаем $var

есть вход по урлу

site.ru/str#info

как определить что вход был именно по этому адресу, а не site.ru/str

---------- Post added 06-03-2015 at 23:37 ----------

Appassionato:
В $_SERVER['REQUEST_URI'] якоря не передаются.

Сделайте подзапрос к серверу аяксом и scroll до нужного фрагмента, если сервер ответил "фас".

Извините, возможно наглею, не покажете как это сделать?

owx
На сайте с 27.06.2009
Offline
100
owx
#5

Поторопился, извиняюсь. Без javascript не обойтись

Appassionato
На сайте с 22.06.2010
Offline
286
#6
postavkin:
Извините, возможно наглею, не покажете как это сделать?

А что конкретно непонятно? Подключаете jQuery, по загрузке документа делаете ajax-запрос на сервер, в query_string которого уже добавляете document.location.hash, анализируете этот хэш на сервере и отправляете обратно в js, куда нужно скроллить, ну а дальше animate+scrollTop все тем же jQuery.

---------- Добавлено 06.03.2015 в 23:59 ----------

PS: а лучше (если нет запросов к БД и иже с ними) вообще всю логику на js написать

P
На сайте с 06.01.2009
Offline
592
#7
Appassionato:
А что конкретно непонятно? Подключаете jQuery, по загрузке документа делаете ajax-запрос на сервер, в query_string которого уже добавляете document.location.hash, анализируете этот хэш на сервере и отправляете обратно в js, куда нужно скроллить, ну а дальше animate+scrollTop все тем же jQuery.

---------- Добавлено 06.03.2015 в 23:59 ----------

PS: а лучше (если нет запросов к БД и иже с ними) вообще всю логику на js написать

Боюсь, что не осилю. Завтра поищу как это сделать. Спасибо.

---------- Post added 07-03-2015 at 00:22 ----------

Appassionato:
document.location.hash,

Проверил, работает. круто. спасибо.

Оказалось, что в коде есть уже jQuery дописал это var urlhash=document.location.hash;

сделал alert(urlhash); и действительно показывает, то что прописано за хеш тегом.

Авторизуйтесь или зарегистрируйтесь, чтобы оставить комментарий