![]() |
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 мегабитном канале, ему и так нелегко. По нормальному это можно воплотить в жизнь? |
Цитата:
$H=getenv("HTTP_REFERER"); .... Тут код формы ... $body="ТУТ НАПРИМЕР ТЕКСТ СООБЩЕНИЯ ОТ ПОЛЬЗОВАТЕЛЬЯ \r\n REF=".$H; В итоге к тебе на мыло должно придти ОТ: .... Сообщение: Текст REF=http://site/page Но это тока мысли =) Конечно мона каждый раз рефер писать в куки, чтоб не было лагов типа в реферале этажа страница... ну короче хз хз хз хз хз хз |
А можно еще и так сделать:
1. на главной запускаеш сессию, создаеш переменную сессии, в нее записываеш ссыль с которой пришел пользователь, затем если пользователь дошел до формы заказа то соответсвенно и содержимое переменной сессии отправляется тебе, а если нет, то на нет и суда нет.. Все просто. 2.перенесите тему в раздел с Php программингом.. :) |
если это $H=getenv("HTTP_REFERER") написать на странице формы обратной связи, то получая свою страницу.
0x22b, а как делать сесии с главной, не делая записей в промежуточный файл? |
На главной пишеш в самом начале PHP кода:
<?php session_start(); $_SESSION['reflink'] = $_SERVER['HTTP_REFERER']; ... тут все твое.. ?> что мы сделали? мы запустили сессию и присвоили переменной сессии значение ссылки с которой перешел пользователь. Суть сессий в том что, значения их переменных может передаваться от скрипта к скрипту.. теперь на странице с формами обратной связи пишеш следующее: <?php session_start(); и дальше после этой строки кода, можеш получать доступ к уже созданной давно переменной сессии: $_SESSION['reflink'], и значение в ней будет то самой что записалось в нее с главной. а далее уже можеш писать инфу в БД. для удобного использования присваиваеш какой нибудь переменной и все: $referer = $_SESSION['reflink']; и уже можеш писать в базу или куда заблагорассудиться.. надеюсь объяснил все доходчиво.. |
Ок, спасибо просто не знал этой фени, сегодня попробую ближе к ночи, сейчас трафф большой.
Последний глупый вопрос, значения сессий не перемешаются, если на сайт пришёл второй чел, а первый не дошёл ещё до формы обратной связи? Т.е. одновременно штук 50-100 может существовать? |
Цитата:
|
Конечно можно и 50 и 100, для каждого юзера, свое значение..
|
При добавлении на главную страницу
<?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 Что не так? |
| Время: 21:57 |