Нужно авторизоваться на сайте через форму средствами php. Но в форме также присутствует токен, который каждый раз обновляется. Чтобы этот момент обойти, мне нужно сначала этот токен узнать, а потом кукис, которая этот токен хранит, перенести в следующий cURL запрос уже для авторизации в форме.
Мой скрипт выглядит так:
function authUser($url=null, $token = '1') {
$login = 'login';
$pass = 'pass';
$parser['url'] = $url;
$EvilCurl = curl_init();
curl_setopt($EvilCurl,CURLOPT_URL,(isset($url)) ? $url : $parser['url']);
curl_setopt($EvilCurl, CURLOPT_USERAGENT, "Mozilla/5.0 (X11; Linux i686) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/42.0.2311.135 Safari/537.36");
curl_setopt($EvilCurl, CURLOPT_SSL_VERIFYPEER, 0);
curl_setopt($EvilCurl, CURLOPT_SSL_VERIFYHOST, 0);
curl_setopt($EvilCurl, CURLOPT_POST, 1);
curl_setopt($EvilCurl, CURLOPT_POSTFIELDS, "USER_LOGIN=".$login."&USER_PASSWORD=".$pass."amotok=".$token);
curl_setopt($EvilCurl, CURLOPT_HEADER, 1);
curl_setopt($EvilCurl, CURLOPT_REFERER, (isset($url)) ? $url : $parser['url']);
curl_setopt($EvilCurl, CURLOPT_COOKIESESSION, true);
curl_setopt($EvilCurl, CURLOPT_FOLLOWLOCATION, 1);
curl_setopt($EvilCurl, CURLOPT_RETURNTRANSFER, 1);
curl_setopt($EvilCurl, CURLOPT_COOKIEJAR, dirname(__FILE__).'/cookie.txt');
curl_setopt($EvilCurl, CURLOPT_COOKIEFILE, dirname(__FILE__).'/cookie.txt');
$response = curl_exec($EvilCurl);
if($token=='1') {
$pos = strpos($response,'amotok=');
$data = substr($response, $pos,strlen($response));
$pos = strpos($data,"; expires");
$data = substr($data, 0, $pos);
$amotok = str_replace("amotok=",'',$data);
echo "<h1>$amotok</h1>";
/////////////////////////////////////////////////////////////////////////////////
$thisa = authUser($url, $amotok);
} else {
die($response);
}
#закрываем соединение
curl_close($EvilCurl);
#return $response;
}
Вопрос по той строке где куча слэшей: в этой строке я уже знаю токен и повторно отправляю запрос уже для авторизации. Как мне в этот запрос передасть куку, которая хранит токен?