쿠키에서 PHPSESSID를 읽어오는 방식.
TWebBrowser를 상속하는 형태로 구현.
interface
// 이미 되어 있는 component 명을 바꾸는 건 굉장히 귀찮은 작업이므로 아래처럼...
type
TWebBrowser=class(SHDocVw.TWebBrowser)
public
function GetSessionID: String;
private
function GetCookieValue(Name: String): String;
end;
implementation
{ TWebBrowser }
// 쿠키에서 값을 가져옴
function TWebBrowser.GetCookieValue(Name: String): String;
var
Doc: IHTMLDocument2;
sList, tList: TStringList;
i: Integer;
begin
Result:='';
Doc:=Self.Document as IHTMLDocument2;
if not Assigned(Doc) then Exit;
sList:=TStringList.Create;
tList:=TStringList.Create;
try
ExtractStrings([';'], [], PChar(Doc.cookie), sList);
for i:=0 to sList.Count-1 do begin
tList.Clear;
ExtractStrings(['='], [], PChar(Trim(sList[i])), tList);
if AnsiCompareText(tList[0], Name)=0 then begin
Result:=tList[1];
Exit;
end;
end;
finally
FreeAndNil(sList);
FreeAndNil(tList);
end;
end;
// 세션아이디를 가져옴
function TWebBrowser.GetSessionID: String;
begin
Result:=Self.GetCookieValue('PHPSESSID');
end;
// 이미 되어 있는 component 명을 바꾸는 건 굉장히 귀찮은 작업이므로 아래처럼...
type
TWebBrowser=class(SHDocVw.TWebBrowser)
public
function GetSessionID: String;
private
function GetCookieValue(Name: String): String;
end;
implementation
{ TWebBrowser }
// 쿠키에서 값을 가져옴
function TWebBrowser.GetCookieValue(Name: String): String;
var
Doc: IHTMLDocument2;
sList, tList: TStringList;
i: Integer;
begin
Result:='';
Doc:=Self.Document as IHTMLDocument2;
if not Assigned(Doc) then Exit;
sList:=TStringList.Create;
tList:=TStringList.Create;
try
ExtractStrings([';'], [], PChar(Doc.cookie), sList);
for i:=0 to sList.Count-1 do begin
tList.Clear;
ExtractStrings(['='], [], PChar(Trim(sList[i])), tList);
if AnsiCompareText(tList[0], Name)=0 then begin
Result:=tList[1];
Exit;
end;
end;
finally
FreeAndNil(sList);
FreeAndNil(tList);
end;
end;
// 세션아이디를 가져옴
function TWebBrowser.GetSessionID: String;
begin
Result:=Self.GetCookieValue('PHPSESSID');
end;
'Delphi' 카테고리의 다른 글
[Delphi] MD5 (TIdMessageDigest5) (0) | 2010.06.17 |
---|---|
[Delphi] IdHTTP로 세션아이디를 포함하여 요청하기 (SessionID) (0) | 2010.06.17 |
[Delphi] 다른 프로그램의 메뉴 실행시키기 (0) | 2010.06.14 |
[Delphi] 웹페이지 로딩시 '딸칵'소리 없애기 (탐색 시작, Windows Navigation Start.wav) (0) | 2010.06.14 |
[Delphi] 실행되고 있는 모듈의 이름 알아내기 (0) | 2010.06.09 |