Forum Webscript.Ru
Программирование => PHP => Тема начата: victor123 от 23 Марта 2005, 02:50:23
-
Здравствуйте!
Я в PHP новичек - прошу сильно не пинать.
Суть задачи следующая: сделать счетчик посетителей http://www.сайт2.ru/about.html , которых посредством МЕТА редиректнули с http://www.сайт1.ру/фирма
src страницы по адресу http://www.сайт1.ру/фирма следующий (и я к нему доступа не имею):
в эту (сайт2.ru/about.html) страницу планирую вставить PHP-скрипт посредством SSI так:
текст counter.php следующий:
$count_file="counter.dat";
$f=fopen($count_file,"r");
$count=fgets($f,100);
fclose($f);
$from=getenv("HTTP_REFERER");
if ($from=="http://www.сайт1.ру/фирма")
{
$count++;
$f=fopen($count_file,"w");
fputs($f,"$count");
fclose($f);
}
echo "$count";
echo "откуда пришел пользователь:";
echo "$from";
?>
Увы, никак не пойму закономерности, по которой заполняется HTTP_REFERER. Он просто остается пустым и счетчик не увеличивается. Я так понимаю, это из-за МЕТА? Какие можете порекомендовать способы решения поставленной задачии?
Буду очень благодарен!
-
Из мана: http://phpclub.net/manrus/rese/variables.html#reserved.variables.server
\'HTTP_REFERER\'
Адрес страницы (если имеется), который направил пользовательского агента (ПА) на текущую страницу. Устанавливается ПАгентом. Не все ПА будут его устанавливать, а некоторые могут модифицировать HTTP_REFERER. Короче говоря, доверять ему нельзя.
Попробуй: REQUEST_URI
-
Lutik
во-первых, тут контингент у страницы предполагается такой, что вряд ли у кого-то окажется что-то отличное от IE. да и не так критично это.
а во-вторых, расскажите поподробнее про REQUEST_URI
-
http://phpclub.net/manrus/rese/vari...ariables.server
Посмотри все переменные которые там описаны там есть REQUEST_URI
Вобщем вернет тожесамое что и HTTP_REFERER
-
сдается мне, Lutik, ты совсем не в ту степь уехал
-
что-то ссылка не работает..
-
Объективное мнение гуру нашего форума (RomikChef) хочу услышать. Куда надо ехать и на чем? :) Аж самому стало интересно!
-
victor123,а зачем ты вообще завязываешься на реферер, когда все партнерские программы работают через передачу параметра?
ну, что-то вроде
?partner">
-
я же написал, что не имею доступа у сайту1.
потому и нет возможности передать с него параметр.
можете помочь более дельными советами?
-
могу.
но теперь не хочу.
-
я что-то сказал не так? или на ваш взгляд у меня совсем клинический случай?
-
немного того, немного другого.
я не очень силён в технологии ssi, но насколько мне представляется, при выполнении инструкции include апач делает отдельный запрос к себе. ну и реферер будет совершенно очевидно пустым. поскольку запрос делает апач а не браузер
-
RomikChef
следуя Вашей подсказке, все же удалось уговорить подправить страницу, с которой происходит редирект. Сделали в таком духе (как Вы говорили):
подскажите, как теперь на странице, на которую произведен редирект, считать этот параметр? а то я совсем чайник еще...
-
лучше бы сделали ссылку вида http://www.сайт2.ru/about.php?partner
я же говорю - не силён в SSI
смотри в своем счетчике phpinfo()
если там есть твой партнёр - хорошо. если нет - читай доку по ssi, смотри, как там выцепить квери стринг и присоединить к вызову счетчика
-
victor123
в сайт2.ru/about.html
а в counter.php
$from=getenv("QUERY_STRING");
ну и соответственно проверяешь
if ($from=="partner") и т.д.
-
Mog.
я уже пытался так сделать. нашел Ваш же, кажется, совет здесь на форуме. Но у меня почему-то {QUERY_STRING} так и остается. т.е. не обрабатывается сервером никак..
-
RomikChef:
если там есть твой партнёр - хорошо. если нет - читай доку по ssi, смотри, как там выцепить квери стринг и присоединить к вызову счетчика
-
Но у меня почему-то {QUERY_STRING} так и остается. т.е. не обрабатывается сервером никак..
что означает этот текст?
что значит - остаётся? Что значит - не обрабатывается? А как она должна обрабатываться?
-
я так предполагаю, что должно заменяться на URL, которым запросили документ сайт2.ru/about.html
а далее передаваться через SSI в скрипт counter.php
но у меня передается только ${QUERY_STRING} как plain text. Т.е. сервер не заменяет этот параметр на URL
-
victor123:
я так предполагаю, что должно заменяться на URL
что должно заменяться? на какой URL? Зачем? Где заменяться?
victor123:
но у меня передается только ${QUERY_STRING} как plain text
а должно как передаваться? как html?
я начинаю сомневаться в том, что решение задачи тебе вообще нужно.
Читаем то, что я тебе два дня назад написал:
RomikChef:
смотри в своем счетчике phpinfo()
если там есть твой партнёр - хорошо. если нет - читай доку по ssi, смотри, как там выцепить квери стринг и присоединить к вызову счетчика
что из этого выполнено?
какие результаты?
-
если бы у меня было время перечитывать все доки - я бы здесь не спрашивал. но в будущем обязательно перечитаю, что бы здесь вот такие вот резкие высказывания не читать. :(
задачу я уже реализовал, между прочим.
-
вот видишь, как хорошо
самостоятельно работать - всегда полезнее.
а уж обещание прочитать документаццию и вовсе отрадно. правда, не обязательно читать всю - достаточно только ту, которую надо для конкретного случая.
а спрашивать здесь не нужно не потому, что высказывания резкие, а потому, что SSI к теме этого форума не имеет ну ни малейшего отношения :-)