다음에 로그인 하는 방식을 소켓으로 구현하려는데요..
넘어오는 string을 띄워보면 회원 아이디/비번을 제대로 입력했음에도 불구하고 회원정보가 올바르지 않다고 나옵니다.
혹시나해서 테스트 페이지 만들어서 로그인해보니까 또 잘됩니다..
그런데 유독 다음만 안되네요..ㅠ.ㅠ
이 소스에서 추가해야될 내용들이 혹시 있을까요? 아니면 문제가 있을까여...
<!--CodeS-->
procedure TForm1.Button2Click(Sender: TObject);
var
idhttp : TIdHttp;
aData : TStringList;
ms : TStringStream;
mime : TIdMultiPartFormDataStream;
i : Integer;
aURL,URL : String;
ResultStr : String;
begin
ResultStr := '';
idhttp := TIdHttp.Create(nil);
aData := TStringList.Create;
ms := TStringstream.Create('');
mime := TIdMultiPartFormDataStream.Create;
URL := 'http://www.daum.net';
aURL := 'http://login.daum.net/Mail-bin/login.cgi'; 로그인 정보를 보내는 페이지
try
// idhttp init
idHttp.Host := URL;
idHttp.Request.Referer := URL;
idHttp.Request.UserAgent := 'Mozilla/4.0 (compatible; MSIE 6.0; Windows NT 5.0; .NET CLR 2.0.50727; .NET CLR 1.1.4322)';
idHttp.Request.ContentType := 'application/x-www-form-urlencoded';
idHttp.HandleRedirects := true;
// data
aData.Add('id='+login_id.Text);
aData.Add('pw='+login_pw.Text);
aData.Add('webmsg=-1');
aData.Add('submit.x=10');
aData.Add('submit.y=3');
// data input
idHttp.Request.ContentType := mime.RequestContentType;
for i := 0 to aData.Count - 1 do
mime.AddFormField(aData.Names[i], aData.Values[aData.Names[i]]);
mime.Position := 0;
// post data
try
idHttp.Post(aURL, mime, ms);
finally
end;
showmessage(ms.DataString); // 넘어오는 값으로 로그인 성공유무 확인
finally
idhttp.Free;
aData.Free;
ms.Free;
mime.Free;
end;
end;
<!--CodeE-->
cgi로 아디나 암호를 넘길때 걍 문자열로 넘기지는 않을거 같은데요...인코딩해서 넘길거 같은데....
테스트 페이지라고 말씀하시는건 본인 로컬에 웹서버 뛰워서 로긴하시는 페이지를 말씀하시는건가요?