怎样在CGI中取出COOKIE?(200分)

  • 主题发起人 主题发起人 pyliu
  • 开始时间 开始时间
P

pyliu

Unregistered / Unconfirmed
GUEST, unregistred user!
我象下面这样存COOKIE再取出COOKIE为什么取不出来呢?
请高手帮忙?

procedure TWebModule1.WebModule1WebActionItem1Action(Sender: TObject;
Request: TWebRequest; Response: TWebResponse; var Handled: Boolean);
var
MyCookies: TStringList;
begin
//Response.Content := Request.PathInfo;
//Exit;
if Request.PathInfo = '/aaa' then begin
MyCookies := TStringList.Create;
with MyCookies do begin
Add('Name=Pyliu');
Add('Address=Shang');
Add('Product=CGIIII');
end;
with Response do begin
SetCookieField(MyCookies, 'localhost', '/', (Now + 1), False);
Content := 'Cookie Added!';
end;
end
else begin
Response.Content := Request.CookieFields.Values['Name']+ ' okp';
end;

end;
 
我也想知道这个问题的答案,谁来指点一下,也告诉我一声!
谢谢!
 
1、你设置域为 'localhost' 不对。
domain应该有2个部分以上,比如
你的站如果以 http://w.x.y.z/... 访问,
域可以设置为 y.z 或者 x.y.z 或者 w.x.y.z 或者为空,
其他都不行。

而光一个 z 或者光一个 com之类是不行的
光一个localhost也是不行的。
你如果用http://localhost/...访问,你应该
设置域为空的( '' )。
而且你自己才用localhost访问,如果你设置了
domain,你要考虑别人是用什么域名访问?
比如有些人用 http://www.delphibbs.com/delphibbs
有些人用http://www.gislab.ecnu.edu.cn/delphibbs/
都是指向一个地址,你是否需要考虑?而不能在dll里面
固定域名了。


2、Request.PathInfo = '/aaa'的意思是你是这样访问的:
(假设你的dll文件是your_isapi.dll)
http://....../....../your_isapi.DLL/aaa

一般不用这个来确定是否设置cookie,而应该找
Request.CookieFields 是否已经包含你要的信息

另外如果你用了pathinfo,记得你的 WebActionItem
应该至少有一个是default为true的

 
Jams在说what?I don't know.I feel very sorry.
 
接受答案了.
 
后退
顶部