HOME    FORUMS    MEMBERS    RECENT POSTS    LOG IN  
Баннер 1   Баннер 2

ANTICHAT — форум по информационной безопасности, OSINT и технологиям

ANTICHAT — русскоязычное сообщество по безопасности, OSINT и программированию. Форум ранее работал на доменах antichat.ru, antichat.com и antichat.club, и теперь снова доступен на новом адресе — forum.antichat.xyz.
Форум восстановлен и продолжает развитие: доступны архивные темы, добавляются новые обсуждения и материалы.
⚠️ Старые аккаунты восстановить невозможно — необходимо зарегистрироваться заново.
Вернуться   Форум АНТИЧАТ > ПРОГРАММИРОВАНИЕ > С/С++, C#, Rust, Swift, Go, Java, Perl, Ruby
   
Ответ
 
Опции темы Поиск в этой теме Опции просмотра

  #1  
Старый 15.04.2010, 22:34
n1ghtstalker
Познающий
Регистрация: 28.09.2008
Сообщений: 65
Провел на форуме:
152084

Репутация: 8
По умолчанию

а пробовал с ц ограниченным циклом? :\ а то я даже и не знаю,по моему закрытие идёт а по всей видимости на практике не происходит.
 
Ответить с цитированием

  #2  
Старый 16.04.2010, 06:10
RumShun
Постоянный
Регистрация: 27.10.2008
Сообщений: 380
Провел на форуме:
1249808

Репутация: 149
Отправить сообщение для RumShun с помощью ICQ
По умолчанию

Nightmarе, Pr0mo правильно говорит, добавь еще sleep и application.ProcessMessages.
 
Ответить с цитированием

  #3  
Старый 16.04.2010, 14:57
heretic1990
Постоянный
Регистрация: 02.07.2008
Сообщений: 472
Провел на форуме:
3728999

Репутация: 444
По умолчанию

в общем такая проблема:
делаю проверку на заполнение полей, и если в поле нет цифр, то выдаётся сообщение что поле не заполнено, если все поля заполнены то выдаётся соответствующее сообщение что "заполнено", но проблема в то что если все поля пусты и мы нажимаем на кнопку то вылетает ошибка. как избавиться от этого, ну или какие есть ещё варианты на проверку заполнения полей?

Код:
procedure TForm1.Button1Click(Sender: TObject);
begin


  if not (Edit2.Text[1] in ['0'..'9']) then
  begin
    ShowMessage('Не заполнено поле 2');
    Edit2.SetFocus;

      if not (Edit1.Text[1] in ['0'..'9']) then
  begin
    ShowMessage('Не заполнено поле 1');
    Edit1.SetFocus;

      if not (Edit3.Text[1] in ['0'..'9']) then
  begin
    ShowMessage('Не заполнено поле 3');
    Edit3.SetFocus;

  end;
  end;

  end

  else
  begin
  ShowMessage('заполнено');
  end

end;
 
Ответить с цитированием

  #4  
Старый 16.04.2010, 15:38
GhostOnline
Участник форума
Регистрация: 20.12.2008
Сообщений: 277
Провел на форуме:
828081

Репутация: 84
По умолчанию

Ошибка из-за того что ты обращаешься к несуществующему символу:
Edit2.Text[1]
Прежде чем обращаться к эдиту сделай проверку наподобие
if Edit2.Text = '' then
begin
ShowMessage('Идите в жопу, поля снача заполнять надо!');
exit;
end;
и так перед обращением к каждому эдиту

Можно еще проверять по Length(Edit2.Text) = 0

Ах да, если тебе нужно чтобы в полях было количество символов не больше чем N то выстави свойства у эдитов MaxLength равным N

Последний раз редактировалось GhostOnline; 16.04.2010 в 15:45..
 
Ответить с цитированием

IDC СМС Спамер...
  #5  
Старый 16.04.2010, 17:15
slesher
Banned
Регистрация: 30.11.2009
Сообщений: 1
Провел на форуме:
12739

Репутация: -5
Cool IDC СМС Спамер...

