[ Поиск ] - [ Пользователи ] - [ Календарь ]
Полная Версия: Хотел $_SERVER['HTTP_REFERER'] но не то
Astin
Приветствую Форумчане!

Сделал на сайте вывод заявок с пагинацией, соответственно

ссылки вида примерно такие

сайт.ru/demand/all
сайт.ru/demand/all?page=2
сайт.ru/demand/all?page=3

Ссылки на одну заявку вида сайт.ru/order/id-заявки

На каждой странице выводиться по N число заявок. В каждой заявке
присутствует ссылка для просмотра именно этой заявки которую выбрали.

При открытии этой заявки она показывается естественно, но вот ниже
сделал ссылку типа "Назад к списку"
<a href="сайт.ru/demand/all">Назад к списку</a>

Потом подумал, а если человек захочет вернуться именно к списку на
другой странице, к примеру к сайт.ru/demand/all?page=2

Сделал ссылку вида
<a href="'.$_SERVER['HTTP_REFERER'].'">Назад к списку</a>


Теперь опять загвоздка... Если юсер сохранит в закладки заявку, потом откроет
её из закладок ссылка Вернуться к списку будет вида
<a href="сайт.ru/order/id-заявки">Назад к списку</a>

И получается ему придется опять идти на главную чтоб попасть в список заявок.

Решил сделать вот так, поставить условие в выводе одной заявки
<?php
if (isset($_SERVER['HTTP_REFERER']))
{
$server = $_SERVER['HTTP_REFERER'];

} else {

$server = "сайт.ru/demand/all";

}

//////// Код вывода и в нем ссылка вида

<a href=\"".$server."\">Назад к списку</a>

/////



Получается если $_SERVER['HTTP_REFERER'] не передана, то будет ссылка

на самое начало списка заявок.

А вот теперь проблема....

Если к примеру Вася оставит на каком нибудь сайте ссылку на эту заявку,
а после кто то другой перейдет по ней, то в ссылке Назад к списку
будет стоять ссылка того сайта с которого перешли.

Можно ли как то решить этот вопрос или может сделать просто постоянную
ссылку на начало списка.

Это хотел сделать для удобства пользователя, но что то не получается

_


icedfox
Добавь проверку на урл сайта, если свой. то TRUE, если нет то FALSE
Astin
Цитата (icedfox @ 26.04.2016 - 17:41)
Добавь проверку на урл сайта, если свой. то TRUE, если нет то FALSE

А можно чуть поподробнее

Или хотяб пример показать как лучше
icedfox
вот так примерно
		$trusDomen = 'tutdomen.ru';
$server = '';

if (!empty($_SERVER['HTTP_REFERER'])) {
$server = $_SERVER['HTTP_REFERER'];
}
if (strpos($server, $trusDomen) === false) {
$server = "сайт.ru/demand/all";
}

регулярки не стал специально использовать
Astin
Цитата (icedfox @ 26.04.2016 - 18:00)
вот так примерно
		$trusDomen = 'tutdomen.ru';
$server = '';

if (!empty($_SERVER['HTTP_REFERER'])) {
$server = $_SERVER['HTTP_REFERER'];
}
if (strpos($server, $trusDomen) === false) {
$server = "сайт.ru/demand/all";
}

регулярки не стал специально использовать

Спасибо, сейчас попробую
Astin
Вот так вот работает
<?php

if (isset($_SERVER['HTTP_REFERER']))
{
$server = $_SERVER['HTTP_REFERER'];
}
if (strpos($_SERVER['HTTP_REFERER'], "сайт.ru.ru") === false)
{
$server = "сайт.ru/demand/all";
}
killer8080
а так не устраивает?
сайт.ru/order/id/?return=url
Astin
killer8080
Это я так понимаю что то вроде редиректа да ?

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

Если неправильно понял вас, то буду рад вашим разьяснением что вы имели в виду под
Цитата
а так не устраивает?
сайт.ru/order/id/?return=url
killer8080
Цитата (Astin @ 26.04.2016 - 22:57)
Это я так понимаю что то вроде редиректа да ?

Нет
я имел ввиду, когда формируешь ссылку в каталоге, добавляй к ней параметром текущий адрес страницы, тогда ссылку "назад" можно будет сформировать из гет параметра
<a href="<?= htmlspecialchars($_GET['return'])?>">back</a>

если юзер эту ссылку где то запостит, то урл страницы каталога в ней сохранится.
Astin
Цитата
Нет
я имел ввиду, когда формируешь ссылку в каталоге, добавляй к ней параметром текущий адрес страницы, тогда ссылку "назад" можно будет сформировать из гет параметра
<a href="<?= htmlspecialchars($_GET['return'])?>">back</a>

если юзер эту ссылку где то запостит, то урл страницы каталога в ней сохранится.


Честно говоря пока не знаю как сделать такое.

Если можно покажите пожалуйста на примере как долно выгляжеть
tceburashka.com
Что-то не пойму... что ты хочешь? Мне кажется для этого существует меню в котором можно все-что угодно задать? Или заявки открывать в новом окне

_____________
Парсинг - автоматизация ручной работы. http://tceburashka.com
Astin
Цитата
Что-то не пойму... что ты хочешь? Мне кажется для этого существует меню в котором можно все-что угодно задать? Или заявки открывать в новом окне


tceburashka.com
Я же объяснил что есть посраничная навигация и если юзер перешел со списка второго
к просмотру заявки то обратно по ссылке может вернуться именно к выводу
второго списка а не в начало.
Но если в ссылке поставить просто $_SERVER['HTTP_REFERER']
и если перейдут на заявку с другого сайта то в ссылке Назад к списку
будет стоять ссылка не моего сайта а сайта с которого перешли и соответственно
это не только косяк, а это еще и поисковики могут проиндексировать как внешнюю
ссылку и это не есть Хорошо для сайта.
killer8080
<a href="/order/<?=$row['id']?>/?return=<?=urlencode('//'.$_SERVER['SERVER_NAME'].$_SERVER['REQUEST_URI'])?>"><?=$row['item']?></a>
Быстрый ответ:

 Графические смайлики |  Показывать подпись
Здесь расположена полная версия этой страницы.
Invision Power Board © 2001-2024 Invision Power Services, Inc.