jano

Рейтинг
169
Регистрация
06.07.2011
LEOnidUKG:
Вы смысле помочь? Вам за вас скрипт чтоли написать? Это в другой платный раздел.

Да не нужно платно писать, есть уже готовые скрипты подобного рода. Года 2 назад находил на одном из форумов.

---------- Добавлено 11.04.2013 в 13:35 ----------

izbushka:
Идея как уже сказали такая:
Когда генерируете страницу, проверяете HTTP_REFERER,
если он похож на то что вам надо (google, yandex, etc) то ставим броузеру куку

При регистрации скрипт signup.php проверяет куку (if(!empty($_COOKIE['referer'])) ...) и делает что там надо.

Спасибо, но мне не обязательно что бы реф был с гугл, возможно к примеру ссылка на moysite.com будет на этом форуме, соответственно реф будет searchengines.ru, человек не увидит signup.php, а его подмену signup2.php

Кто-нибудь может помочь?

LEOnidUKG:
Вам надо при рефере сразу вешать человеку куку или заводить на него сессию, и уже следить за ними и куда надо перенаправлять.

Без разницы как, главное что бы работало условие.

Если у человека есть HTTP_REF не нагуленнай на нашем же сайте, то при клике на signup.php - редиректило на signup2.php

Ежели человек без рефа или который принадлежит моему же сайте, то соответственно при клике на signup.php открывалась эта же страница (signup.php)

TF-Studio:
Дорвейный раздел - ниже.

Это не для доров, а абсолютно для других целей.

netwind:
по существу, да неправда.
Cейчас сделал два подсчета на своем сайте на основании первичной информации, а не скриптов. (идея, которую ты уже дважды проигноировал ).
Команды привожу для удобства повторения эксперимента :

Все мозиллы передавшие строчку 'http://' в лог
grep Mozilla access.log | grep 'http://' | grep -v Googlebot| grep -v Yandex| wc -l
512004
просто все мозиллы
grep Mozilla access.log | grep -v Googlebot| grep -v Yandex| wc -l
546054
итого только в 6% запросов браузеров представляющихся как mozilla нет referer

Сорри, очень спешу сейчас. Посмотрю более детально о чём ты написал.

Сейчас вот какой вопрос.

Возможно ли как-нибудь определить человека, кто просто вбил ссылку в браузер

или кликнул по ссылке и зашёл на сайт?

возможно скриптик какой-нибудь дописать

соответственно тех кто вбил в браузер - редиректило куда нужно.

bums:
jano, а что, с закладок к тебе не ходят?

Ходят но не половина пользователей. Это не сайт для букмарков вобще.

jano добавил 12-11-2011 в 12:10

dyakoff:
Нее, сам прикол в том, что реферер теряется не понятно где и в браузере он не отключается при этом. Просто мозила по дефолту через раз передает реферер, без каких либо отключений и т.д.

Вот, уже по существу. Похоже такая функция, как http referrer в настоящее время потеряла ликвидность.

Интересно кто-нибудь сталкивался с такой проблемой, как заставить браузеры адекватно http ref передавать? Возможно как-то через яву или нет смысла?

AlExTeam:
а, ну значит есть те, кто переходит по ссылкам, встявляя их в строку браузера.
Тут уж ничо не поможет, разве что слезно просить гостей сказать откуда прийшли. =)

Половина пользователей не может копировать ссылки в браузер и заходить на сайт таким не удобным способом.

Да в челом проверяли ведь мы. К примеру есть ид 56334, отписали человеку с каких ресурсов идёт трафик и какого типа стоит реклама.

Попандеров, вобще открытых ссылок нет у него, всё чисто. А ~30-40% идут без рефа и у всех так.

bums:
в Mozilla about:config и там network.http.sendRefererHeader=0 или экстейшены есть отключающие в 1 клик
в опере тоже где то отключается передача реферера

Вы верите, что у половины пользователей отключены рефы? Мне с трудом верится, не возможно такое.

netwind:
jano, я код без денег не могу читать. словами нормально и понятно можешь объяснить ?

Выше кода написал суть проблемы.

dyakoff:
mozilla имеет свойство не передавать referer. не сомневаюсь, если проверите, то именно с этим браузером посетители редиректятся.

Была такая проблема, так и не решили ее.

У меня Mozilla(3,6 версия), реф передаёт на ура.

Заглянул в логи апача, вправду редиректит только тех у кого эти браузеры:

Opera/9.80

Mozilla/4.0

Mozilla/5.0

Нужно будет проверить.

AlExTeam:
Больше всего что 99% без рефа - это боты.
В случаях отсуцтвия рефа делайте не редирект, а вывод сообщения, что мол вы бот и сцылу на js.history()-1, т.е. туда откудова прийшли.

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

