PDA

Просмотр полной версии : Проверить аккаунт на валидность[Need help]


cheater_man
11.05.2010, 21:59
Привидите пожалуйста пример.
ЯП любой(Но желательно c#).
http://limoncash.com/

HakaR
11.05.2010, 22:29
Отправляеш постом на "http://limoncash.com/":
form[user]=логин
form[password]=пароль
enter=
Далее парсишь ответ, если "Ошибка ввода." то выводишь сообщение о ошибке, если нет - делаешь что тебе нужно...
:D

cheater_man
11.05.2010, 23:05
Отправляеш постом на "http://limoncash.com/":

Далее парсишь ответ, если "Ошибка ввода." то выводишь сообщение о ошибке, если нет - делаешь что тебе нужно...
:D
:D
Это то я сделал:

wb.Document.GetElementById("form[user]").InnerText = textBox1.Text;
wb.Document.GetElementById("form[password]").InnerText = textBox2.Text;
wb.Document.GetElementById("enter").Focus();
SendKeys.Send("{ENTER}");

Как узнать валидный или нет че-то не допрет?
Как парсить текст?

Ferrari california
11.05.2010, 23:08
Если урл http://limoncash.com/?mod=news&page=1 то валид
else
не валид
понял ?

cheater_man
11.05.2010, 23:15
Если урл http://limoncash.com/?mod=news&page=1 то валид
else
не валид
понял ?
И это ясно(
вот код

wb.Document.GetElementById("form[user]").InnerText = textBox1.Text;
wb.Document.GetElementById("form[password]").InnerText = textBox2.Text;
wb.Document.GetElementById("enter").Focus();
SendKeys.Send("{ENTER}");
do
{
Application.DoEvents();

} while (wb.IsBusy != false);
if (curr.Equals("http://limoncash.com/?mod=news&page=1"))
{
MessageBox.Show("Yes");
wb.Stop();
}
else
{
MessageBox.Show("No");
wb.Stop();
}

Просто кнопка даже не нажалась а No уже вылетело((
Что делаю не так?

Ferrari california
11.05.2010, 23:19
я изучаю с# так что могу ошибаться смотри

wb.Document.GetElementById("form[user]").InnerText = textBox1.Text;
wb.Document.GetElementById("form[password]").InnerText = textBox2.Text;
wb.Document.GetElementById("enter").Focus();
SendKeys.Send("{ENTER}");
//авторизуемся вроде верно
do
{
Application.DoEvents();

} while (wb.IsBusy != false);//попробуй тут тру поставить
if (curr.Equals("http://limoncash.com/?mod=news&page=1"))
{
MessageBox.Show("Yes");
wb.Stop();
}
else
{
MessageBox.Show("No");
wb.Stop();
}

вообще у тя где ошибку выдает ?

cheater_man
11.05.2010, 23:20
Проблема решена)
С# код

string curr = wb.Url.ToString();
if (curr.Equals("http://limoncash.com/"))
{
wb.Document.GetElementById("form[user]").InnerText = textBox1.Text;
wb.Document.GetElementById("form[password]").InnerText = textBox2.Text;
wb.Document.GetElementById("enter").Focus();
SendKeys.Send("{ENTER}");
do
{
Application.DoEvents();

} while (wb.IsBusy != false);
}
else if (curr.Equals("http://limoncash.com/?mod=news&page=1"))
{
MessageBox.Show("Yes");
wb.Stop();
}
else
{
MessageBox.Show("No");
wb.Stop();
}
}

Ferrari california
11.05.2010, 23:22
string curr = wb.Url.ToString();
if (curr.Equals("http://limoncash.com/"))
ахахаха точно ) где он будет искать поля для вода,красава + те самому ток допер

cheater_man
12.05.2010, 00:08
Проблема решена)
С# код

string curr = wb.Url.ToString();
if (curr.Equals("http://limoncash.com/"))
{
wb.Document.GetElementById("form[user]").InnerText = textBox1.Text;
wb.Document.GetElementById("form[password]").InnerText = textBox2.Text;
wb.Document.GetElementById("enter").Focus();
SendKeys.Send("{ENTER}");
do
{
Application.DoEvents();

} while (wb.IsBusy != false);
}
else if (curr.Equals("http://limoncash.com/?mod=news&page=1"))
{
MessageBox.Show("Yes");
wb.Stop();
}
else
{
MessageBox.Show("No");
wb.Stop();
}
}

как можно заменить эти две строчки?

wb.Document.GetElementById("enter").Focus();
SendKeys.Send("{ENTER}");

cheater_man
12.05.2010, 00:28
:D

wb.Document.GetElementById("enter").InvokeMember("click");

RedFern.89
12.05.2010, 09:17
на Delphi это будет вот так:


function CheckAcc(login, pass: string): boolean;
var
HTTP : TidHTTP;
Post : TSTringList;
Str : string;
begin
HTTP := TidHTTP.Create(nil);
Post := TStringList.Create;

with Post do
begin
Add('form[user]=' + login);
Add('form[password]' + pass);
Add('enter=');
end;

Str := HTTP.Post('http://limoncash.com/', Post);

// Проверка (если рабочий ак, то True, если же нет, то False)
If Pos('Ошибка ввода', str) <> 0 Then Result := False else Result := True;

Post.Free;
HTTP.Free
end;


вроде ничего не забыл)))

cheater_man
13.05.2010, 14:04
на Delphi это будет вот так:


function CheckAcc(login, pass: string): boolean;
var
HTTP : TidHTTP;
Post : TSTringList;
Str : string;
begin
HTTP := TidHTTP.Create(nil);
Post := TStringList.Create;

with Post do
begin
Add('form[user]=' + login);
Add('form[password]' + pass);
Add('enter=');
end;

Str := HTTP.Post('http://limoncash.com/', Post);

// Проверка (если рабочий ак, то True, если же нет, то False)
If Pos('Ошибка ввода', str) <> 0 Then Result := False else Result := True;

Post.Free;
HTTP.Free
end;


вроде ничего не забыл)))
Чет я не совсем врубился как проверяется "Ошибка ввода"?

HakaR
13.05.2010, 14:28
Чет я не совсем врубился как проверяется "Ошибка ввода"?
В ответе проверяется(ищется).
If Pos('Ошибка ввода', str) <> 0 Then Result := False else Result := True;

cheater_man
14.05.2010, 01:38
Ясно.
Тут как я понял вся страница храница в переменной str?
А реализация на С# существует?

RedFern.89
14.05.2010, 03:29
я не знаю его синтаксиса)) ктонить думаю тебе переведет ))