У меня проблема с моим скриптом, использующим cURL. На странице A я устанавливаю cURL POST и отправляю его на страницу B, где выполняется скрипт для входа. Данные передаются правильно, но сеанс и файлы cookie не заданы на стр. B.
Сценарий login.php открывает СЕССИЮ (и в конечном итоге COOKIE) и сохраняет необходимую информацию. Если я зашел со страницы B напрямую, он работает нормально.
$ch = curl_init("http://www.example.com/login.php"); curl_setopt ($ch, CURLOPT_POST, 1); curl_setopt ($ch, CURLOPT_POSTFIELDS, "login_name=xxx&login_pass=xxx"); curl_setopt ($ch, CURLOPT_RETURNTRANSFER, 1); $output = curl_exec ($ch); curl_close ($ch);
Используйте COOKIEJAR & COOKIEFILE :
<?php $ch = curl_init("http://www.example.com/login.php"); curl_setopt($ch, CURLOPT_POST, 1); curl_setopt($ch, CURLOPT_POSTFIELDS, "login_name=xxx&login_pass=xxx"); curl_setopt($ch, CURLOPT_COOKIEJAR, '/cookie.txt'); curl_setopt($ch, CURLOPT_COOKIEFILE, '/cookie.txt'); curl_setopt($ch, CURLOPT_RETURNTRANSFER, 1); $output = curl_exec($ch); curl_close ($ch); ?>
Вы также можете создать каталог tmp, в котором вы храните cookie!
попробуйте добавить это в свой код
$cookie="cookie.txt"; curl_setopt($curl_connection, CURLOPT_FOLLOWLOCATION, true); curl_setopt($curl_connection, CURL_COOKIEJAR, $cookie); curl_setopt($curl_connection, CURL_COOKIEFILE, $cookie); curl_setopt($curl_connection, CURL_VERBOSE, true);
Надеюсь, что это полезно ..