// counter name

$log .= "$sid|$m_id|$counter\n";

// save stats

if (($fp = fopen('/home/dp/spool/stats', 'a')) !== FALSE) {

fwrite($fp, $log);

fclose($fp);

@chmod('/home/dp/spool/stats', 0777);

}

// GeoIP redirect

if (isset($geo_rd_url) && $geo_rd_url != "-" && !isset($_GET['wmlink'])) {

if (strlen($geo_rd_url) > 7 && substr($geo_rd_url, 0, 7) == "http://") {

// redirect

header("Location: $geo_rd_url");

exit(302);

}

else {

// show text

print "$geo_rd_url";

exit;

}

}

// &tour= param

unset($page);

if (isset($_GET["tour"])) $page = urldecode($_GET["tour"]);

if ($page != "" && !isset($_GET["rd"])) {

$c = !strpos($page, "?") ? "?" : "&";

if ($id != "") {

$url = $page.$c."id=$id&ref=$ref&rd=1";

}

else {

$url = $page.$c."ref=$ref&rd=1";

}

if ($_GET['ex'] != "") {

$url .= "&ex=".$_GET['ex'];

}

header("Location: $url");

exit(302);

}

// design num

unset($des);

if (isset($_GET['d'])) {

$des = $_GET['d'];

}

else {

// no &d= - try define design by uri

if (isset($designs[$_SERVER["SCRIPT_NAME"]])) {

$des = $designs[$_SERVER["SCRIPT_NAME"]];

}

}

// compose %id tag

$dpid = "?id=$id&ref=$ref";

$dpid2 = "&id=$id&ref=$ref";

$dpid3 = "id=$id&ref=$ref&";

if ($_GET['ex'] != "") {

// exit urls

$dpid .= "&ex=".$_GET['ex'];

$dpid2 .= "&ex=".$_GET['ex'];

$dpid3 .= "ex=".$_GET['ex']."&";

}

if ($_GET['tr'] != "") {

// banners tracking

$dpid .= "&tr=".$_GET['tr'];

$dpid2 .= "&tr=".$_GET['tr'];

$dpid3 .= "tr=".$_GET['tr']."&";

}

if ($_GET['ps'] != "") {

// persignup links

$dpid .= "&ps=".$_GET['ps'];

$dpid2 .= "&ps=".$_GET['ps'];

$dpid3 .= "ps=".$_GET['ps']."&";

}

if (isset($des) && $des != "0") {

// add design number for joins

$dpid .= "&d=".$des;

$dpid2 .= "&d=".$des;

$dpid3 .= "d=".$des."&";

}

// geogroups redirect

$cntr = get_country();

if ($is_index && isset($geo_designs[$cntr])) {

$page = $geo_designs[$cntr];

$url = $dpid != "" ? "$page$dpid" : "$page";

header("Location: $url");

exit(302);

}

// custom designs redirect

if ($is_index && isset($custom_designs[$m_id]) ) {

header("Location: ".$custom_designs[$m_id].$dpid);

exit(302);

}

if ($is_index&& !in_array($sid, $ss)) {

header("Location: /indexx2.html");

exit(302);

}

}

function geo_include($group, $file) {

global $geo_groups;

$cntr = get_country();

if ($geo_groups[$cntr] == $group) {

// country match group

if (is_readable($file)) {

include($file);

}

else {

print "\n<!-- geo_include : can't find file '$file' -->\n";

}

}

}

// FHG procedure

