- Автор темы
- #1
Задача - войти на форум.
Реализация в 2х файлах
php.php
php1.php
В итоге получаю сообщение "Вы неверно ввели логин/пароль". Где я туплю?
Реализация в 2х файлах
php.php
PHP:
<?php
// получаю страничку авторизации
$ch = curl_init();
$url = "http://altforum.bks-tv.ru/login.php";
curl_setopt($ch, CURLOPT_URL, $url); // set url to post to
curl_setopt($ch, CURLOPT_USERAGENT, 'Opera/9.26 (Windows NT 5.1; U; ru)');
curl_setopt($ch, CURLOPT_REFERER, 'http://metabot.ru');
curl_setopt($ch, CURLOPT_FAILONERROR, 1);
curl_setopt($ch, CURLOPT_RETURNTRANSFER,1); // return into a variable
// сохраняю кукисы по инструкции с нулледа
$path_ = pathinfo($_SERVER[SCRIPT_FILENAME]);
$ScriptDir=$path_['dirname'];
$CookieFile=$ScriptDir."/tmp/cookie.txt";
curl_setopt($ch, CURLOPT_COOKIEFILE, $CookieFile);
curl_setopt($ch, CURLOPT_COOKIEJAR, $CookieFile);
curl_setopt($ch, CURLOPT_TIMEOUT, 10); // times out after 4s
$result = curl_exec($ch); // run the whole process
// сохраняю идентификатор сессии
$filename = "zzz.txt";
$fh = fopen($filename, "w");
$pattern = '/phpbb2mysql_data=(.*?);/is';
preg_match($pattern, $subject, $matches);
fwrite($fh, $matches[1]);
fclose($fh);
curl_close($ch);
print $result;
?>
// запускаю следующий запрос
<script>window.location='php1.php';</script>
php1.php
PHP:
<?php
$ch = curl_init();
// читаю сохраненный идентификатор сессии
$filename = "zzz.txt";
$fh = fopen($filename, "r");
$url = "http://altforum.bks-tv.ru/login.php?sid=".fread($fh, filesize($filename));
fclose($fh);
curl_setopt($ch, CURLOPT_URL, $url); // set url to post to
curl_setopt($ch, CURLOPT_USERAGENT, 'Opera/9.26 (Windows NT 5.1; U; ru)');
// делаю реферер с предыдующей страницы
curl_setopt($ch, CURLOPT_REFERER, "http://altforum.bks-tv.ru/login.php");
curl_setopt($ch, CURLOPT_FAILONERROR, 1);
curl_setopt($ch, CURLOPT_FOLLOWLOCATION, 1);// allow redirects
curl_setopt($ch, CURLOPT_RETURNTRANSFER,1); // return into a variable
// отсылаю кукисы
$path_ = pathinfo($_SERVER[SCRIPT_FILENAME]);
$ScriptDir=$path_['dirname'];
$CookieFile=$ScriptDir."/tmp/cookie.txt";
curl_setopt($ch, CURLOPT_COOKIEFILE, $CookieFile);
curl_setopt($ch, CURLOPT_COOKIEJAR, $CookieFile);
curl_setopt($ch, CURLOPT_TIMEOUT, 15); // times out after 4s
curl_setopt($ch, CURLOPT_POST, 1); // set POST method
// отсылаю логин, пароль, имя кнопки "Войти"
curl_setopt($ch, CURLOPT_POSTFIELDS, "nusername=***&password=***&redirect=&login=%C2%F5%EE%E4"); // add POST fields
$result = curl_exec($ch); // run the whole process
curl_close($ch);
print $result;
?>
В итоге получаю сообщение "Вы неверно ввели логин/пароль". Где я туплю?