如何设计Perl cookie初始化登录屏幕?

gat*_*ath 1 cookies perl cgi

基于这个问题,我之前曾问过如何在Perl中设置cookie,我成功地得到了答案和方法,但现在我面临着一个新的有趣挑战.

在Perl CGI脚本中,它要求您在header语句上设置一个cookie,它应该是脚本中的第一个语句.为了澄清,您需要CGI->header()在脚本的顶部添加一条语句,以使CGI脚本正常工作!

我的情景:

我有一个带有用户名和密码的登录屏幕,成功登录后我需要设置一个包含当前用户名的cookie,然后将用户重定向到另一个表单,该表单在允许任何事务之前检查cookie是否已设置.

请注意,如果我在CGI->header()语句之后设置cookie ,它永远不会被设置,如果我将它设置在我的脚本的顶部,它有一个虚假值,原因很明显(用户尚未登录)

我该如何实现这一目标?并在CGI->header()声明中需要在一直是我的脚本的顶部?

迦特

Sin*_*nür 6

你的断言是错误的:print CGI->header可以出现在你的脚本的任何地方.但是,标题必须输出一次且仅在输出任何其他输出之前输出一次.

为了您的目的,我建议使用CGI :: ApplicationCGI :: Session(通过CGI :: Application :: Plugin :: Session).


Ran*_*rtz 6

考虑到你目前的知识水平("刚好足够危险"),如果你继续朝这个方向前进,你最终会写一些可以被劫持的代码.

我建议阅读我关于如何使用cookie"标记"浏览器的文章.这是一个古老而又善良的人.

对于不耐烦的人来说,诀窍是仅使用cookie来区分一个浏览器与另一个浏览器,并保持一切重要作为服务器端状态.