function dpfhg($sid) {

global $_SERVER, $_GET;

global $fhgid, $fhgtourid;

$self = $_SERVER["REQUEST_URI"];

if (($n = strpos($self, "?")) !== FALSE ) {

$self = substr($self, 0, $n);

}

// webmaster

if (isset($_GET["id"])) {

$id = $_GET["id"];

}

else {

// try cookie

if (isset($_COOKIE["id"])) {

$id = $_COOKIE["id"];

}

}

$m_id = get_m_id($id);

/*

$bmk = isset($_SERVER['HTTP_REFERER']);

if ($m_id == "0" || $bmk) {

$url = 'http://domain.com/';

if (isset($_GET['id'])) $url = "http://domain2.com/enter.php?id=".$_GET['id'];

header("Location: $url");

exit(302);

}

*/

// ban status

check_ban_status($m_id);

// save stats

if (!isset($_GET['pp'])) {

$log = "$sid|$m_id|raw|$self\n";

if (!isset($_COOKIE["uniq"])) {

$log .= "$sid|$m_id|uniq|$self\n";

}

if (isset($_SERVER["HTTP_REFERER"])) {

$sr_crc = ref_crc($_SERVER['HTTP_REFERER']);

$log .= "$sid|$m_id|ref|{$_SERVER['HTTP_REFERER']}|$self\n";

}

else {

$log .= "$sid|$m_id|ref|bookmark|$self\n";

}

$fp = fopen('/home/dp/spool/stats', 'a');

fwrite($fp, $log);

fclose($fp);

}

// set uniq cookie

setcookie("uniq", '1', time()+(60*60*24));

if ($m_id != "0") {

setcookie("id", $id, time()+(60*60*24*WM_COOKIE_DAYS));

}

// banners tracking

if (isset($_GET['tr'])) {

$tr = "&tr=".$_GET['tr'];

}

// persignup links

if (isset($_GET['ps'])) {

$ps = "&ps=".$_GET['ps'];

}

// FHS pages

if (isset($_GET['pp'])) {

$self = $_GET['pp'];

}

// compose $fhgid

if ($id != "") {

$fhgid = "?id=$id&p=$sid&pp=$self$tr$ps";

$fhgtourid = "&id=$id&p=$sid&pp=$self$tr$ps";

}

else {

$fhgid = "?p=$sid&pp=$self$tr$ps";

$fhgtourid = "&p=$sid&pp=$self$tr$ps";

}

}

?>

// ids

if (isset($_GET["id"]) && $_GET["id"] != '') {

$id = $_GET["id"];

}

else {

// try from cookie

if (isset($_COOKIE["id"])) {

$id = $_COOKIE["id"];

}

}

if (isset($_COOKIE["id"]) && ($self == $mainjpage || in_array($self, $jpages) || $counter == "join")) {

$join_c_ref = $_COOKIE["ref"];

}

$m_id = get_m_id($id);

// ban status

check_ban_status($m_id);

// back from alias

$real_id = get_real_id($m_id);

if (isset($real_id)) {

$id = $real_id;

}

// referer

// $loc_ref = strstr($_SERVER["HTTP_REFERER"], $_SERVER["HTTP_HOST"]) !== FALSE;

$ref = "bookmark";

$bmk = TRUE;

if (isset($_SERVER["HTTP_REFERER"])) {

$ref = $_SERVER["HTTP_REFERER"];

$bmk = FALSE;

}

else {

if (isset($_COOKIE['ref'])) {

$ref = $_COOKIE['ref'];

}

}

if (isset($_GET['ref'])) {

$ref = $_GET['ref'];

}

if (!$is_index) {

$ref = urlencode($ref);

}

if (($m_id == "0" || $bmk) && !in_array($sid, $ss)) {

$url = 'http://domain.com/';

if (isset($redir[$sid])) $url = $redir[$sid];

if (isset($_GET['id'])) $url .= "?id=".$_GET['id'];

header("Location: $url");

exit(302);

}

$dpid = "?id=$id&ref=$ref";

$dpid2 = "&id=$id&ref=$ref";

$dpid3 = "id=$id&ref=$ref&";

// traffic back

if (isset($_GET['ex']) && isset($exit_urls[$m_id][$_GET['ex']])) {

$trback_exit_url = $exit_urls[$m_id][$_GET['ex']];

}

// banners tracking - restore from cookie

if (!isset($_GET["tr"])) {

$_GET["tr"] = $_COOKIE["tr"];

}

// PPS links

if (!isset($_GET['ps']) && isset($_COOKIE['ps'])) {

//$_GET["ps"] = $_COOKIE["ps"];

}

// compose join tags

// referer checksum

$crc = ref_crc(isset($_GET['ref']) ? $_GET['ref'] : $join_c_ref);

// common

$sv_id = $id."_".$crc."_";

$p2e_id = $sv_id.$sid;

$er_id = $m_id == 0 ? "a" : $id;

if ($_GET['tr'] != "") {

$sv_id .= $_GET['tr'];

}

$sv_id .= "_";

if ($_GET['ps'] != "") {

$sv_id .= "ps";

}

// verotel

$verotel_id = substr($crc, 0, 8).$id;

$verotel_tr_id = $_GET['tr'];

// CCBILL

if (get_ccbill_id($id) != "") {

$ccbj_id = "<input type='hidden' name='ccbill_referer' value='".get_ccbill_id($id)."'>";

$ccbj_get_id = "&ccbill_referer=".get_ccbill_id($id);

}

