Как запилить такую фичу (php, cookies, доступ к странице).

lomster7
На сайте с 09.05.2011
Offline
84
1201

Вообщем в одной партнерской программе предлагаются ссылки на Landing-Page'ы формата:

http://site.ru/?hash=lqykx2

Эта ссылка редиректит на платник:

http://site2.ru/landing/land-2_ru/

При этом в куках посетителю кликнувшему по первой ссылке прописывается уникальный код к сайту, и юзеру открывается рабочая страница http://site2.ru/landing/land-2_ru/, при ЭТОМ, если очистить куки, и просто зайти по второму адресу редиректит на гугл.

Как сделать сие чудо? :) Отблагодарю чем смогу ;)

была реклама, а уже нету :)
ДП
На сайте с 23.11.2009
Offline
203
#1

Сорри, с доменами попутал.

Проверка referrer?

lomster7
На сайте с 09.05.2011
Offline
84
#2

---------- Добавлено 28.07.2014 в 11:01 ----------

А вот, всё, проанализировал get,post запросы браузера и пришёл к выводу, как оно работает, короче:

1. Захожу на сайт №1

2. Сайт №1 перекидает меня на сайт №2 с запросом в url: http://site2.ru/landing/main.php?s=10470&tds_hash=lqykx5&security_hash=3d5994d52f6ba03885274939fab2429e

3. Сайт №2 записывает мне куку в браузер и после этого редиректит на главную страницу http://site2.ru/

Пришёл к выводу, что первый сайт просто редиректит на другой сайт, при этом первый сайт знает какие параметры в url передать, второй сайт принимает посетителя, видит с какими параметрами пришёл запрос, и записывает куку в браузер юзера. =профит! теперь юзер может заходить постоянно на второй сайт, без надобности постоянно заходить на первый (пока живая кука).

vkusnoserver
На сайте с 30.04.2011
Offline
104
#3

Внимательно прочитал ваши сообщения, но не понял, в чем был вопрос.

Технически это реализуется очень просто.

По первому линку ставится кука и происходит редирект:


<?php
$date_of_expiry = time() + (86400 * 30); // ставим на 30 дней
if(setcookie('megacookie', 'megaredirect', $date_of_expiry)) {
sleep(3); // таймаут 3 секунды
header('Location: http://site2.ru/landing/land-2_ru/');
}
?>

По второму линку ставим условие в .htaccess:


RewriteEngine On
RewriteCond %{HTTP_COOKIE} !megacookie=megaredirect; [NC]
RewriteRule ^ http://www.google.com [NC,L]
Скидки на хостинг (/ru/forum/629944) | Конфигуратор (http://www.vkusnoserver.ru/link.php?id=31) | Администрирование (/ru/forum/871196) CEO собственной персоной - skype: vkusnoandy
ДП
На сайте с 23.11.2009
Offline
203
#4

Вы куки ставите в одном домене, а читать её пытаетесь в другом - так не получится.

vkusnoserver
На сайте с 30.04.2011
Offline
104
#5

Точно. Переутомился, сорри.

Дикий пионер, а как их тогда ставят куки-стафферы?

ДП
На сайте с 23.11.2009
Offline
203
#6

Да я сам сначала аналогичное решение написал, потом дошло, что с разными доменами не прокатит.

А для куки-стафферов в той же википедии основные способы перечислены - http://en.wikipedia.org/wiki/Cookie_stuffing#Techniques

lomster7
На сайте с 09.05.2011
Offline
84
#7
vkusnoserver:
Внимательно прочитал ваши сообщения, но не понял, в чем был вопрос.
Технически это реализуется очень просто.
По первому линку ставится кука и происходит редирект:

<?php
$date_of_expiry = time() + (86400 * 30); // ставим на 30 дней
if(setcookie('megacookie', 'megaredirect', $date_of_expiry)) {
sleep(3); // таймаут 3 секунды
header('Location: http://site2.ru/landing/land-2_ru/');
}
?>

По второму линку ставим условие в .htaccess:

RewriteEngine On
RewriteCond %{HTTP_COOKIE} !megacookie=megaredirect; [NC]
RewriteRule ^ http://www.google.com [NC,L]

Хорошо код написан, но немного не так работает всё, я в последнем сообщение написал как оно работает. Куки записывает сам же Сайт №2, когда на него заходят с таким вот url: site2.ru/landing/main.php?s=10470&tds_hash=lqykx5&security_hash=3d5994d52f6ba03885274939fab2429e

После того как записал куку, редиректит на главную страницу сайта №2.

А первый сайт играет только в роли сокращалки ссылок что-ли.

vkusnoserver
На сайте с 30.04.2011
Offline
104
#8

Ну все правильно. Выше Дикий Пионер об этом мне и напомнил, что cross-site куку не поставить, поэтому она и должна ставиться со второго сайта. Скорее всего она ставится тем, кто приходит с реферером первого сайта (причина, зачем нужен первый сайт и редирект с него). Если без реферера - гоу в гугл.

В чем конкретно вопрос? Тут кода очень немного.

lomster7
На сайте с 09.05.2011
Offline
84
#9
vkusnoserver:
Ну все правильно. Выше Дикий Пионер об этом мне и напомнил, что cross-site куку не поставить, поэтому она и должна ставиться со второго сайта. Скорее всего она ставится тем, кто приходит с реферером первого сайта (причина, зачем нужен первый сайт и редирект с него). Если без реферера - гоу в гугл.

В чем конкретно вопрос? Тут кода очень немного.

Насчёт реферрера это понятно.. Но было сказано, что после того как юзер 1 РАЗ кликнул по первой ссылке, его перекинуло с параметрами разными на второй сайт, ему записалась кука, и перекинула на главную страницу второго сайта. И теперь юзер может ходить по любым страницам сайта №2 в течении дня/недели и тд.. ПРИ ЭТОМ СНОВА не заходя на ПЕРВЫЙ САЙТ. ТО-есть пока жива кука, может заходить прямиком юзер на второй сайт.

Вот собственно написать код для:

1. Первый Сайт (который будет редиректить на Второй сайт с url формата: site2.ru/hash=lqykx5&security_hash=3d5994d52f6ba03885274939fab2429e).

2. Второй же сайт, видит что пришёл юзер с такими то параметрами в url site2.ru/hash=lqykx5&security_hash=3d5994d52f6ba03885274939fab2429e

не редиректит его никуда, а записывает ему куку, и после этого, редиректит на главную страницу.

3. Главная страница принимает юзеров, если у них есть кука доступа, в данном случае у юзера должна была записаться кука в 2 пункте, поэтому страница ему загрузится, в СЛУЧАЕ, что нету куков у юзеров, и которые пытаются прямиком зайти на второй сайт (или не поддерживаются куки браузером) их просто будет редиректить на гугл.

Авторизуйтесь или зарегистрируйтесь, чтобы оставить комментарий