[困惑]eval 在模块中出现问题/?

| 9 Comments | 0 TrackBacks | WebBlog Articles

搞文本Session。。。
已经以为成功。。
想到Session可能会自己损坏。所以。。自己做了测试,结果,发现人为改坏Session文本后,程序居然读取失败后 500 err?

明明是在模块中  CheckSession时候用的eval呀。应该不会500err才是。但是err.log还是指向的那句

eval ( "require \"$self->{_API}->{_SESSION_FILE}\";" ) || $self->NewSession();


附上完整代码。 问题就出现在DiGiSession.pm模块中。。。

http://easun.org/upload/early/cgi_1105459562.rar

测试代码说明 :
1。Session目录需要可读/写 (777目录+666文件)。
2。我用的相对路径,如果你的主机不支持相对路径,请把
my $session = DiGiSession->new($c_ss_id,'Session','3m');

改成
my $session = DiGiSession->new($c_ss_id,'你的路径/Session','3m');


声明:DiGiSession.pm模块版权为Firzen<firzen@perlchina.org>所有,我只是改了一点东西而已。呵呵:)

引用通告|TrackBacks (0)

本日志的TrackBack URL: http://easun.org/cgi-bin/mtos/tb_mt_41.pl/19.

本文相关评论|Comments (9)

eval { "require \"$self->{_API}->{_SESSION_FILE}\";" } || $self->NewSession();

找到原因。不是eval问题。而是。。。$self->NewSession(); 出了问题。

不知道....
我在公司測試過....
好像只是 eval 的問題...
把  (..) 改成 {..} 就行.......

和哪个没有关系。
原因是 NewSession 这个函数根本就没有。应该是 SessionNew()
严重ft.

改為
eval ( "require \"$self->{_API}->{_SESSION_FILE}\";" ) || 1;# || $self->NewSession();

String found where operator expected at Session/ss_fefb2fc46ee40df34a4faad876326
3f7 line 1, near "fefb2fc46ee40df34a4faad8763263f7",""
Bareword found where operator expected at Session/ss_fefb2fc46ee40df34a4faad8763
263f7 line 1, near "","_ATIME"
       (Missing operator before _ATIME?)
String found where operator expected at Session/ss_fefb2fc46ee40df34a4faad876326
3f7 line 1, near "_ATIME" => ""
Number found where operator expected at Session/ss_fefb2fc46ee40df34a4faad876326
3f7 line 1, near "" => "1105714371"
       (Missing operator before 1105714371?)
String found where operator expected at Session/ss_fefb2fc46ee40df34a4faad876326
3f7 line 1, at end of line
       (Missing semicolon on previous line?)
Set-Cookie: Session_ID=fefb2fc46ee40df34a4faad8763263f7; path=/; expires=Sat, 14
-Jan-2006 14:53:17 GMT
Date: Fri, 14 Jan 2005 14:53:17 GMT
Content-Type: text/html; charset=gb2312

fefb2fc46ee40df34a4faad8763263f7
那個就是我的測試結果.....
的確會出錯....
不過再執行一次就沒問題,應該是在500 時有新session檔產生...

===
改為
eval { "require \"$self->{_API}->{_SESSION_FILE}\";" } || 1;
後的結果

Set-Cookie: Session_ID=fefb2fc46ee40df34a4faad8763263f7; path=/; expires=Sat, 14
-Jan-2006 14:55:05 GMT
Date: Fri, 14 Jan 2005 14:55:05 GMT
Content-Type: text/html; charset=gb2312

fefb2fc46ee40df34a4faad8763263f7

完全沒有問題

恩,就是后面的函数写错了而已。。。我一直都没有发现。
真马虎。。晕


之前有用过PID
不过在很长的一段时间内都没有想出自动作废进程号的处理方式
后来经过一段时间才想到

木头是打算用它取代部分cookies?

下面引用由曾子程在 2005/1/15 00:09am 发表的内容:

之前有用过PID
不过在很长的一段时间内都没有想出自动作废进程号的处理方式
后来经过一段时间才想到
...

http://www.easunstudio.com/cgi-bin/perl/topic.cgi?forum=3&topic=16&show=0   :em05:
下面引用由路杨在 2005/1/15 04:45am 发表的内容:
http://www.easunstudio.com/cgi-bin/perl/topic.cgi?forum=3&topic=16&show=0

看到呢
不过
跟我后来的应用方法不大一样

我所设计的PID是根据时间来判断是否作废的
如果PID执行时间-程序记录的用户登录时间>系统设定存活期,
那么就出错误信息,提示用户重新登陆………………

发表该文评论|Leave a comment

最近发表|Recent Entries

[八卦]话说修路这件事

建国路貌似又在修。根本没有办法步行。这个让我想起来一个笑话:话说某A国人来北京,在东城区丢了一枚戒指,于是乎找警察,警察告诉他尽可能的帮他找。过了几天,此人发现整个东城的马路都挖开了,于是感叹曰:北京的警察真好。看来这个笑话的地点可以换在朝阳了?是不是某人的戒指又丢了?PS: 城市规划城市规划,年年挖年年修。。。生命不休,挖路不止…

[SiteLog]Blog升级到了 Movable Type Pro 4.25

Thisi is a SiteLog of Easun's WebBlog.今天终于升级到了 Movable Type Pro 4.25 ,貌似一切顺利,也没有发现什么特别大的改动?只是 Community Pack 变成了 1.62, Professional Pack 升级成了1.3 。其他的一切顺利,模版也没有修改,我甚至连重建前台HTML的事情都没有做。。。就这样吧,继续用这个风格,等有时间了再慢慢研究吧。如果非要说有什么修改的话,就是评论的登陆方式又丰富了很多,包括…

IE脚本错误,可以尝试以下办法

IE 脚本错误是个很麻烦的问题,一般定位都是 JS 引擎 和 VB 引擎出错。但是有时间反复注册 jscript.dll 和 vbscript.dll 也不能解决问题。具体表现 部分 js 解析正常,而部分就不行,尤其是基于 Web2.0的网站。不说别的,就连 ie7/ie8 本身第一次运行向导的"保存设置"也出错。其实研究下,貌似都出现在 XML 解释上? 重新注册…