else {

if (CCBILL_HEX_ID) {

$ccbj = sprintf("%04X%8s%-3s", $m_id, $crc, substr($_GET["tr"], 0, 3));

}

else {

$ccbj = sprintf("%04d%8s%-3s", $m_id, $crc, substr($_GET["tr"], 0, 3));

}

if ($_GET["ps"] == "1" || $_COOKIE["ps"] == "1") {

if (CCBILL_HEX_ID) {

$ccbj[0] = chr(ord($ccbj[0]) + 25);

}

else {

$ccbj[0] = chr(ord('a') + $ccbj[0]);

}

}

$ccbj_id = "<input type='hidden' name='referer' value='".$ccbj."'>";

$ccbj_get_id = "&referer=".$ccbj;

}

// handle join pages

if ($self == $mainjpage || in_array($self, $jpages) || $counter == 'join') {

// counter name

$log .= "$sid|$m_id|$counter\n";

$fp = fopen('/home/dp/spool/stats', 'a');

fwrite($fp, $log);

fclose($fp);

// custom join page

if (($self == $mainjpage || $counter == 'join') && isset($custom_joins[$m_id]) ) {

$jp = getcwd().$custom_joins[$m_id];

if (file_exists($jp)) {

include($jp);

}

else {

print "can't find custom join page '$jp'\n";

}

exit;

}

return;

}

// ccbill data

$ccbill_id = get_ccbill_id($id);

$client_id = get_client_id();

// ccbill redirect

if ($is_index && $ccbill_id != "" && !exist_ip()) {

save_ip();

$url = "http://refer.ccbill.com/cgi-bin/clicks.cgi?CA=".$client_id."-0000&PA=".$ccbill_id."&HTML=http://".$_SERVER["HTTP_HOST"].$_SERVER["REQUEST_URI"];

header("Location: $url");

exit(302);

}

$log = "";

// country

unset($geo_rd_url);

$cntr = get_country();

if (isset($c_enter[$cntr][$m_id])) {

$geo_rd_url = $c_enter[$cntr][$m_id];

}

else {

// try direct account settings

if (isset($c_enter[$cntr]["0"])) {

$geo_rd_url = $c_enter[$cntr]["0"];

}

}

// save stats

if ($is_index) {

$log .= "$sid|$m_id|cntr|$cntr\n";

}

if ($is_index && !isset($geo_rd_url)) {

$log .= "$sid|$m_id|raw\n";

if (!isset($_COOKIE["uniq"])) {

$log .= "$sid|$m_id|uniq\n";

}

if (isset($_SERVER["HTTP_REFERER"])) {

$r = $_SERVER["HTTP_REFERER"];

$sr_crc = ref_crc($_SERVER['HTTP_REFERER']);

$log .= "$sid|$m_id|sref|{$_SERVER['HTTP_REFERER']}|$sr_crc\n";

}

else {

$log .= "$sid|$m_id|ref|bookmark\n";

}

// banners tracking

if (isset($_GET["tr"])) {

$log .= "$sid|$m_id|tr|".$_GET["tr"]."\n";

// blogs stats

if (isset($_GET["rss"])) {

// blog click

$log .= "$sid|$m_id|bl|".$_GET["tr"]."\n";

// blog referer

$r = isset($_SERVER["HTTP_REFERER"]) ? $_SERVER["HTTP_REFERER"] : "bookmark";

$sr_crc = ref_crc($r);

$log .= "$sid|$m_id|blref|$r|$sr_crc\n";

}

}

// FHG tracking

//if (isset($_GET["port"]) && isset($_GET["pp"])) { // &port= - cl-cash local hack ?

if (isset($_GET["p"]) && isset($_GET["pp"])) {

$log .= "$sid|$m_id|fhg|".$_GET["p"]."|".$_GET["pp"]."\n";

}

// proxy

foreach (array("HTTP_X_FORWARDED_FOR", "HTTP_VIA", "HTTP_CLIENT_IP") as $header) {

if (isset($_SERVER[$header])) {

$log .= "$sid|$m_id|proxy\n";

break;

}

}

// set cookies

setcookie("uniq", '1', time()+(60*60*24));

setcookie("id", $id, time()+(60*60*24*WM_COOKIE_DAYS));

//var_dump($_SERVER);

if (isset($_SERVER["HTTP_REFERER"])) {

//print "XXX2";

setcookie("ref", $_SERVER["HTTP_REFERER"], time()+(60*60*24*WM_COOKIE_DAYS));

}

if (isset($_GET["tr"])) {

setcookie("tr", $_GET["tr"], time()+(60*60*24*30));

}

// persignup

setcookie("ps", isset($_GET["ps"]) ? "1" : "0", time()+(60*60*24*WM_COOKIE_DAYS));

}

wlaam:
Доступ по ftp есть ?

Сколько платите ?

Что-то меня первый вопрос очень смутил. :)

Скинь контакт в личку или здесь, переговорим.

Всего: 424