вход в phpbb3 curl

Я пытаюсь создать бота для автологина для phpbb 3.0.10 с помощью curl. Форум возвращает "Вы успешно вошли в систему". но после этого, когда я пытаюсь перейти на другую страницу сайта и получить исходный код с помощью file_get_contents или даже если я жду, пока страница перенаправит меня на index.php, она снова попросит меня войти в систему. Дело в том, что я делаю эти тесты на локальном хосте, а форум находится на другом сервере, поэтому я использую завиток. Вот мой код:

<?php
$urltopost = "http://www.site.com/phpbb3eng/ucp.php?mode=login";
$fget = file_get_contents($urltopost);
$sid_a = explode('index.php?sid=',$fget);
$sid_b = explode('"',$sid_a[1]);
$sid = $sid_b[0];
$datatopost = array (
'username' => "bot",
'password' => "123456789asd",
'autologin' => "1",
'viewonline' => "1",
'redirect' => "./ucp.php?mode=login",
'sid' => "$sid",
'redirect' => "index.php?sid=$sid",
'login' => "login"
);

$ch = curl_init ($urltopost."&sid=$sid");
curl_setopt ($ch, curlopt_post, true);
curl_setopt ($ch, curlopt_postfields, $datatopost);
curl_setopt ($ch, curlopt_returntransfer, true);
curl_setopt($ch, curlopt_useragent, 'mozilla/5.0 (windows; u; windows nt 6.1; en-us; rv:1.9.1.2) gecko/20090729 firefox/3.5.2 gtb5');
$returndata = curl_exec ($ch);
$code = $returndata;
echo htmlspecialchars($code); //returns source with successful login
$code2 = file_get_contents("http://www.site.com/phpbb3eng/index.php"); 
echo "<br /><br /><br />".htmlspecialchars($code2); // return login form
?>

person ragis    schedule 20.10.2012    source источник


Ответы (1)


Вы должны установить файлы cookie. Ознакомьтесь с документацией: http://php.net/manual/en/function.curl-setopt.php

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

Конечно, вы должны убедиться, что файл cookie.txt существует и что у вас есть разрешение на запись.

person Aljana Polanc    schedule 20.10.2012