Форум: Форум PHPФорум ApacheФорум Регулярные ВыраженияФорум MySQLHTML+CSS+JavaScriptФорум FlashРазное
Новые темы: 0000000
Социальная инженерия и социальные хакеры. Авторы: Кузнецов М.В., Симдянов И.В. Самоучитель MySQL 5. Авторы: Кузнецов М.В., Симдянов И.В. C++. Мастер-класс в задачах и примерах. Авторы: Кузнецов М.В., Симдянов И.В. Объектно-ориентированное программирование на PHP. Авторы: Кузнецов М.В., Симдянов И.В. PHP 5/6. В подлиннике. Авторы: Кузнецов М.В., Симдянов И.В.
ВСЕ НАШИ КНИГИ
Консультационный центр SoftTime

Форум PHP

Выбрать другой форум

 

Здравствуйте, Посетитель!

вид форума:
Линейный форум Структурный форум

тема: fsockopen и парсинг
 
 автор: SnooPI   (05.05.2007 в 01:06)   письмо автору
 
 

Здравствуйте...
У меня возникла проблема с сокетами.....
Вообщем надо сделать парсер (проверку баланса втоего кошеля)
Там и гет и пост запрос.....так вот...
Сделал только пост запрос

if($_POST['submit'])
    {

        $host    = "www.tuborg.ru";
        $path    = "/register/index.php";
        $port     = "80";

        $id          = $_POST['T5'];
        $code     = $_POST['T7'];
        $scode    = $_POST['secret_code'];

        $post    = "pageid=13&T5=".$id."&T7=".$code."&secret_code=".$scode;

        $httpq     =
        "POST http://www.tuborg.ru/register/index.php HTTP/1.1\r\n".
        "Host: ".$host."\r\n";
        "Referer: ".$host."\r\n";
        "User-Agent: Mozila 4.0\r\n".
        "Content-Type: application/x-www-form-urlencoded\r\n".
        "Content-Length: ".strlen($post)."\r\n\r\n".$post."\r\n";

        $sock = fsockopen($host, $port, $errno, $errstr, 10);

        if(!$sock)
        {
            $send = "Невозможно подключиться к серверу!";
        } else {
            fwrite($sock, $httpq.$post);
            $content = fread($sock,1024);
            $content .= fread($sock,1024);
            fclose($sock);
            preg_match("|<font color=\"#000000\"><b>(.*)</b></font>|", $content, $out);
            $send = $out[1];
        }

        echo $send;
    }

echo '
<form enctype="multipart/form-data" method="post">
<input type="hidden" name="pageid" value="13">
<table cellspacing="0" style="margin-right:140px;margin-left:50px;">
<tr>
<td style="padding:0px 0px 5px 5px;width:250px;">
<p style="margin:4px 0px;"><b>мой ID</b></p>
<p style="margin:4px 0px 10px 0px;;">
<input type="text" style="width:200px;" name="T5" value=""></p>
<p style="margin:4px 0px;"><b>введите уникальный код</b></p>
<p style="margin:4px 0px 10px 0px;">
<input type="text" style="width:200px;" name="T7" value=""></p>
<p style="margin:4px 0px;"><b>введите проверочную комбинацию</b></p>
<p style="margin:4px 0px 10px 0px;">
<img src="http://www.tuborg.ru/code.php" alt="" width="59" height="20" style="margin-right:10px;margin-bottom:-3px;">
<input type="text" style="width:132px;" name="secret_code"><br></p>
<p><input type="submit" name="submit" value="отправить"></p>
</td>
</tr>
</table>
</form>';
?>

Так вот этот код правильный вроде..
А как сюда прикрутить еще и гет запрос....???

Т.е. надо чтобы POST запрос выполнился на странице http://www.tuborg.ru/register/index.php?pageid=12
А как?:)

   
 
 автор: cheops   (05.05.2007 в 01:45)   письмо автору
 
   для: SnooPI   (05.05.2007 в 01:06)
 

Вы видите там защитный код-изображение? Это означает:
1) Владельцы сайта не хотят, чтобы вы автоматически регистрировались, а заходили на страничку и осуществляли это руками. Поэтому помощи в решении этой задачи ожидать не следует - обманывать владельцев сайтов не этично.
2) Но даже если вы всё равно собираетесь создать скрипт автоматической регистрации - вам придётся расшифровать код на изображении, который пропущен в обработчики и генерируется каждый раз по новой - обработчик HTML-формы ожидает именно этого кода и никак кроме анализа изображения вы получить его не сможете.

   
 
 автор: SnooPI   (05.05.2007 в 01:49)   письмо автору
 
   для: cheops   (05.05.2007 в 01:45)
 

