基于这个问题,我之前曾问过如何在Perl中设置cookie,我成功地得到了答案和方法,但现在我面临着一个新的有趣挑战.
在Perl CGI脚本中,它要求您在header语句上设置一个cookie,它应该是脚本中的第一个语句.为了澄清,您需要CGI->header()在脚本的顶部添加一条语句,以使CGI脚本正常工作!
我的情景:
我有一个带有用户名和密码的登录屏幕,成功登录后我需要设置一个包含当前用户名的cookie,然后将用户重定向到另一个表单,该表单在允许任何事务之前检查cookie是否已设置.
请注意,如果我在CGI->header()语句之后设置cookie ,它永远不会被设置,如果我将它设置在我的脚本的顶部,它有一个虚假值,原因很明显(用户尚未登录)
我该如何实现这一目标?并在CGI->header()声明中需要在一直是我的脚本的顶部?
迦特
你的断言是错误的:print CGI->header可以出现在你的脚本的任何地方.但是,标题必须输出一次且仅在输出任何其他输出之前输出一次.
为了您的目的,我建议使用CGI :: Application和CGI :: Session(通过CGI :: Application :: Plugin :: Session).
考虑到你目前的知识水平("刚好足够危险"),如果你继续朝这个方向前进,你最终会写一些可以被劫持的代码.
我建议阅读我关于如何使用cookie"标记"浏览器的文章.这是一个古老而又善良的人.
对于不耐烦的人来说,诀窍是仅使用cookie来区分一个浏览器与另一个浏览器,并保持一切重要作为服务器端状态.
| 归档时间: |
|
| 查看次数: |
810 次 |
| 最近记录: |