Эта тема на forum.dklab.ru


Новичек: Передача HTTP_REFERER
Здравствуйте.
Хочу сказать, что в поиске искал, но что-то ответа не нашел.
Проблема вот в чем.
На сайте висит партнерка, и идет личная статистика учета переходов, вот как это выглядит
ссылка на сайте
<a href="http://www.myisite.ru/count.php?url=http://www.partner.ru" target=_blank>Partner</a>
файл count.php
<?php
// Учитываем посещение по ссылке url
// с заносом в БД
echo "<HTML><HEAD>
<META HTTP-EQUIV='Refresh' CONTENT='0; URL=".$_GET['url']."'>
</HEAD></HTML>";
?>
но на сайт партнерки не передается HTTP_REFERER, а по условию партнерки должно определятся, с какого сайта пришел посетитель.
Как в такой ситуации передать HTTP_REFERER ?
Может конечно как по другому сделать и учет и переход ? только что-бы переделок не много было.
Phlint:
хм. или в popup'е сначала открыть свою парнёрку
или убрать target="_blank"
вроде так
Anonymous:
разницы нет с targetom или без него, HTTP_REFERER все равно не передается, сначало было без targeta, но не удобно посетителям, потом надо возвращаться на сайт, если надо кому, пришлось сделать в новом окне.
а никак нельзя указать принудительно передачу HTTP_REFERE ?
Ну типа HTTP_REFERER = http://www.myisite.ru
я пробовал, но что-то не выходит, может как можно ?
Дмитрий Котеров:
а никак нельзя указать принудительно передачу HTTP_REFERE ?
Если скрипт count.php это поддерживает, то можно, наверное.
Но если не поддерживает - то нельзя.
Anonymous:
ну а как сделать что-бы скрипт потдерживал ?
сейчас конечно нет, в нем нечего кроме заноса переменной в БД нету. неужеле это такой уж сложный вопрос ?
В топике http://forum.dklab.ru/viewtopic.php?p=22144#22144 yUAC пишит
Все равно не имеет никакого смысла обращаться к этой переменной - её очень легко подделать.
Так если уж потделать легко, то неужеле нельзя подсказать как ее передать ?
И неужеле ее так легко потделать ?
Дмитрий Котеров:
Сформулируйте четко вопрос. Пока что все, что Вы сказали, - болото.
Anonymous:
вот при такой структуре скрипта перехода на другой сайт, мне надо что, бы передалась на тот сайт HTTP_REFERER
<?php
// Учитываем посещение по ссылке url
// с заносом в БД
echo "<HTML><HEAD>
<META HTTP-EQUIV='Refresh' CONTENT='0; URL=".$_GET['url']."'>
</HEAD></HTML>";
?>
возможно это или нет ?
если нет, то что можете посоветовать насчет передачи HTTP_REFERER примерно при такой структуре файла.
то есть что-бы не переписывать учет пользователей. как я понимаю, реально HTTP_REFERER передается если идет прямой переход по ссылке, а как раз при таком учете пользователей прямого перехода и не получается.
Дмитрий Котеров:
echo "<META HTTP-EQUIV='Refresh' CONTENT='0; URL=".$_GET['url']."&HTTP_REFERER=".htmlspecialchars($_SERVER['HTTP_REFERER'])."'>";
Anonymous:
не работает вообще, переходит на поисковик
Дмитрий Котеров:
Сочувствую.
Anonymous:
это все что Вы можете посоветовать ? :(
вроде спецы в PHP.
Дмитрий Котеров:
Мы спецы в PHP, а не в телепатии.
http://ln.com.ua/~openxs/articles/smart-questions-ru.html!
Anonymous:
ссылка на сайте
<a href="http://www.myisite.ru/count.php?url=http://www.partner.ru" target=_blank>Partner</a>
файл count.php
<?php
include("config.php");
$url = $_GET['url'];
$row=mysql_query("SELECT * FROM counter WHERE linck='$url'");
$res=mysql_fetch_array($row);
$count = $res['count'];
$count+=1;
mysql_query("UPDATE counter SET count='$count' WHERE linck='$url'");
echo "<HTML><HEAD>
<META HTTP-EQUIV='Refresh' CONTENT='0; URL=".$_GET['url']."'>
</HEAD></HTML>";
?>
как передать HTTP_REFERER ?
Как еще надо по Вашему написать вопрос ?
От того что расписал занос в БД, по моему нечего не изменилось в постановке вопроса.
Дмитрий Котеров:
как передать HTTP_REFERER ?
HTTP_REFERER какой страницы?
Куда передать?
Вы сами-то свой вопрос прочитайте вначале.
Anonymous:
все это было написано в первом посте
но на сайт партнерки не передается HTTP_REFERER, а по условию партнерки должно определятся, с какого сайта пришел посетитель.
вроде ясно, что на сайт http://www.partner.ru должно передатся HTTP_REFERER = http://www.myisite.ru
SNiP:
www.site.ru/page1 - здесь ссылка на www.site.ru/page2
www.site.ru/page2 редиректит на www.site.ru/page3
www.site.ru/page3 - сайт партнерки.
Так вот при таком раскладе, если кликнуть по ссылке на www.site.ru/page1 то попав на www.site.ru/page3 HTTP_REFERER будет www.site.ru/page1
если же просто набрать в строке браузера www.site.ru/page2 то попав на www.site.ru/page3 HTTP_REFERER не будет.
Все происходит так, если использовать header("Location: $url");
Если же редиректить при помощи meta http-equiv="Refresh", то реферер не передается вообще, ни в каких случаях.
благ:
Дмитрий Кóтеров
че непонятного в его вопросе?

Гость
в count.php попробуй так:
echo "<META HTTP-EQUIV='Refresh' CONTENT='0; URL=".$_GET['url']."&ref=".htmlspecialchars($_SERVER['HTTP_REFERER'])."'>";

ну и используешь уже обычную переменную ref, она должна будет передать урл, с которого нажали на count.php
Anonymous:
благ
Гость
в count.php попробуй так:
echo "<META HTTP-EQUIV='Refresh' CONTENT='0; URL=".$_GET['url']."&ref=".htmlspecialchars($_SERVER['HTTP_REFERER'])."'>";

ну и используешь уже обычную переменную ref, она должна будет передать урл, с которого нажали на count.php
при таком раскладе $ref не будет передана как обычная переменная, что-бы она была как обычная переменная между URL=".$_GET['url']." и ref=".htmlspecialchars надо писать не &, а ?, если пишешь &, то вообще получается не пойми что, так как это выходит как бы продолжением url, а если пишишь ?, то HTTP_RERFERER всеравно не определяется.
В общем, как я понимаю, тут никто нечего конкретного подсказать не может :(
благ:
Гость
ну да, вместо '&' надо было '?', не заметил

а попробуйте проверить - реферер вообще определяется?
Anonymous:
Определяется.
Дмитрий Котеров:
В общем, как я понимаю, тут никто нечего конкретного подсказать не может :(
Нет. Просто конкретность ответов не превосходит конкретности вопросов.
Вам надо самостоятельно разобраться, что же Вы хотите сделать все-таки.
http://ln.com.ua/~openxs/articles/smart-questions-ru.html
Navigator:
э! не$_SERVER['HTTP_REFERER'] a $_SERVER['HTTP_REFERRER']
я сам неоднократно допускал такие ошибки. Попробуйте ;)
Дмитрий Котеров:
А по-моему, все-таки с одним "R" пишется.
Вернее, пишется-то с двумя, но переменная называется - с одним. Ошибка создателей протокола CGI.
Евгений Галашин:

э! не $_SERVER['HTTP_REFERER'] а $_SERVER['HTTP_REFERRER'] я сам неоднократно допускал такие ошибки. Попробуйте ;)

http://www.faqs.org/rfcs/rfc2616.html -- читать до просветления.

Ошибка создателей протокола CGI.

Не CGI, а HTTP.

Эта тема на forum.dklab.ru