Да не нужно платно писать, есть уже готовые скрипты подобного рода. Года 2 назад находил на одном из форумов.---------- Добавлено 11.04.2013 в 13:35 ----------
Спасибо, но мне не обязательно что бы реф был с гугл, возможно к примеру ссылка на moysite.com будет на этом форуме, соответственно реф будет searchengines.ru, человек не увидит signup.php, а его подмену signup2.php
Кто-нибудь может помочь?
Без разницы как, главное что бы работало условие.
Если у человека есть HTTP_REF не нагуленнай на нашем же сайте, то при клике на signup.php - редиректило на signup2.php
Ежели человек без рефа или который принадлежит моему же сайте, то соответственно при клике на signup.php открывалась эта же страница (signup.php)
Это не для доров, а абсолютно для других целей.
Сорри, очень спешу сейчас. Посмотрю более детально о чём ты написал.
Сейчас вот какой вопрос.
Возможно ли как-нибудь определить человека, кто просто вбил ссылку в браузер
или кликнул по ссылке и зашёл на сайт?
возможно скриптик какой-нибудь дописать
соответственно тех кто вбил в браузер - редиректило куда нужно.
Ходят но не половина пользователей. Это не сайт для букмарков вобще.
jano добавил 12-11-2011 в 12:10
Вот, уже по существу. Похоже такая функция, как http referrer в настоящее время потеряла ликвидность.
Интересно кто-нибудь сталкивался с такой проблемой, как заставить браузеры адекватно http ref передавать? Возможно как-то через яву или нет смысла?
Половина пользователей не может копировать ссылки в браузер и заходить на сайт таким не удобным способом.
Да в челом проверяли ведь мы. К примеру есть ид 56334, отписали человеку с каких ресурсов идёт трафик и какого типа стоит реклама.
Попандеров, вобще открытых ссылок нет у него, всё чисто. А ~30-40% идут без рефа и у всех так.
Вы верите, что у половины пользователей отключены рефы? Мне с трудом верится, не возможно такое.
Выше кода написал суть проблемы.
У меня Mozilla(3,6 версия), реф передаёт на ура.
Заглянул в логи апача, вправду редиректит только тех у кого эти браузеры:
Opera/9.80
Mozilla/4.0
Mozilla/5.0
Нужно будет проверить.
Логи апача смотрел в первую очередь, боты есть конечно, но они не учитываются.
// 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";
$url = $page.$c."ref=$ref&rd=1";
if ($_GET['ex'] != "") {
$url .= "&ex=".$_GET['ex'];
header("Location: $url");
// design num
unset($des);
if (isset($_GET['d'])) {
$des = $_GET['d'];
// 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&";
// 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";
// custom designs redirect
if ($is_index && isset($custom_designs[$m_id]) ) {
header("Location: ".$custom_designs[$m_id].$dpid);
if ($is_index&& !in_array($sid, $ss)) {
header("Location: /indexx2.html");
function geo_include($group, $file) {
global $geo_groups;
if ($geo_groups[$cntr] == $group) {
// country match group
if (is_readable($file)) {
include($file);
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"];
// 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'];
*/
// ban status
check_ban_status($m_id);
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";
$log .= "$sid|$m_id|ref|bookmark|$self\n";
$fp = fopen('/home/dp/spool/stats', 'a');
// set uniq cookie
setcookie("uniq", '1', time()+(60*60*24));
if ($m_id != "0") {
setcookie("id", $id, time()+(60*60*24*WM_COOKIE_DAYS));
if (isset($_GET['tr'])) {
$tr = "&tr=".$_GET['tr'];
if (isset($_GET['ps'])) {
$ps = "&ps=".$_GET['ps'];
// FHS pages
if (isset($_GET['pp'])) {
$self = $_GET['pp'];
// compose $fhgid
$fhgid = "?id=$id&p=$sid&pp=$self$tr$ps";
$fhgtourid = "&id=$id&p=$sid&pp=$self$tr$ps";
$fhgid = "?p=$sid&pp=$self$tr$ps";
$fhgtourid = "&p=$sid&pp=$self$tr$ps";
?>
// ids
if (isset($_GET["id"]) && $_GET["id"] != '') {
// try from cookie
if (isset($_COOKIE["id"]) && ($self == $mainjpage || in_array($self, $jpages) || $counter == "join")) {
$join_c_ref = $_COOKIE["ref"];
// 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;
$ref = $_SERVER["HTTP_REFERER"];
$bmk = FALSE;
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)) {
if (isset($redir[$sid])) $url = $redir[$sid];
if (isset($_GET['id'])) $url .= "?id=".$_GET['id'];
// 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;
$sv_id .= $_GET['tr'];
$sv_id .= "_";
$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);
if (CCBILL_HEX_ID) {
$ccbj = sprintf("%04X%8s%-3s", $m_id, $crc, substr($_GET["tr"], 0, 3));
$ccbj = sprintf("%04d%8s%-3s", $m_id, $crc, substr($_GET["tr"], 0, 3));
if ($_GET["ps"] == "1" || $_COOKIE["ps"] == "1") {
$ccbj[0] = chr(ord($ccbj[0]) + 25);
$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') {
// 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);
print "can't find custom join page '$jp'\n";
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"];
$log = "";
// country
unset($geo_rd_url);
if (isset($c_enter[$cntr][$m_id])) {
$geo_rd_url = $c_enter[$cntr][$m_id];
// try direct account settings
if (isset($c_enter[$cntr]["0"])) {
$geo_rd_url = $c_enter[$cntr]["0"];
if ($is_index) {
$log .= "$sid|$m_id|cntr|$cntr\n";
if ($is_index && !isset($geo_rd_url)) {
$log .= "$sid|$m_id|raw\n";
$log .= "$sid|$m_id|uniq\n";
$r = $_SERVER["HTTP_REFERER"];
$log .= "$sid|$m_id|sref|{$_SERVER['HTTP_REFERER']}|$sr_crc\n";
$log .= "$sid|$m_id|ref|bookmark\n";
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
//var_dump($_SERVER);
//print "XXX2";
setcookie("ref", $_SERVER["HTTP_REFERER"], time()+(60*60*24*WM_COOKIE_DAYS));
setcookie("tr", $_GET["tr"], time()+(60*60*24*30));
// persignup
setcookie("ps", isset($_GET["ps"]) ? "1" : "0", time()+(60*60*24*WM_COOKIE_DAYS));
Что-то меня первый вопрос очень смутил. :)
Скинь контакт в личку или здесь, переговорим.