Версия для печати темы
Нажмите сюда для просмотра этой темы в оригинальном формате
Форум программистов > Delphi: Сети > Отправление данных Post(sms)


Автор: D1s0rd3r 5.1.2008, 02:19
Добрый день..  Нужна помочь в понимание ниже изложенного.

Есть сайт http://smste.ru/ там форма для отправки смс. Как я успев поковырятся то технология там Ajax.
Только вот не понимаю одной вещи...

Номер телефона и капчу он генерит вот этим скриптом: http://smste.ru/netxml.php?number=792020148хх

И все данные которые получил передает в форму на главной странице сайта. Форму заполняеш и отправляеш данные, передаются данные эти: 
Код

Array ( [number] => 79202014876 [message] => test [sign] => dima [event] => 1032131 [codemod] => code1388903620 [code1388903620] => 123 )


Если сохранить форму на винте и чуток ее подправить подисать везде сайт то она все отправляет и доходит. Вот в чем беда написал я программу на Delphi.

Код

procedure TForm1.Edit1Exit(Sender: TObject);
var
  test:  Integer;
begin
  test:=1 + Random(100000);
  XMLDocument1.FileName:='http://smste.ru/netxml.php?number='+Edit1.Text+'&rnd='+IntToStr(test);
  XMLDocument1.Active:=true;
  // Информация о операторе
  Label1.Caption:=XMLDocument1.DocumentElement.ChildNodes.Nodes[2].NodeValue;
  Label2.Caption:=XMLDocument1.DocumentElement.ChildNodes.Nodes[3].NodeValue;
  url:=XMLDocument1.DocumentElement.ChildNodes.Nodes[4].NodeValue;
  Label1.Hint:=XMLDocument1.DocumentElement.ChildNodes.Nodes[4].NodeValue;
  // Картинка
  Label3.Caption:='http://www.smste.ru'+XMLDocument1.DocumentElement.ChildNodes.Nodes[6].NodeValue;
  Label4.Caption:=XMLDocument1.DocumentElement.ChildNodes.Nodes[7].NodeValue;
  WebBrowser1.Navigate('http://smste.ru'+XMLDocument1.DocumentElement.ChildNodes.Nodes[6].NodeValue);
end;

procedure TForm1.Button1Click(Sender: TObject);
var
  data: TIdMultiPartFormDataStream;
  i: Integer;
begin
  data := TIdMultiPartFormDataStream.Create;
  try
       data.AddFormField('number', Edit1.Text);
       data.AddFormField('message','1111');
       data.AddFormField('sign','Dima');
       data.AddFormField('event', XMLDocument1.DocumentElement.ChildNodes.Nodes[7].NodeValue);
             data.AddFormField('codemod','code1388903620');
       data.AddFormField('code1388903620', Edit2.Text);

      Memo2.Text := IdHTTP1.Post('http://smste.ru/', data);

  finally
      data.Free;
  end;

end;


Ну так вот, данные вроде отправляются...  скрипту... но смс не приходит.. не могу понять в чем дело может кто подсказать???    smile 

Автор: Qu1nt 5.1.2008, 02:31
С помощью сниффера сравни, что посылает браузер, и, что посылаешь ты. 

Автор: D1s0rd3r 5.1.2008, 02:35
Сравнивал все тоже самое.

Код

number= 79202014876 
message = test 
sign = dima 
event = 1032131 
codemod = code1388903620 
code1388903620 = 123 

Автор: MetalFan 5.1.2008, 11:24
чудес не бывает. значит не тоже самое

Автор: aktuba 5.1.2008, 16:15
Цитата(MetalFan @  5.1.2008,  12:24 Найти цитируемый пост)
чудес не бывает.

Знакомая фраза =)

Цитата(D1s0rd3r @  5.1.2008,  03:19 Найти цитируемый пост)
WebBrowser1.Navigate('http://smste.ru'+XMLDocument1.DocumentElement.ChildNodes.Nodes[6].NodeValue);

Никогда этого не пойму  smile Зачем использовать WebBrowser для простой отправки данных???

Автор: D1s0rd3r 6.1.2008, 11:15
Цитата(aktuba @ 5.1.2008,  16:15)
Никогда этого не пойму  smile Зачем использовать WebBrowser для простой отправки данных???

