Отправка файлов cookie, хранящихся на глобальном уровне $ _COOKIE, с использованием PHP curl

У меня есть два сайта dev1.test.com и dev2.test.com .

Это два сайта, работающих на разных серверах. dev1.test.com – это место, где я вошел в систему, и у меня есть файлы cookie, установленные на * .test.com, чтобы проверить, зарегистрирован ли пользователь.

Теперь на dev2.test.com я хочу проверить, зарегистрирован ли текущий пользователь, отправив запрос PHP CURL на dev1.test.com. В моем запросе curl я хочу включить содержимое $ _COOKIE (где он имеет информацию о файлах cookie * .test.com) в этот запрос curl.

Как мне это сделать в php curl?

Поскольку у вас есть подстановочный файл cookie, dev2 также будет иметь те же файлы cookie, что и dev1. Поэтому в основном вам нужно сказать: «Передайте мои файлы cookie на другой сервер через завиток.

Параметр curl, который вы хотите, это «CURLOPT_COOKIE», и вы передаете строку cookie «name1 = value1; name2 = value2»

Объединяя это вместе (непроверенный – вам нужно, конечно, обернуть это среди других функций завитка)

 $cookiesStringToPass = ''; foreach ($_COOKIE as $name=>$value) { if ($cookiesStringToPass) { $cookiesStringToPass .= ';'; } $cookiesStringToPass .= $name . '=' . addslashes($value); } curl_setopt ($ch, CURLOPT_COOKIE, $cookiesStringToPass ); 

Это то, что я использую для пересылки $ _COOKIE через curl:

 $cookie_data = implode( "; ", array_map( function($k, $v) { return "$k=$v"; }, array_keys($_COOKIE), array_values($_COOKIE) ) ); curl_setopt($ch, CURLOPT_COOKIE, $cookie_data); 

Ссылка: http://php.net/manual/en/function.curl-setopt.php

Вместо работы с $_COOKIE вы также можете использовать $_SERVER['HTTP_COOKIE'] , который содержит строку заголовка HTTP.

Т.е. вам просто нужно написать это:

 curl_setopt($ch, CURLOPT_COOKIE, $_SERVER['HTTP_COOKIE']); 

Читайте это: http://be2.php.net/manual/en/function.curl-setopt.php

CURLOPT_COOKIEFILE и CURLOPT_COOKIEJAR

Таким образом, вы должны прочитать $_COOKIE с одного сервера, сохранить его в файл и отправить его другому

Это выглядит так:

 curl_setopt($ch, CURLOPT_COOKIEJAR, "cookie.txt"); curl_setopt($ch, CURLOPT_COOKIEFILE, "cookie.txt");