Я не делаю автоматическую регистрацию!!!
Я вывожу форму у себя на сайте
<img src="http://www.tuborg.ru/code.php" alt="" width="59" height="20" style="margin-right:10px;margin-bottom:-3px;">
<input type="text" style="width:132px;" name="secret_code">

И вот эту картинку с того сайта ....

Так вот не знаю как сделать и гет и пост запрос сразу

   
 
 автор: cheops   (05.05.2007 в 02:00)   письмо автору
 
   для: SnooPI   (05.05.2007 в 01:49)
 

На самом деле изображение защищает и от этого тоже - обойти вряд ли удастся.

   
 
 автор: SnooPI   (05.05.2007 в 02:39)   письмо автору
 
   для: cheops   (05.05.2007 в 02:00)
 

Да я не пытаюсь обойтиии !!!!
Посмотрите внимательнеё на код =)
Я пытаюсь сделать все тоже самое что и на сайте!!!
Просто у них много флеша и долго грузятся страницы !!!

   
 
 автор: Binura   (05.05.2007 в 05:07)   письмо автору
 
   для: SnooPI   (05.05.2007 в 02:39)
 

а если только форму взять??? с картиной вместе. и поменть адрес на полный путь.
тогда даже сокеты не надо...
попробуй

   
 
 автор: SnooPI   (05.05.2007 в 05:23)   письмо автору
 
   для: Binura   (05.05.2007 в 05:07)
 

Надо чтобы результат был на моей странице

   
 
 автор: Binura   (05.05.2007 в 13:46)   письмо автору
 
   для: SnooPI   (05.05.2007 в 05:23)
 

тебе надо передать пост данные, и принять значение. =) так???
сделай форму. с их картинкой... и отправляй на свою страницу... script.php
script.php - уже идет соединение ... т.е. твой код.

if($_POST['submit']) 
    { 

        $host    = "www.tuborg.ru"; 
        $path    = "/register/index.php"; 
        $port     = "80"; 

        $id          = $_POST['T5']; 
        $code     = $_POST['T7']; 
        $scode    = $_POST['secret_code']; 

        $post    = "pageid=13&T5=".$id."&T7=".$code."&secret_code=".$scode; 

        $httpq     = 
        "POST http://www.tuborg.ru/register/index.php HTTP/1.1\r\n". 
        "Host: ".$host."\r\n"; 
        "Referer: ".$host."\r\n"; 
        "User-Agent: Mozila 4.0\r\n". 
        "Content-Type: application/x-www-form-urlencoded\r\n". 
        "Content-Length: ".strlen($post)."\r\n\r\n".$post."\r\n"; 

        $sock = fsockopen($host, $port, $errno, $errstr, 10); 

        if(!$sock) 
        { 
            $send = "Невозможно подключиться к серверу!"; 
        } else { 
            fwrite($sock, $httpq.$post); 
            $content = fread($sock,1024); 
            $content .= fread($sock,1024); 
            fclose($sock); 
            preg_match("|<font color=\"#000000\"><b>(.*)</b></font>|", $content, $out); 
            $send = $out[1]; 
        } 
 echo strstr($send, '<');
    }


а то как то непрально получается...

   
 
 автор: SnooPI   (05.05.2007 в 13:51)   письмо автору
 
   для: Binura   (05.05.2007 в 13:46)
 

Чем твой скрипт отличается от моего?:)
Мне надо отправлять пост запрос на тсранице tuborg.ru/register?pageid=12
Т.е. надо еще передать гет параметр, а потом только ПОСТ!!!

   
 
 автор: Binura   (05.05.2007 в 13:54)   письмо автору
 
   для: Binura   (05.05.2007 в 13:46)
 

вот я тоже делала авторизацию... на чужой чат =) вроде работает...

после отправки данных с моей формы,
получаем постом данные (ник и пароль) на МОИ скрипт...

<?php 
 $userr 
$_POST['user'];
 
$pass $_POST['pss'];

  
$hostname "sait.ru";
  
$path "/chat.php";
  
$line "";
  
// Устанавливаем соединение, имя которого
  // передано в параметре $hostname
  
$fp fsockopen($hostname80$errno$errstr30); 
  
// Проверяем успешность установки соединения
  
