Antichat снова доступен.
Форум Antichat (Античат) возвращается и снова открыт для пользователей.
Здесь обсуждаются безопасность, программирование, технологии и многое другое.
Сообщество снова собирается вместе.
Новый адрес: forum.antichat.xyz
 |
Http_referer, подскажите как лучше сделать. |

28.07.2008, 14:29
|
|
Постоянный
Регистрация: 21.02.2007
Сообщений: 568
Провел на форуме: 2954516
Репутация:
303
|
|
Http_referer, подскажите как лучше сделать.
В общем дела такие, есть у меня сайт, вполне прилично раскручен и т.д.
90% посетителей люди с поисковиков, вначале попадают на главную страницу. Сайт продаёт некий товар. На одной из последних страниц есть форма обратной связи и мне на почту приходит не только то что написал заказчик, но и IP, и ещё кое-что.
Меня уже давно интересует с каких страниц люди попадают на мой сайт. Самый простой выход использовать HTTP_REFERER. Но если я его вписываю на страницу обратной связи, то получаю свою собственную страницу, а не ту с которой пришёл покупатель.
Можно конечно на главной странице разместить
что-нибудь из этой серии
$H=getenv("HTTP_REFERER");
$f=fopen("log.txt",'a');
flock ($f,2);
fwrite($f,"$H\n");
fclose($f);
но тогда я буду иметь охренительный txt файл со всеми посетителями, и вручную по совпадению IP потом всё искать, а оно мне не надо.
меня интересуют только заказчики, а не "туристы".
К тому же это лишняя нагрузка на сервак, а он у меня в "банановой республике" на 10 мегабитном канале, ему и так нелегко.
По нормальному это можно воплотить в жизнь?
|
|
|

28.07.2008, 16:46
|
|
Banned
Регистрация: 06.06.2006
Сообщений: 944
Провел на форуме: 3986705
Репутация:
1403
|
|
есть форма обратной связи и мне на почту приходит не только то что написал заказчик, но и IP, и ещё кое-что.
Если есть форма обратной свзяи, значит это скирпт. А в скрипт мона прикрутить и рефералку. Например:
$H=getenv("HTTP_REFERER");
....
Тут код формы
...
$body="ТУТ НАПРИМЕР ТЕКСТ СООБЩЕНИЯ ОТ ПОЛЬЗОВАТЕЛЬЯ \r\n REF=".$H;
В итоге к тебе на мыло должно придти
ОТ: ....
Сообщение:
Текст
REF=http://site/page
Но это тока мысли =)
Конечно мона каждый раз рефер писать в куки, чтоб не было лагов типа в реферале этажа страница... ну короче хз хз хз хз хз хз
|
|
|

28.07.2008, 16:55
|
|
Участник форума
Регистрация: 01.12.2007
Сообщений: 141
Провел на форуме: 1208190
Репутация:
136
|
|
А можно еще и так сделать:
1. на главной запускаеш сессию, создаеш переменную сессии, в нее записываеш ссыль с которой пришел пользователь, затем если пользователь дошел до формы заказа то соответсвенно и содержимое переменной сессии отправляется тебе, а если нет, то на нет и суда нет.. Все просто.
2.перенесите тему в раздел с Php программингом.. 
|
|
|

29.07.2008, 12:09
|
|
Постоянный
Регистрация: 21.02.2007
Сообщений: 568
Провел на форуме: 2954516
Репутация:
303
|
|
если это $H=getenv("HTTP_REFERER") написать на странице формы обратной связи, то получая свою страницу.
0x22b, а как делать сесии с главной, не делая записей в промежуточный файл?
Последний раз редактировалось lmns; 29.07.2008 в 12:11..
|
|
|

29.07.2008, 13:09
|
|
Участник форума
Регистрация: 01.12.2007
Сообщений: 141
Провел на форуме: 1208190
Репутация:
136
|
|
На главной пишеш в самом начале PHP кода:
<?php
session_start();
$_SESSION['reflink'] = $_SERVER['HTTP_REFERER'];
...
тут все твое..
?>
что мы сделали? мы запустили сессию и присвоили переменной сессии значение ссылки с которой перешел пользователь. Суть сессий в том что, значения их переменных может передаваться от скрипта к скрипту..
теперь на странице с формами обратной связи пишеш следующее:
<?php
session_start();
и дальше после этой строки кода, можеш получать доступ к уже созданной давно переменной сессии: $_SESSION['reflink'], и значение в ней будет то самой что записалось в нее с главной. а далее уже можеш писать инфу в БД.
для удобного использования присваиваеш какой нибудь переменной и все:
$referer = $_SESSION['reflink'];
и уже можеш писать в базу или куда заблагорассудиться.. надеюсь объяснил все доходчиво..
|
|
|

29.07.2008, 14:17
|
|
Постоянный
Регистрация: 21.02.2007
Сообщений: 568
Провел на форуме: 2954516
Репутация:
303
|
|
Ок, спасибо просто не знал этой фени, сегодня попробую ближе к ночи, сейчас трафф большой.
Последний глупый вопрос, значения сессий не перемешаются, если на сайт пришёл второй чел, а первый не дошёл ещё до формы обратной связи?
Т.е. одновременно штук 50-100 может существовать?
|
|
|

29.07.2008, 14:36
|
|
Постоянный
Регистрация: 05.01.2007
Сообщений: 508
Провел на форуме: 2360904
Репутация:
1393
|
|
Сообщение от lmns
Ок, спасибо просто не знал этой фени, сегодня попробую ближе к ночи, сейчас трафф большой.
Последний глупый вопрос, значения сессий не перемешаются, если на сайт пришёл второй чел, а первый не дошёл ещё до формы обратной связи?
Т.е. одновременно штук 50-100 может существовать?
естественно =)
|
|
|

29.07.2008, 14:45
|
|
Участник форума
Регистрация: 01.12.2007
Сообщений: 141
Провел на форуме: 1208190
Репутация:
136
|
|
Конечно можно и 50 и 100, для каждого юзера, свое значение..
|
|
|

30.07.2008, 11:01
|
|
Постоянный
Регистрация: 21.02.2007
Сообщений: 568
Провел на форуме: 2954516
Репутация:
303
|
|
При добавлении на главную страницу
<?php
session_start();
$_SESSION['reflink'] = $_SERVER['HTTP_REFERER'];
?>
выдаёт
Warning: session_start() [function.session-start]: Cannot send session cookie - headers already sent by
Warning: session_start() [function.session-start]: Cannot send session cache limiter - headers already sent
Что не так?
|
|
|
|
 |
|
Здесь присутствуют: 1 (пользователей: 0 , гостей: 1)
|
|
|
|