Добрый вечер.
Меня этот мэил.ру уже достал =) Не могу скриптом задать вопрос на сайте. Не подскажите, что не так? (POST параметры выдерал wireshark'ом)
<?php
class MailRu
{
private static $_instance;
public function __construct()
{
$this->auth();
echo $this->ask();
}
/**
* @return MailRu
*/
public static function getInstance()
{
if (!is_object(self::$_instance))
{
self::$_instance = new MailRu();
}
return self::$_instance;
}
private function auth()
{
$url = 'https://auth.mail.ru/cgi-bin/auth';
$post = 'Login=login&Domain=mail.ru&Password=gfccmdjhl&level=1';
$cookie = dirname(__FILE__) . '/cookies.txt';
$ch = curl_init();
curl_setopt($ch, CURLOPT_URL, $url);
curl_setopt($ch, CURLOPT_COOKIEFILE, $cookie);
curl_setopt($ch, CURLOPT_COOKIEJAR, $cookie);
curl_setopt($ch, CURLOPT_POST, true);
curl_setopt($ch, CURLOPT_POSTFIELDS, $post);
curl_setopt($ch, CURLOPT_RETURNTRANSFER, true);
curl_setopt($ch, CURLOPT_SSL_VERIFYPEER, false);
$result = curl_exec($ch);
curl_close($ch);
return $result;
}
public function ask()
{
$url = 'http://otvet.mail.ru/ask';
$cookie = dirname(__FILE__) . '/cookies.txt';
$ch = curl_init();
curl_setopt($ch, CURLOPT_URL, $url);
curl_setopt($ch, CURLOPT_COOKIEFILE, $cookie);
curl_setopt($ch, CURLOPT_COOKIEJAR, $cookie);
curl_setopt($ch, CURLOPT_RETURNTRANSFER, true);
curl_setopt($ch, CURLOPT_SSL_VERIFYPEER, false);
$result = curl_exec($ch);
curl_close($ch);
$askKey = explode('name="ch" value="', $result);
$askKey = explode('" />', $askKey[1]);
$askKey = $askKey[0];
$url = 'http://otvet.mail.ru/doit';
$post = 'action=authaddqst&HTMLMessage=1&text=&ch=' . $askKey . '&test=%D2%C5%D1%D2&' .
'qtext=%E2%EE%EF%F0%EE%F1+%F1%EE%E1%F1%F2%E2%E5%ED%ED%EE&Body=%EF%EE%FF%F1%ED%E5%ED%E8%FF&' .
'orfo=&tags=%EC%E5%F2%EA%E0&cid=4&subcid=1330&poll_option=&poll_option=&' .
'poll_option=&poll_option=&poll_option=&poll_option=&poll_option=&' .
'poll_option=&poll_option=&poll_option=&poll_option=&poll_option=&' .
'poll_option=&poll_option=&poll_option=&poll_option=&cancomment=1';
$ch = curl_init();
curl_setopt($ch, CURLOPT_URL, $url);
curl_setopt($ch, CURLOPT_COOKIEFILE, $cookie);
curl_setopt($ch, CURLOPT_COOKIEJAR, $cookie);
curl_setopt($ch, CURLOPT_POST, true);
curl_setopt($ch, CURLOPT_POSTFIELDS, $post);
curl_setopt($ch, CURLOPT_RETURNTRANSFER, true);
curl_setopt($ch, CURLOPT_SSL_VERIFYPEER, false);
$result = curl_exec($ch);
curl_close($ch);
return $result;
}
}
?>