Php 当用户再次访问同一页面时是否保持登录?

Php 当用户再次访问同一页面时是否保持登录?,php,cookies,session,Php,Cookies,Session,当前im正在使用会话登录用户。但是当我关闭浏览器并再次打开它时,我必须再次登录。你如何让用户登录,比如说2周 那是通过饼干吗?是的。您可以使用cookies实现“自动登录”(或“记住我”)功能 这左右,应该为您指出一个正确的方向。是的,您应该使用cookies。以下是手动输入: 或者,您可以查看此函数:。它允许您修改会话cookie设置,如其生存期…请阅读以下内容: 您需要的设置是session.cookie\u life。关闭浏览器时,将删除会话cookie(例如没有生存期的cookie)。如

当前im正在使用会话登录用户。但是当我关闭浏览器并再次打开它时,我必须再次登录。你如何让用户登录,比如说2周


那是通过饼干吗?

是的。您可以使用cookies实现“自动登录”(或“记住我”)功能


这左右,应该为您指出一个正确的方向。

是的,您应该使用cookies。以下是手动输入:

或者,您可以查看此函数:。它允许您修改会话cookie设置,如其生存期…

请阅读以下内容:

您需要的设置是
session.cookie\u life
。关闭浏览器时,将删除会话cookie(例如没有生存期的cookie)。如果希望会话保持更长时间的活动状态,请在
php.ini
httpd.conf
.htaccess
中设置该设置。甚至可能使用
ini\u集

编辑:实际上您可以使用此功能:

session_set_cookie_params (86400*30);
session_start()
86400*30是30天

请参见此处:

您想要“在这台计算机上记住我”选项吗?以下是一种语言不可知的方法:

  • 创建至少包含
    cookie\u id
    user\u id
    列的DB表。如有必要,还可以添加
    cookie\u ttl
    ip\u锁
    。我想这些列名说明了一切
  • 在首次登录时(如果需要,只选中“记住我”选项),生成一个长的、唯一的、难以猜测的密钥,该密钥表示
    cookie\u id
    ,并将其与
    用户id
    一起存储在数据库中。还将其存储为具有指定cookie名称之前的cookie的cookie值。例如,
    记住
    。给饼干一个较长的生命周期,例如一年
  • 在每个请求中,检查用户是否已登录。如果没有,则检查与cookie名称关联的cookie值
    cookie\u id
    记住
    。如果它在那里并且根据DB是有效的,那么自动登录与
    用户id
    相关联的用户,并再次推迟cookie时间
  • 至于安全风险,如果密钥足够长且混合足够多(至少30个混合字符),则暴力强制登录的可能性可以忽略不计。此外,您可能已经了解了可选列
    ip\u lock
    的用途。它应该表示用户的IP地址。您最终可以添加一个额外的复选框“锁定登录到此IP(仅当您有静态IP时)”以便服务器可以使用用户的IP地址作为额外的验证

    如果有人劫持了一个没有IP锁的用户的cookie值呢?嗯,没什么可以反对的。接受它。“记住我”这句话很有趣,因为在每个论坛下,帐户劫持不会造成多大伤害,但我肯定不会将其用于管理面板和控制服务器端内容的网页


    这毕竟是相当直截了当的。祝你好运。

    回答这个问题的人也能思考一下这个话题的安全问题吗?例如,如何防止通过复制cookie自动登录。谢谢。那么至少要提到使用会话的固有安全风险;)您应该尽可能重用现有的身份验证框架,因为它确实很复杂。例如,看一看,我认为在数据库中存储users agent是个好主意,因为在IE和firefox中都要记住同一个用户是不合逻辑的。事实上,可以从请求中挖掘的所有内容都应该存储起来,以防止cookie被窃取,不是吗?。这是可行的,但如果用户升级UA就会失败。用户再次输入其详细信息比入侵者获得访问权要好得多。