Никита К.
1594 сообщения
#16 лет назад
1278054

В общем, с сайта ОпСоСа надо сграбить скрипт отправки СМС
Возникает проблема с капчей - на моем скрипте она не отображается. Почему?

Сайт -

Моя наработка прилагается
Никита К.
1594 сообщения
#16 лет назад
<?
if (!isset($otpr)) {
?>
<form action="bwc.php" method="post">
&raquo;Телефон адресата<br />
+7<select id="phone_type" name="phone_type">
<option value="902">902</option>
<option value="908">908</option>
<option value="904">904</option>
<option value="950">950</option>
<option value="952">952</option>
<option value="901">901</option>
</select>
<input type="text" maxlength="7" value="" name="phone_number" id="phone_number" /><br />
&raquo;Текст сообщения<br />
<textarea id="communication" name="communication" rows="4" cols="23"></textarea><br />
&raquo;Время отправки сообщения (Irkutsk, GMT+8)<br />
<input maxlength="2" size="2" type="text" id="hours" name="defhours" value="<? echo date("H",time()+18000); ?>" /> :
<input maxlength="2" size="2 type="text" id="minutes" name="defmin" value="<? echo date("i", time()+18000); ?>"/>
<?
$date=date("d.m.Y", time()+18000);
?>
<select id="ask" name="defdate">
<option value="<? echo $date; ?>"><? echo $date; ?></option>
</select><br />
<input type="checkbox" id="send_to_screen" name="send_to_screen" />
Доставить сообщение на экран телефона
&raquo;Кодовое число, которое указано на картинке<br />
<?
session_start();
?>
<img alt="AntiSpam" id="code_img" src="http://www.bwc.ru/cgi-bin/img2img.cgi?img=<? echo session_id(); ?>" /><br />
<input type="text" name="code" id="code" /><br />
<input type="hidden" name="sid" value="<? echo session_id(); ?>" />
<input type="submit" value="Отправить" name="otpr" />
</form>
<?
} else {
$parse_url = parse_url("http://www.bwc.ru/cgi-bin/smssend.cgi"; //куда отправляем
$path = $parse_url;
if($parse_url) $path.="?".$parse_url;
$host = $parse_url;
$data = 'phone_type='.$phonetype.'&amp;phone_number='.$phone_number.'&amp;communication='.$communication.'&amp;defhours='.$defhours.'&amp;defmin='.$defmin.'&amp;defdate='.$defdate.'&amp;send_to_screen='.$send_to_screen.'&amp;code='.$code.'&amp;sid='.$sid.''; // данные
$fp = fsockopen($host, 80, $errno, $errstr, 30);
if($fp) {
$out = "POST ".$path." HTTP/1.1\n";
$out .= "Host: ".$host."\n";
$out .= "Referer: ;;
$out .= "User-Agent: Mozilla/5.0 (X11; U; Linux i686; ru; rv:1.9.0.4) Gecko/2008102920 Firefox/3.0.4\n";
$out .= "Content-Type: application/x-www-form-urlencoded\n";
$out .= "Content-Length: ".strlen($data)."\n\n";
$out .= $data."\n\n";


fputs($fp, $out);
// читаем ответ сервера и выводим
while($file = fgets($fp, 1024))
{
echo $file;
}
fclose($fp);
}
?>
Никита К.
1594 сообщения
#16 лет назад
Кроме того, скрипт не находит префикс почему то...
Александр Л.
221 сообщение
#16 лет назад
...чёто сложно у вас всё как-то реализовано )))
Александр К.
102 сообщения
#16 лет назад
<?
session_start();
?>
<img alt="AntiSpam" id="code_img" src="http://www.bwc.ru/cgi-bin/img2img.cgi?img=<? echo session_id(); ?>" /><br />
<input type="text" name="code" id="code" /><br />
<input type="hidden" name="sid" value="<? echo session_id(); ?>" />

Тут вы работаете с индентификатором сессии на своём сайте, а нужно идентификатор сессии сайта донора. Т.е. нужно сначала зайти на сайт донор, тем самым получив ид сессии и куки(если они есть) а потом отослать их обратно вместе с данными из формы.
Никита К.
1594 сообщения
#16 лет назад
А имитировать это как то можно? Через сокеты или что нибудь ещё? Чтоб id получить, а на сайте остаться на своём?
Тут М.
626 сообщений
#16 лет назад
Можно. Не силен в PHP, в Perl это можно сделать тучей способов, в том числе и сокеты (но это не самый удобный способ)
Александр К.
102 сообщения
#16 лет назад
Скачайте себе сокетами страницу формы и посмотрите адрес картинки. Как-то так... Но я предпочитаю выполнять все эти функции cURL'ом, т.к. проще.
Цитата:
нужно сначала зайти на сайт донор
Я и имел ввиду что скриптом нужно зайти и спарсить ид сессии.
Гость
86 сообщений
#16 лет назад
Используйте CURL.
Думаю, в 10 строк кода можно уложиться.
Никита К.
1594 сообщения
#16 лет назад
Просто я с cURL'ом и сокетами не очень дружу Можете подсказать как?
Александр Г.
63 сообщения
#16 лет назад
Anexroid
Если хотите могу написать и обьюснить как написанно и почему именно так за 15$
Владимир М.
327 сообщений
#16 лет назад
Однозначно cURL.
Потратьте полчас и подружитесь с ним:
Никита К.
1594 сообщения
#16 лет назад
intelleks, спасибо за ссылку ;-)
Буду разбираться