Всем привет! У меня такой вопрос...
Есть оператор мобильной связи IDC. Так же у них на серваке есть сайт для отправления СМС-Сообщений на телефоны подключенные к их компании... Вот ссылка: http://sms.idknet.com... Отсюда я и собираюсь отправлять СМС спам...
Немного подумав как это проще сделать я нашел самый оптимальный вариант, и перешел к действиям...
1) Снифером HTTP Analyzer 5.0 отсканировал post запрос, который отправляется на файлик отбработчика: http://sms.idknet.com/sms.php
Оказалось, что при отправке в обработчик поступают следующие параметры:
prefix - Код оператора
txtAddr - Номер телефона
sum - Оставшееся колличество символов
txtSM - Текст СМС Сообщения
code - Код Капчи
Submit2.x - Абсцысса кнопки "Отправить" (Оставить по умолчанию 35)
Submit2.y - Ордината кнопки "Отправить" (Оставить по умолчанию 15)
Submit2 - Надпись на кнопке (Оставить по умолчанию Отправить)

Если все это дело отправлять Get запросом, то выходит что то вроде такова: http://sms.idknet.com/sms.php?prefix=777&txtAddr=12345&sum=160&txtSM=%C2 %E2%E5%E4%E8%F2%E5+%F1%EE%EE%E1%F9%E5%ED%E8%E5.+%C 4%EB%E8%ED%E0+%F1%EE%EE%E1%F9%E5%ED%E8%FF+%ED%E5+% E4%EE%EB%E6%ED%E0+%EF%F0%E5%E2%FB%F8%E0%F2%FC+160+ %F1%E8%EC%E2%EE%EB%EE%E2.&code=&Submit2.x=35&Submi t2.y=15&Submit2=%CE%F2%EF%F0%E0%E2%E8%F2%FC

Но после нескольких эксперементов, убедился, что Get запросом тут не обойтись, пишет, что незаполнены поля...

Я стал юзать Post...
КОД:
procedure TForm1.Button2Click(Sender: TObject);
var data: tstringlist;
ssylka,STR: string;
begin
idhttp1.HandleRedirects:=true;
STR:=idhttp1.Get('http://sms.idknet.com');
ssylka:='http://sms.idknet.com/sms.php';
data:=tstringlist.Create;
data.Add('code='+edit3.text);
data.Add('prefix='+st);
data.Add('Submit2=Отправить');
data.Add('Submit2.x=27');
data.Add('Submit2.y=6');
data.Add('sum=160');
data.Add('txtAddr='+edit1.text);
data.Add('txtSM='+edit2.text);
str:=idhttp1.Post(ssylka, data);
showmessage(idhttp1.URL.URI);
if pos('class="bad"', STR) <> 0 then
label5.Caption:='Сообщение неотправленно!'
else
label5.Caption:='Сообщение отправленно!';
end;

И функция парса:
function tform1.pars(T_, ForS, _T:string):string;
var a, b: integer;
begin
Result:='';
if (T_ = '') or (ForS='') or (_T = '') then
exit;
a:=pos(T_,ForS);
if a = 0 then exit
else
a:=a+length(T_);
fors:=copy(ForS, a, length(ForS) - a + 1);
if b > 0 then
result:=copy(ForS,1,b-1);
end;