if (!$fp) echo "$errstr ($errno)<br />\n"
  else
  { 
    
// Данные HTTP-запроса
    
$data 
      
"pss=".urlencode("$pass")."&user=".urlencode("$userr")."\r\n\r\n";
    
// Заголовок HTTP-запроса
    
$headers "POST $path HTTP/1.1\r\n"
    
$headers .= "Host: $hostname\r\n"
    
$headers .= "Content-type: application/x-www-form-urlencoded\r\n";
    
$headers .= "Content-Length: ".strlen($data)."\r\n\r\n";
    
// Отправляем HTTP-запрос серверу
    
fwrite($fp$headers.$data); 
    
// Получаем ответ
    
while (!feof($fp))
    { 
      
$line .= fgets($fp1024); 
    } 
    
fclose($fp); 
  } 

  
// удаляем заголовки и выводим результат
  
echo strstr($line'<');
?>


попробуй так... =)))

   
 
 автор: SnooPI   (05.05.2007 в 14:08)   письмо автору
 
   для: Binura   (05.05.2007 в 13:54)
 

Извините пожалуйста, вы читать умеете????
Я же несколько раз повторил что у меня идет только $_POST, а мне надо чтобы и $_GETи $_POST запрос !!!!

   
 
 автор: Binura   (05.05.2007 в 14:12)   письмо автору
 
   для: SnooPI   (05.05.2007 в 14:08)
 

это ты написал... когда я уже писала пост. =) я не прочитала.

а если в наглую вставить tuborg.ru/register?pageid=12 ???

   
 
 автор: SnooPI   (05.05.2007 в 14:14)   письмо автору
 
   для: Binura   (05.05.2007 в 14:12)
 

Не получается так :)

   
 
 автор: Binura   (05.05.2007 в 14:18)   письмо автору
 
   для: SnooPI   (05.05.2007 в 14:14)
 

что то у тебя слишком все запушено... =)
1) с какой страницы ты берешь форму?
2) какой адрес обработчика?

=))

   
 
 автор: SnooPI   (05.05.2007 в 14:22)   письмо автору
 
   для: Binura   (05.05.2007 в 14:18)
 

Короче там проверка баланса идет на странице http://www.tuborg.ru/register/index.php?pageid=12
Так вот я сделал у себя на сайте форму такую же как там...
ИЗменил только экшен до этого сукрипта и путь до картинки полный сделал...
Так вот надо чтоыб все мои пост данные отправилиь на страницу http://www.tuborg.ru/register/index.php?pageid=12
=)

   
 
 автор: Binura   (05.05.2007 в 14:29)   письмо автору
 
   для: SnooPI   (05.05.2007 в 14:22)
 

хотя нет... теперь все поняла...

   
 
 автор: SnooPI   (05.05.2007 в 22:43)   письмо автору
 
   для: SnooPI   (05.05.2007 в 01:06)
 

Ну помогите кто-нибудь !

   
 
 автор: SnooPI   (06.05.2007 в 18:54)   письмо автору
 
   для: SnooPI   (05.05.2007 в 22:43)
 

Не верю что никто не знает :(

   
 
 автор: Binura   (06.05.2007 в 21:27)   письмо автору
 
   для: SnooPI   (06.05.2007 в 18:54)
 

у меня все работает.... и гет и пост одновременно...


$sss = $_SERVER['QUERY_STRING'];
$sss = UrlDecode($sss);
if(!empty($_POST['msg']))
{
  $mess = $_POST['msg'];
  $too = $_POST['to'];
  $hostname = "sait.ru";
  $path = "/index.php?$sss";

   
 
 автор: kasmanaft   (06.05.2007 в 21:59)   письмо автору
 
   для: SnooPI   (06.05.2007 в 18:54)
 

enctype="multipart/form-data" - по-моему лишнее..
"Content-Length: ".strlen($post)."\r\n\r\n".$post."\r\n"; - тут .$post."\r\n" лишнее вроде.
"Host: ".$host."\r\n"; - вместо ; поставте точку (и ниже строки)
После этого врядли заработает, но что-нить может быть и прояснится.

   
 
 автор: KPETuH   (07.05.2007 в 08:01)   письмо автору
 
   для: SnooPI   (05.05.2007 в 01:06)
 

вы проанализировали данные которые вы получаете после регистрации? все что я вижу так это то что вы с помощью сокетов посылаете завпрос получаете ответ но где анализ ответа?

вообще нужно проанализировать сначала снифером чего вы получает при регистрации в браузере а патом уже здесь кричать громко...

   
 
 автор: SnooPI   (08.05.2007 в 01:53)   письмо автору
 
   для: KPETuH   (07.05.2007 в 08:01)
 

Не понял..мне бы код )

   
Rambler's Top100
вверх

Rambler's Top100 Яндекс.Метрика Яндекс цитирования