DELPHI写的CGI与读COOKIES的问题(50分)

  • 主题发起人 主题发起人 jobsxy
  • 开始时间 开始时间
J

jobsxy

Unregistered / Unconfirmed
GUEST, unregistred user!
我现在遇到一个棘手的问题,我用DELPHI写了两个CGI,在其中一个CGI往客户端写COOKIES后,
另一个CGI却没法读出来,在同一个CGI里没有这问题,奇怪,求解!
 
大侠啊,这问题很急的,不肯出手相助?
 
没问题,能读出来,

应该是你的COOKIE的键值没有匹配的原因
 
jobsxy: 我提醒你一点:把两个CGI程序放在相同的目录试试,祝你好运!
  我遇到过同样的问题,我的俱乐部登录程序设置cookies,然后所有模块都检测这个
cookies,开初都成功的,后来有其它目录的cgi需要使用这个cookies,但总是无法读出,
我就试着把那个程序放在俱乐部cgi目录,就解决问题了。我没有仔细的分析浏览器与
http协议,不晓得具体原因,但是确实是这样解决了问题。我的cgi使用的是Perl。
 
我写COOKIES的代码如下:
response.cookies.Clear;
with Response.cookies.add do begin
Name := 'my_name';
Value := vnickname;
// Secure := false; { be sure to use a secure connection!!!!}
// Expires := Now + 1;
end;
with Response.cookies.add do begin
Name := 'my_pwd';
Value := vpwd;
// Secure := false; { be sure to use a secure connection!!!!}
// Expires := Now + 1;
end;

to wx_zhang: 不是键值不匹配,我在同一个EXE文件里就可以读出来,调用另一个EXE
就读不出来了,我现在不得不把所有代码并入一个文件里,代码长达数千行,给维护和
调试带来很大困难。

to 光子:我确实是放在同一个目录下的,现在我或者把代码并入一个项目文件里,或者
设置COOKIES的有效期,但总感觉不好,:(
 
这个嘛!好像我以前碰见过的,DELPHI的COOKIE有时候第一个键值是读不出来的,不如你多
设几个试试。
 


Response.SetCustomHeader('Set-Cookie'

'Name=Value; expires=Sun

22 Feb 2099

08:08:08 GMT'); (注斜体用自己的名称代替,例如设置Count=10,则Name用Count代替,Value 用10代替),这样就可以建立Cookie了.

以下为建立一个访问计数器的程序,可以参照:

const

LastIp:String='0:0:0:0'; //避免重复计数

Var

S:String;

Count:Integer;

begin

S:=Request.CookieFields.Values['count'];

if S<>'' then begin

try

Count:=StrToInt(S);

Except

Count:=0;

End;

end else Count:=0;

if LastIp<>Request.RemoteAddr then Inc(Count);

LastIp:=Request.RemoteAddr;

Response.SetCustomHeader('Set-Cookie'

'count='+IntToStr(Count)+';

expires=Sun

21 Feb 2010

08:08:08 GMT');

Response.Content:='您是第'+IntToStr(Count)+'来到本页!';

End;


(以上程序用Win95B的个人Web服务器+Netscape Navigator 4.04调试通过)
 
诸位,还是没搞定啊,唉,我对DELPHI做CGI已经失去信心了,让我太失望了........[:(]
 
能不能设cookies的有效期限为一个小时啊[:(!]
 
多人接受答案了。
 
后退
顶部