2009-09-10 92 views
0

任何帮助表示赞赏。使用ColdFusion,Tomcat和Firefox的会话变量的问题

当使用cfimage生成验证码时,我们将其值保存在会话变量中。

用户提交表单后,我们将用户输入的验证码的值与会话变量值进行比较。

像这样:

第一步 - 用户用captcha到达表单。

第二步 - 使用由cfimage创建的验证码值创建变量SESSION.CAPTCHA_VALUE。

第三步 - 用户填写表单并提交。

第四步 - 我们将SESSION.CAPTCHA_VALUE的值与用户输入的值进行比较。

我们之所以实施这个,是因为垃圾邮件机器人的。

问题出在SESSION.CAPTCHA_VALUE的值只在Firefox中。提交后,SESSION.CAPTCHA_VALUE的值始终与创建的不同,但保留了JSESSION.ID。

我们在Tomcat和Firefox 3.5.3中使用ColdFusion。

在此先感谢。

回答

1

你负载均衡吗?会话范围存储在RAM中,如果您在不同服务器上来回跳动,可能会导致问题。您可以尝试将值存储在客户端变量而不是会话中。

另外CFImage ...以及其他标签,生成像cfform文件(当闪光灯),cfdocument等....将通过编写文件,然后生成一个链接到它输出HTML 。确保该文件的链接始终是唯一的。可能是因为图像交叉污染。同样,如果你的负载平衡和你的服务器没有共享一个通用的文件系统(比如在NAS上),那么人们可能会从其他服务器上获取图像。

+0

不是。问题出在我们当地的开发环境上...... – foxtrot 2009-09-14 13:43:22