Создал два сайта, один обработчик, второй отправляет ему post запрос с именем домена, первый - второму возвращает код домена (сайта), т.е. на втором сайте после выполнения post запроса открывается сайт который и был в post запросе к первому домену.
Можно как-то от первого домена (скрипта) получить куку на втором домене, чтобы открытие сайта по реферальной ссылке на втором домене считалось за реферальный переход?
На первом сайте я умею сохранять куку в файл, думал этого достаточно, стал проверять статистику - реферальных переходов нет
Помогите разобраться с куками, пожалуйста.
Вот часть основного кода (обработчик)
<?php
$url = $_POST["url"];
// инициализация сеанса
$ch = curl_init();
// используем User Agent браузера
$user_agent = $_SERVER["HTTP_USER_AGENT"];
curl_setopt($ch, CURLOPT_USERAGENT, $user_agent);
// установка URL и других необходимых параметров
curl_setopt($ch, CURLOPT_URL, $url);
// Имитируем классический браузер и сохраняем COOKIES
curl_setopt ($ch, CURLOPT_COOKIEJAR, 'cookie.txt');
curl_setopt ($ch, CURLOPT_COOKIEFILE, 'cookie.txt');
//TRUE для принудительного использования нового соединения вместо закэшированного.
curl_setopt($ch, CURLOPT_FRESH_CONNECT, false);
// в случае необходимости, следовать по перенаправлени¤м
curl_setopt($ch, CURLOPT_FOLLOWLOCATION, true);
// устанавливаем максимальное время конекта 5 секунд
curl_setopt($ch, CURLOPT_CONNECTTIMEOUT, 5);
// Опция указывает, что результат будет записан в переменную
curl_setopt($ch, CURLOPT_RETURNTRANSFER, 1);
// загрузка страницы и выдача её браузеру
$page_source = curl_exec($ch);
// Получаю итоговый url после всех редиректов
$last_url = curl_getinfo($ch, CURLINFO_EFFECTIVE_URL);
echo $page_source;
//print_r (curl_getinfo($ch));
// завершение сеанса и освобождение ресурсов
curl_close($ch);
?>
как этим кодом вернуть куку на другой сайт - сайт который отправляет данному скрипту url?
Нашел инструкцию но не понял ее http://www.php.su/forum/topic.php?forum=74&topic=1893
А вот код самого сайта (приемник), куда и должна вернуться кука, данный сайт отправляет post запрос первому скрипту
<?php
// URL скрипта обработчика
$login_url = 'http://сайт.ru/inc.php';
// параметры для отправки запроса
$post_data = array(
'url' => 'http://reflink.ru/id555',
'cookielength' => '-1',
'hash_passwrd' => ''
);
// создание объекта curl
$ch = curl_init();
// используем User Agent браузера
$user_agent = $_SERVER["HTTP_USER_AGENT"];
curl_setopt($ch, CURLOPT_USERAGENT, $user_agent);
// задаем URL
curl_setopt($ch, CURLOPT_URL, $login_url );
// указываем что это POST запрос
curl_setopt($ch, CURLOPT_POST, 1 );
// задаем параметры запроса
curl_setopt($ch, CURLOPT_POSTFIELDS, $post_data);
// указываем, чтобы нам вернулось содержимое после запроса
curl_setopt($ch, CURLOPT_RETURNTRANSFER, 1);
curl_setopt($ch, CURLOPT_COOKIEJAR, 'cookie.txt');
curl_setopt($ch, CURLOPT_COOKIEFILE, 'cookie.txt');
// выполняем запрос
$postResult = curl_exec($ch);
curl_close($ch);
echo $postResult;
?>
Да, передать cookies можно, но лучше передавать их не в файле cookie.txt (тем более, если вам требуется только один ref_id), а через параметры POST-запроса. Выставляйте cookies:
setcookie('ref_id', $ref_id, strtotime('+1 year'), '', '');
Затем считываете их в следующем запросе и передаете на второй домен в виде списка параметров.
P.S. И лучше используется для cURL Options массивы, а не задание параметров построчно (лучше curl_setopt_array вместо curl_setopt). Так код короче и становится более читабельным.
Кофе для программистов: как напиток влияет на продуктивность кодеров?
Рекламные вывески: как привлечь внимание и увеличить продажи
Стратегії та тренди в SMM - Технології, що формують майбутнє сьогодні
Выделенный сервер, что это, для чего нужен и какие характеристики важны?
Современные решения для бизнеса: как облачные и виртуальные технологии меняют рынок
Здравствуйте! Дано: проект на Laravel 54
Мне необходимо обработать массив и выявить индекс элемента, значение которого меньше определенного(Если таких элементов несколько, то узнать...