Все вродебы не плохо, но осталась одна нерешенная проблема!...(( Что делать с капчей...
Подумав, я не стал заморачиваться, и решил просто сделать так, чтобы капча выводилась в программу, и я сам ее каждый раз вводил...
Код примерно такой:

procedure TForm1.Label3Click(Sender: TObject);
var _Captcha : TJPEGImage;
F_body : TMemoryStream;
id, a:string;
MyIdHTTP : TIdHTTP;
begin
MyIdHTTP:=TIdHTTP.Create(Self);
F_body := TMemoryStream.Create;
_Captcha:=TJPEGImage.Create;
try
MyIdHTTP.Get('http://sms.idknet.com/code.php', F_body);
F_body.Seek(0, soFromBeginning);
_Captcha.LoadFromStream(F_body);
Image1.Picture.Assign(_Captcha);
Image1.Width:=_Captcha.Width;
Image1.Height:=_Captcha.Height;
finally
F_body.Free;
_Captcha.Free;
end;
end;

Сама капча находится на главной страничке http://sms.idknet.com, но вытаскивается туда она со странички http://sms.idknet.com/code.php

Все вроде бы замечательно, капчу программа в себя вытаскивает нормально, но когда я ее ввожу (и ввожу правильно) всеравно отправка не идет, и пишет что капча введена неверно!

Сначала не мог понять в чем прикол, потом догнал... Капча та каждый раз при обновление меняется...
Я получается вытаскиваю капчу одну, ввожу ее, а отом при Post запросе вытаскивается страница целиком вместе с капчей, следовательно и капча меняется...

Что мне делать в таком случае? Подскажите пожалуйста!!!
 
Ответить с цитированием

  #6  
Старый 16.04.2010, 18:32
HakaR
Участник форума
Регистрация: 23.07.2009
Сообщений: 261
Провел на форуме:
4435957

Репутация: 539
По умолчанию

slesher
idhttp + idcookiemanager + jpeg
у мну работает, можешь предпоследнию строчку расскоментировать, что бы смотреть резултат...
PHP код:
procedure TForm1.Button1Click(SenderTObject);
var
posttstringlist;
captchatextresultstring;
msTMemoryStream;
begin
ms 
:= TMemoryStream.Create;
post:=tstringlist.Create;
http.Get('http://sms.idknet.com/code.php'ms);
ms.SaveToFile('captcha_temp.jpeg');
ms.Clear;
captcha.Picture.LoadFromFile('captcha_temp.jpeg');
InputQuery('Captcha','Enter captcha',captchatext);
post.Add('prefix=777');
post.Add('txtAddr=13212');
post.Add('txtSM=test');
post.Add('sum=155');
post.Add('code='+captchatext);
result:=http.Post('http://sms.idknet.com/sms.php',post);
if 
AnsiPos('ОТПРАВЛЕНО'result) > 0 then
showmessage
('Отправлено') else showmessage('ХУЙ!');
//showmessage(result);
//cookie.CookieCollection.Clear;
ms.Free;
end

Последний раз редактировалось HakaR; 16.04.2010 в 18:37..
 
Ответить с цитированием

  #7  
Старый 16.04.2010, 23:29
Life7
Banned
Регистрация: 14.06.2009
Сообщений: 256
Провел на форуме:
260151

Репутация: 105
По умолчанию

798180
 
Ответить с цитированием

  #8  
Старый 17.04.2010, 01:15
ntldr
Постоянный
Регистрация: 04.12.2007
Сообщений: 424
Провел на форуме:
2364957

Репутация: 479
По умолчанию

А зачем тебе
setsockopt(hSocket, SOL_SOCKET, SO_RCVTIMEO, @hTimeout, sizeof(ttimeval));

ты же ничего не recv'ишь
 
Ответить с цитированием

  #9  
Старый 17.04.2010, 02:10
Nightmarе
Познавший АНТИЧАТ
Регистрация: 29.04.2007
Сообщений: 1,189
Провел на форуме:
5749763

Репутация: 1680


Отправить сообщение для Nightmarе с помощью ICQ
По умолчанию

Цитата:
Сообщение от ntldr  
А зачем тебе
setsockopt(hSocket, SOL_SOCKET, SO_RCVTIMEO, @hTimeout, sizeof(ttimeval));

ты же ничего не recv'ишь
убрав его, тоже ничего не меняется. + модифицировал код, понапихав всевозможных проверок, но толку тоже нету.
 
Ответить с цитированием

  #10  
Старый 17.04.2010, 11:09
ntldr
Постоянный
Регистрация: 04.12.2007
Сообщений: 424
Провел на форуме:
2364957

Репутация: 479
По умолчанию

Цитата:
Сообщение от Nightmarе  
убрав его, тоже ничего не меняется. + модифицировал код, понапихав всевозможных проверок, но толку тоже нету.
Если проблема что виснет комп, попробуй запустить ее отдельным потоком, а в основном добавь цикл из Application.ProcessMesssages (не помню как пишется, ну ты понял)
 
Ответить с цитированием
Ответ



Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
[Wi-Fi, BT] Задай вопрос - получи ответ! Alexsize Беспроводные технологии/Wi-Fi/Wardriving 2568 25.04.2026 12:58
[jQuery] - Задай вопрос, получи ответ Isis PHP 62 25.12.2009 03:25



Здесь присутствуют: 1 (пользователей: 0 , гостей: 1)
 


Быстрый переход




ANTICHAT.XYZ