Модераторы: Snowy, Poseidon, MetalFan

Поиск:

Ответ в темуСоздание новой темы Создание опроса
> SMS на билайн, Ошибка в коде 
:(
    Опции темы
pomogite
  Дата 11.3.2010, 12:09 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Бывалый
*


Профиль
Группа: Участник
Сообщений: 208
Регистрация: 24.3.2006

Репутация: нет
Всего: нет



Здравствуйте, 
Я пишу программу для отправки смс на билайн,
Вот код
Код

unit Unit1;

interface

uses
  Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,
  Dialogs, GIFImage, ExtCtrls, StdCtrls, IdBaseComponent, IdComponent,
  IdTCPConnection, IdTCPClient, IdHTTP, IdAntiFreezeBase, IdAntiFreeze,
  ComCtrls, TabNotBk;

type
  TForm1 = class(TForm)
    IdHTTP1: TIdHTTP;
    IdAntiFreeze1: TIdAntiFreeze;
    GroupBox1: TGroupBox;
    Label1: TLabel;
    Button1: TButton;
    code: TEdit;
    Shape1: TShape;
    Image1: TImage;
    GroupBox2: TGroupBox;
    GroupBox3: TGroupBox;
    CheckBox1: TCheckBox;
    GroupBox4: TGroupBox;
    Memo1: TMemo;
    Button2: TButton;
    Button3: TButton;
    Label3: TLabel;
    StatusBar1: TStatusBar;
    Label2: TLabel;
    pref: TEdit;
    number: TEdit;
    Label4: TLabel;
    procedure Button1Click(Sender: TObject);
    procedure Memo1Change(Sender: TObject);
    procedure Button2Click(Sender: TObject);
    
  private
    { Private declarations }
  public
    { Public declarations }
  end;

var
  Form1: TForm1;
  S:string;
implementation

{$R *.dfm}

procedure TForm1.Button1Click(Sender: TObject);
const
C_Url='http://www.beeline.ru/mamimg.aspx?width=90&height=30';
var
  MS: TMemoryStream;
  jpg: TGIFImage;
begin
Button1.Enabled:=false;
StatusBar1.Panels[0].Text:='Èä¸ò çàãðóçêà êàðòèíêè, æäèòå... ';
IdAntiFreeze1.Process;
MS:=TMemoryStream.Create;
jpg:= TGIFImage.Create;
try
  IdHTTP1.Get(C_Url,MS);
  MS.Position := 0;
  jpg.LoadFromStream(MS);
  Image1.Picture.Bitmap.Assign(jpg);
  MS.free;
  jpg.Free;
  Button1.Enabled:=true;
  StatusBar1.Panels[0].Text:='Êàðòèíêà çàãðóæåíà! ';
except
  MessageDlg('Ñåðâèñ íåäîñòóïåí!'+chr(13)+'Ïðîâåðòå ñîåäèíåíèå ñ Èíòåðíåò!',mtError,[mbOk],0);
    StatusBar1.Panels[0].Text:='Ñåðâèñ íåäîñòóïåí..';
    exit;
end;    
end;



procedure TForm1.Memo1Change(Sender: TObject);
begin
Label3.Caption := IntToStr(156-length(Memo1.Text)) + ' ñèìâîëîâ îñòàëîñü';
end;

procedure TForm1.Button2Click(Sender: TObject);
var Data:TStringList;
begin
StatusBar1.Panels[0].Text:='Èä¸ò îòïðàâêà ,ïîæàëóéñòà, ïîäîæäèòå... ';
 Data:=TStringList.Create;
 Data.Add('send=');
 Data.Add('smstext='+memo1.Text);
 Data.Add('smstoprefix='+pref.Text);
 Data.Add('smsto='+number.Text);
 Data.Add('dirtysmstext='+memo1.Text);
 Data.Add('translit=off');
 Data.Add('confirm_key=');
 Data.Add('confirmcode='+code.Text);
 //Data.Add('x=35');
 //Data.Add('y=10');
 //S:=
 IdHTTP1.Post('http://www.beeline.ru/sms/index.wbp', Data);
{ if Pos('Ñîîáùåíèå ïîìåùåíî â î÷åðåäü îòïðàâêè', S)<>0 then
  StatusBar1.Panels[0].Text:='Ñîîáùåíèå ïîñòàâëåíî â î÷åðåäü'
 else
  StatusBar1.Panels[0].Text:='Ñîîáùåíèå íå îòïðàâëåíî!';}
end;

end.

 но возникли 2 вопроса, почему возникает ошибка -
user posted image

В строке -  IdHTTP1.Post('http://www.beeline.ru/sms/index.wbp', Data);

И ещё при отправке запроса POST из браузера в нём фигурируют некие x и y, и значения у них всегда разные, не подскажите где брать эти значения? вот сам запрос из браузера- 
Код

send                          
smstext         TEST MESSAGE  
smstoprefix     903           
smsto           4000006       
dirtysmstext    TEST MESSAGE  
translit        on            
confirm_key                   
confirmcode     1296          
x               35            
y               10            


Заранее спасибо.

PM MAIL   Вверх
Akella
Дата 11.3.2010, 12:52 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Творец
****


Профиль
Группа: Модератор
Сообщений: 18485
Регистрация: 14.5.2003
Где: Корусант

Репутация: 4
Всего: 329



Цитата(pomogite @  11.3.2010,  12:09 Найти цитируемый пост)
И ещё при отправке запроса POST из браузера в нём фигурируют некие x и y,

Может это координаты курсора мышки?
PM MAIL   Вверх
pomogite
Дата 11.3.2010, 13:19 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Бывалый
*


Профиль
Группа: Участник
Сообщений: 208
Регистрация: 24.3.2006

Репутация: нет
Всего: нет



Akella, 
Возможно и координаты, проверить не могу потому что смс не отправляется =( хотя код я ввожу правильный, и инди последние поставила, всё равно ошибка эта появляется...
PM MAIL   Вверх
Coder
Дата 12.3.2010, 03:53 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


Профиль
Группа: Участник
Сообщений: 733
Регистрация: 13.12.2004

Репутация: нет
Всего: 11



Я не силен в каптчах, но кое что проверил - может подтолкнет на мысль. 
Если открыть в разных браузерах саму картинку http://www.beeline.ru/mamimg.aspx?width=90&height=30 и форму http://www.beeline.ru/sms/index.wbp, то выдаваемые каптчи на них не совпадут! Может проблема в том, что на каждую сессию выдается свой код?

И еще, вот так более правильно работать с Инди. (взято из книги, "Глубины Инди", кажется)

Код

  try
    try
      RetData:=IdHTTP1.Post('http://'+ServerIP+SrvPath,lst);
    finally
      IdHTTP1.DisconnectSocket;
    end;
  except on E: EIdException do
    begin
      result:='Ошибка соединения: ' + E.Message;
    end;
  end;
  lst.Free;


Добавлено @ 03:59
насчет ошибки... я не уверен, но может передаваемые данные обернуть в что-то типа encodeURIComponent? Наверняка там есть русские и спец. символы.

http://javascript.ru/encodeURIComponent

Но внимание! encodeURIComponent - используется в JavaScript, реализацию под Делфи нужно будет тебе поискать.

Это сообщение отредактировал(а) Coder - 12.3.2010, 04:01
PM MAIL   Вверх
Akella
Дата 12.3.2010, 09:50 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Творец
****


Профиль
Группа: Модератор
Сообщений: 18485
Регистрация: 14.5.2003
Где: Корусант

Репутация: 4
Всего: 329



Цитата(Coder @  12.3.2010,  03:53 Найти цитируемый пост)
Может проблема в том, что на каждую сессию выдается свой код?

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

Это сообщение отредактировал(а) Akella - 12.3.2010, 09:50
PM MAIL   Вверх
pomogite
Дата 12.3.2010, 12:41 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Бывалый
*


Профиль
Группа: Участник
Сообщений: 208
Регистрация: 24.3.2006

Репутация: нет
Всего: нет



С капчей всё нормально у меня, каждый раз новая выдаётся и вводится, с текстом тоже всё нормально, даже если отсылаешь русский текст с браузера он так и передаётся,  дело в самой программе, похоже что-то неправильно в коде...либо со значениями x y что-то...
PM MAIL   Вверх
Mikel
Дата 12.3.2010, 13:52 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


Профиль
Группа: Участник Клуба
Сообщений: 882
Регистрация: 30.3.2002
Где: Саратов

Репутация: нет
Всего: 2



А что отвечает сервер? Скорее всего дело действительно в каптче. Когда загружаете её, скрипт задает параметры сессии, а при отправке смс он их проверяет.


--------------------
...so remember, it's better to burn out than to fade away
PM MAIL ICQ   Вверх
Coder
Дата 12.3.2010, 15:00 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


Профиль
Группа: Участник
Сообщений: 733
Регистрация: 13.12.2004

Репутация: нет
Всего: 11



Цитата(Akella @  12.3.2010,  17:50 Найти цитируемый пост)
Нет, всё время выдаётся одинаковый код  . А смысл тогда использовать капчу, если код будет одинаковый, даже если ты заходишь с одного и того же IP. Или ты не знаешь, что с одного и того же IP можно одновременно нескольким компьютерам выходить в интернет?


Слышал smile на самом деле, под каждой сессией я имел ввиду Button1Click и Button2Click. 

Сначала пользователь запрашивает по кнопке1 капчу, потом ее код отправляется при нажатии на кнопку2. Мне кажется сервер уже ждет другого кода - сессии не согласованы smile

Добавлено через 1 минуту и 2 секунды
Цитата(Mikel @  12.3.2010,  21:52 Найти цитируемый пост)
А что отвечает сервер? Скорее всего дело действительно в каптче. Когда загружаете её, скрипт задает параметры сессии, а при отправке смс он их проверяет.


Во-во!
PM MAIL   Вверх
pomogite
  Дата 18.3.2010, 11:41 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Бывалый
*


Профиль
Группа: Участник
Сообщений: 208
Регистрация: 24.3.2006

Репутация: нет
Всего: нет



И где эти параметры взять? И что нужно сделать чтобы всё верно отправлялось?
PM MAIL   Вверх
Mikel
Дата 18.3.2010, 13:51 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


Профиль
Группа: Участник Клуба
Сообщений: 882
Регистрация: 30.3.2002
Где: Саратов

Репутация: нет
Всего: 2



Надо смотреть умеет ли Indy работать с печенками smile http://ru.wikipedia.org/wiki/HTTP_cookie


--------------------
...so remember, it's better to burn out than to fade away
PM MAIL ICQ   Вверх
Akella
Дата 18.3.2010, 14:29 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Творец
****


Профиль
Группа: Модератор
Сообщений: 18485
Регистрация: 14.5.2003
Где: Корусант

Репутация: 4
Всего: 329



Цитата(Mikel @  18.3.2010,  13:51 Найти цитируемый пост)
Надо смотреть умеет ли Indy работать с печенками

Конечно умеет smile , ещё бы инди и не работали с печеньками smile
PM MAIL   Вверх
pomogite
  Дата 19.3.2010, 11:33 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Бывалый
*


Профиль
Группа: Участник
Сообщений: 208
Регистрация: 24.3.2006

Репутация: нет
Всего: нет



Подскажите пожалуйста как мне работать с куками, получать/отправлять обратно, чтобы смс нормально отправилась?
PM MAIL   Вверх
Coder
Дата 19.3.2010, 12:44 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


Профиль
Группа: Участник
Сообщений: 733
Регистрация: 13.12.2004

Репутация: нет
Всего: 11



pomogite, а почему вы исключили сессии web сервера? ;)

Вот копи-паст с какого-то учебника:
Цитата

Сессии и cookies предназначены для хранения сведений о пользователях при переходах между несколькими страницами. 
- При использовании сессий данные сохраняются во временных файлах на сервере. 
- Файлы с cookies хранятся на компьютере пользователя, и по запросу отсылаются браузером серверу.

PM MAIL   Вверх
Mikel
Дата 19.3.2010, 12:52 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


Профиль
Группа: Участник Клуба
Сообщений: 882
Регистрация: 30.3.2002
Где: Саратов

Репутация: нет
Всего: 2



smile для справки:
Цитата

A session token is a unique identifier (usually in the form of a hash generated by a hash function) that is generated and sent from a server to a client to identify the current interaction session. The client usually stores and sends the token as an HTTP cookie and/or sends it as a parameter in GET or POST queries. The reason to use session tokens is that the client only has to handle the identifier - all session data is stored on the server (usually in a database, to which the client does not have direct access) linked to that identifier. Examples of the names that some programming languages use when naming their HTTP cookie include JSESSIONID (JSP), PHPSESSID (PHP), and ASPSESSIONID (ASP).


pomogite, выложи проект, если не секретный, так проще будет попробовать smile 


--------------------
...so remember, it's better to burn out than to fade away
PM MAIL ICQ   Вверх
Akella
Дата 19.3.2010, 16:08 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Творец
****


Профиль
Группа: Модератор
Сообщений: 18485
Регистрация: 14.5.2003
Где: Корусант

Репутация: 4
Всего: 329



Цитата(pomogite @  19.3.2010,  11:33 Найти цитируемый пост)
Подскажите пожалуйста как мне работать с куками

а что, гугл тебя уже забанил??
PM MAIL   Вверх
Ответ в темуСоздание новой темы Создание опроса
Правила форума "Delphi: Сети"
Snowy
Poseidon
MetalFan

Запрещено:

1. Публиковать ссылки на вскрытые компоненты

2. Обсуждать взлом компонентов и делится вскрытыми компонентами

  • Литературу по Дельфи обсуждаем здесь
  • Действия модераторов можно обсудить здесь
  • С просьбами о написании курсовой, реферата и т.п. обращаться сюда
  • Вопросы по реализации алгоритмов рассматриваются здесь
  • 90% ответов на свои вопросы можно найти в DRKB (Delphi Russian Knowledge Base) - крупнейшем в рунете сборнике материалов по Дельфи

Если Вам помогли и атмосфера форума Вам понравилась, то заходите к нам чаще! С уважением, Snowy, Poseidon, MetalFan.

 
0 Пользователей читают эту тему (0 Гостей и 0 Скрытых Пользователей)
0 Пользователей:
« Предыдущая тема | Delphi: Сети | Следующая тема »


 




[ Время генерации скрипта: 0.0561 ]   [ Использовано запросов: 22 ]   [ GZIP включён ]


Реклама на сайте     Информационное спонсорство

 
По вопросам размещения рекламы пишите на vladimir(sobaka)vingrad.ru
Отказ от ответственности     Powered by Invision Power Board(R) 1.3 © 2003  IPS, Inc.