一尘不染

没有cookie的PHP会话

php

有没有一种方法可以在PHP中启动持久性会话而无需放置会话cookie?是否还有其他方法可以跨页面维护会话,例如基于IP地址的解决方案?

我问的原因是,尽管大多数用户都启用了cookie,但我想看看是否有一种方法可以使禁用它的用户使用登录系统(即使我个人认为禁用cookie只是不必要的偏执狂)。


阅读 218

收藏
2020-05-26

共1个答案

一尘不染

我认为要求您的用户启用Cookie并不过分。当人们完全关闭它们时,我觉得很愚蠢。

否则,您可以将其设置session.use_only_cookies为“
0”,以强制将会话ID附加到PHP中的URL。但是,这种方法有一些缺点。主要是将状态保留在URL中,而不是Cookie标头。如果用户要复制并粘贴他们所在页面的URL,而其他人要单击它,则他们都将使用同一会话。

<?php
     ini_set("session.use_cookies", 0);
     ini_set("session.use_only_cookies", 0);
     ini_set("session.use_trans_sid", 1);
     ini_set("session.cache_limiter", "");
     session_start();
2020-05-26