gpt4 book ai didi

php - 为什么 PHP session 在某些浏览器中不起作用?

转载 作者:行者123 更新时间:2023-12-04 09:16:03 28 4
gpt4 key购买 nike

我在使用 PHP session 时遇到了一些问题,但仅限于我的浏览器(Google Chrome v.84.0.4147.105 64 位)。似乎没有保存 session 。例如,对于此代码:

 session_start();
$_SESSION['hello'] = 'world';
echo 'hello ' . $_SESSION['hello'];

echo '<br>ID: ' . session_id();
在任何浏览器中获取:
你好,世界
编号:ksr9shdsjnpenhv23ldtfqvwc2
如果我重新加载页面,也是如此。但是对于我的浏览器,每次重新加载页面时我都会获得不同的 session ID,并且 $_SESSION['world'] 变量不可用于其他文件。
任何的想法? session_start() 之前什么都没有,实际上那些行就是整个文件

最佳答案

看看你的 PHP 有设置:

php_value session.use_cookies = 1
和两者
php_value session.use_only_cookies 1
php_value session.use_trans_sid 0
是默认值,因此您不会在那里找到它们。
然后 php 将尝试将 session ID 存储在 cookie 中,但不会成功,因此您每次最终都会获得一个新的 session ID。如果您不想依赖 cookie 设置并且不介意更长的 URL,您可以这样做:
ini_set('session.use_only_cookies', '0');
ini_set('session.use_trans_sid','1');
session_start();
现在 php 将尝试将 session 存储为 cookie,如果它作为名为 PHPSESSID 的 get 变量失败,则您的 URL 将变得更长一些。您可以通过设置 session.name 来更改此变量的名称。 .
在这一刻,您可以使用隐藏的 POST 变量来保护自己,该变量存储例如此变量的 md5,并且您可以控制每次 session 是否已被操纵......
一个好习惯也是将sessionid和IP保存在数据库的一个session表中,然后每次检查GET POST和Database和IP是否唱同一首歌。
欢迎来到 cookies 厨房;-)

关于php - 为什么 PHP session 在某些浏览器中不起作用?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/63208453/

28 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com