Я просто в нем показываю картинку... и все! Счас проверяю от чудес...  smile 

Автор: D1s0rd3r 6.1.2008, 11:47
Ну насчет чудес незнаю...  тогда может кто подскажет как это понимать?
На рисунках работа снифера.

http://tribes2005.narod.ru/1.JPG

http://tribes2005.narod.ru/2.JPG

Это скажите чудеса? smile 

Ссылки поправил.

Автор: MetalFan 6.1.2008, 12:11
Forbidden

You don't have permission to access /1.JPG on this server.

Автор: D1s0rd3r 6.1.2008, 12:28
Ссылки счас поправлю. Вот отчет снифера, еще один:

Код

POST / HTTP/1.1
Accept: image/gif, image/x-xbitmap, image/jpeg, image/pjpeg, application/x-shockwave-flash, application/vnd.ms-excel, application/vnd.ms-powerpoint, application/msword, */*
Referer: http://smste.ru
Accept-Language: ru
Content-Type: application/x-www-form-urlencoded
Accept-Encoding: gzip, deflate
User-Agent: Mozilla/4.0 (compatible; MSIE 6.0; Windows NT 5.1; SV1)
Host: smste.ru
Content-Length: 99
Connection: Keep-Alive
Cache-Control: no-cache
Cookie: sign=Dima; PHPSESSID=7gud1991742ktv54a3k0oihul2; abid=86f4fce5f0ju7u0abp9e

number=79224683326&message=1111&sign=Dima&event=1035980&codemod=code1307927351&code1307927351=18900HTTP/1.1 200 OK
Date: Sun, 06 Jan 2008 09:22:15 GMT
Server: Apache/2.0.61 (Unix) PHP/4.4.7 mod_ssl/2.0.61 OpenSSL/0.9.7e mod_fastcgi/2.4.2 DAV/2 SVN/1.4.2
X-Powered-By: PHP/5.2.3
Expires: Thu, 19 Nov 1981 08:52:00 GMT
Cache-Control: no-store, no-cache, must-revalidate, post-check=0, pre-check=0
Pragma: no-cache
Set-Cookie: abid=86f4fce5f0ju7u13bekx
Set-Cookie: sign=Dima; expires=Wed, 03-Jan-2018 09:22:15 GMT; path=/
Set-Cookie: number=79224683326
Keep-Alive: timeout=2, max=100
Connection: Keep-Alive
Transfer-Encoding: chunked
Content-Type: text/html

Автор: MetalFan 6.1.2008, 13:10
что ты тут повыкладывал?!
выложи (или подпиши что где):
1. Запрос, отсылаемый браузером
2. Запрос, отсылаемый прогой.

Автор: D1s0rd3r 6.1.2008, 14:14
1) Отправлял IE:
Код

POST / HTTP/1.1
Accept: image/gif, image/x-xbitmap, image/jpeg, image/pjpeg, application/x-shockwave-flash, application/vnd.ms-excel, application/vnd.ms-powerpoint, application/msword, */*
Referer: http://smste.ru
Accept-Language: ru
Content-Type: application/x-www-form-urlencoded
Accept-Encoding: gzip, deflate
User-Agent: Mozilla/4.0 (compatible; MSIE 6.0; Windows NT 5.1; SV1)
Host: smste.ru
Content-Length: 99
Connection: Keep-Alive
Cache-Control: no-cache
Cookie: sign=Dima; PHPSESSID=7gud1991742ktv54a3k0oihul2; abid=86f4fce5f0ju7u0abp9e

number=79224683326&message=1111&sign=Dima&event=1035980&codemod=code1307927351&code1307927351=18900HTTP/1.1 200 OK
Date: Sun, 06 Jan 2008 09:22:15 GMT
Server: Apache/2.0.61 (Unix) PHP/4.4.7 mod_ssl/2.0.61 OpenSSL/0.9.7e mod_fastcgi/2.4.2 DAV/2 SVN/1.4.2
X-Powered-By: PHP/5.2.3
Expires: Thu, 19 Nov 1981 08:52:00 GMT
Cache-Control: no-store, no-cache, must-revalidate, post-check=0, pre-check=0
Pragma: no-cache
Set-Cookie: abid=86f4fce5f0ju7u13bekx
Set-Cookie: sign=Dima; expires=Wed, 03-Jan-2018 09:22:15 GMT; path=/
Set-Cookie: number=79224683326
Keep-Alive: timeout=2, max=100
Connection: Keep-Alive
Transfer-Encoding: chunked
Content-Type: text/html


