PDA

Просмотр полной версии : Замена реферера на тдс - как сделать?



SkyDreamer
06.10.2011, 00:07
Итак, имеем:

Тизерка (в данном случае тизернет) передает реферер вот в таком виде: http://gueur.com/news.php?tz=ХХХХХХ (это хорошо видно на тдс). Домен может меняться, ХХХХХХ - глобальный номер тизера в тизернет.

ТДС читает реферер вот так:

$ref=urldecode($_SERVER['HTTP_REFERER']);

Что нужно? Нужно чтоб в стате МС "По площадкам" было не вот так: gueur.com/news.php (все что после "?" - обрезается), а например вот так: ХХХХХХ.com. В итоге в стате "По площадкам" будем видеть стату по каждому тизеру.

Как делаю? Добавляю ниже в код:


$teasernet_ref = array("gueur.com"); // вобьем сюда все домены тизернета
$isteasernet = false; // по дефолту юзер не с тизернета
foreach ($teasernet_ref AS $key=>$value) {
$isteasernet = substr_count($ref, $value); // считаем сколько раз текущий элемент массива (домен) входит в реферер
if ($isteasernet == 1) { // если хотя бы раз (а будет именно 1 раз) >> делаем вывод что юзер пришел с тизернета, вырезаем искомый номер тизера ХХХХХХ и пишем его в реферер
$num_begin = strpos ($ref, "=");
$num_end = strlen($ref);
$temp_ref = substr($ref, ($num_begin + 1), ($num_end - $num_begin) );
$ref = $temp_ref.".com";
}
}

Все это - не работает. Вопрос - почему? Где косяк?

Support
06.10.2011, 13:32
подменить реферер достаточно проблематично. Проще и надежнее номер тизера передавать в параметр sid

sveta
06.10.2011, 15:30
подменить реферер достаточно проблематично. Проще и надежнее номер тизера передавать в параметр sid

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

PolarBear
06.10.2011, 16:11
Реферер подменить нельзя, если только все это не выполняется на машине с патченным браузером.

SkyDreamer
06.10.2011, 22:40
подменить реферер достаточно проблематично. Проще и надежнее номер тизера передавать в параметр sid
Да, так раньше и делал. Просто сейчас есть очень много тизеров, у которых в кач-ве sid не прописаны номера. Более того, в sid передается номер площадки тизернета.

SkyDreamer
06.10.2011, 22:43
Реферер подменить нельзя, если только все это не выполняется на машине с патченным браузером.

Ну так на ТДС ведь можно крутить траф как угодно. ТДС читает реферер в переменную, чего там дальше с ней - уже не важно, хоть как крути. Ведь ТДС при редиректе юзера на аут схемы в кач-ве реферера и передает ее содержимое. Вот ее и нужно обработать, с тем чтоб передавались несколько другие данные.

pori
07.10.2011, 07:53
Ну так на ТДС ведь можно крутить траф как угодно. ТДС читает реферер в переменную, чего там дальше с ней - уже не важно, хоть как крути. Ведь ТДС при редиректе юзера на аут схемы в кач-ве реферера и передает ее содержимое. Вот ее и нужно обработать, с тем чтоб передавались несколько другие данные.

ТДС тут не при чем. На PHP можно только считать реферер в переменную, далее все что ты сделаешь с этой переменной на реальном реферере не отразится. Предложу для твоего случая вариант:

- берешь свой сайт с доменом YYY.ru
- делаешь через htaccess mode-rewrite на внутреннюю страницу со всех страниц вида YYY.ru/ХХХХХХ где (ХХХХХХ - глобальный номер тизера в тизернете), с которых в свою очередь через meta редиректи на платник
- твою ТДС переписываешь скрипт так, что бы редиректило на твой сайт YYY.ru/XXXXXX. Т.е. просто правь $ref в формат YYY.ru/ХХХХХХ и делай header('Location: '.$ref);