2) Отправлял Прогой:
Код

POST / HTTP/1.0
Connection: keep-alive
Content-Type: application/x-www-form-urlencoded
Content-Length: 100
Host: smste.ru
Accept: text/html, */*
User-Agent: Mozilla/3.0 (compatible; Indy Library)

number=79224683326&message=1111&sign=Dima&event=1036419&codemod=code1388903620&code1388903620=95957&HTTP/1.1 200 OK
Date: Sun, 06 Jan 2008 11:06:36 GMT
Server: Apache/2.0.61 (Unix) PHP/4.4.7 mod_ssl/2.0.61 OpenSSL/0.9.7e mod_fastcgi/2.4.2 DAV/2 SVN/1.4.2
X-Powered-By: PHP/5.2.3
Expires: Thu, 19 Nov 1981 08:52:00 GMT
Cache-Control: no-store, no-cache, must-revalidate, post-check=0, pre-check=0
Pragma: no-cache
Set-Cookie: PHPSESSID=rgbec1nmus77gus20a90g14i14; path=/
Set-Cookie: abid=86f4fce5f0ju7yv1thzk
Set-Cookie: sign=Dima; expires=Wed, 03-Jan-2018 11:06:37 GMT; path=/
Set-Cookie: number=79224683326
Connection: close
Content-Type: text/html

Автор: aktuba 6.1.2008, 18:22
Цитата(D1s0rd3r @  6.1.2008,  15:14 Найти цитируемый пост)
Cookie: sign=Dima; PHPSESSID=7gud1991742ktv54a3k0oihul2; abid=86f4fce5f0ju7u0abp9e

Советую обратить внимание на эту строку...

Автор: Qu1nt 6.1.2008, 19:55
Цитата(D1s0rd3r @  6.1.2008,  12:28 Найти цитируемый пост)
Referer: http://smste.ru

Возможно, стоит обратить внимание и на эту...

Автор: D1s0rd3r 6.1.2008, 22:27
Код

Cookie: sign=Dima; PHPSESSID=7gud1991742ktv54a3k0oihul2; abid=86f4fce5f0ju7u0abp9e


Это строка потому, что я ранее отправлял смс. И просто они остались.

Код

Referer: http://smste.ru


Обратил, и сохранил форму на винте. Открыл и отправил с html файла сохраненного на винте. и смс дошла.

Внимательно посмотрев на отправляемые данные я увидел значек & в конце поста с отправляемой программой:

Код

number=79224683326&message=1111&sign=Dima&event=1036419&codemod=code1388903620&code1388903620=95957&


Я отправляю POST вот так вот:
Код

var
 LoginInfo: TStrings;
 Response: TStringStream;
begin
 LoginInfo := TStringList.Create;
 Response := TStringStream.Create('');
   LoginInfo.Clear;
   LoginInfo.Add('number='+Edit1.Text);
   LoginInfo.Add('message=1111');
   LoginInfo.Add('sign=Dima');
   LoginInfo.Add('event='+XMLDocument1.DocumentElement.ChildNodes.Nodes[7].NodeValue);
   LoginInfo.Add('codemod=code1388903620');
   LoginInfo.Add('code1388903620='+Edit2.Text);
   IdHTTP1.Post('http://smste.ru/',LoginInfo,Response);
   Memo3.Text :=Response.DataString;
 Response.Free;
 LoginInfo.Free;


В чем дело не пойму....  smile 

Автор: Lence 7.1.2008, 09:08
Попробуй изменит Юзер агент как браузере.
User-Agent: Mozilla/4.0 (compatible; MSIE 6.0; Windows NT 5.1; SV1)
И обязательно Куки передавай. 

Автор: MetalFan 7.1.2008, 14:56
Цитата(D1s0rd3r @  6.1.2008,  22:27 Найти цитируемый пост)
В чем дело не пойму....  smile  

1. попробуй заюзать TIdMultipartFormData
2. попробуй сам формировать строку, а не с пом. TStrings

Powered by Invision Power Board (http://www.invisionboard.com)
© Invision Power Services (http://www.invisionpower.com)