gpt4 book ai didi

带 session 的 PHP 登录系统

转载 作者:塔克拉玛干 更新时间:2023-11-03 05:58:36 24 4
gpt4 key购买 nike

我在 PHP 中使用 session 登录系统。在所有登录示例中,人们直接使用“session_start()”函数。但我对此感到困惑。

=============================================

在本地主机上,我有那个文件;

http://localhost/app1/page1.php

http://localhost/app1/page2.php

http://localhost/app2/page2.php

=============================================

app1/page1.php 中,我启动 session 并设置一个变量。

 session_start();
session_regenerate_id( true );
$_SESSION[ 'name' ] = 'this is my name';

=============================================

app1/page2.phpapp2/page2.php 中,我启动 session 并获取该变量的值。

 session_start();
echo 'name: ' . $_SESSION[ 'name' ];

=============================================

我打开http://localhost/app1/page1.php然后 http://localhost/app1/page2.php效果很好。但在那之后,我打开 http://localhost/app2/page2.php ,并且它还在屏幕上显示“这是我的名字”,这是错误的。因为它是另一个应用程序,我不希望 app2 到达 app1 的 session 。

我该如何解决这个问题?我不想为每个应用程序使用不同的变量名。我认为必须有另一个好的解决方案。我也许可以在 app2/page1.php 重新生成 ID,但是如果有人试图打开 app2/page2.php,在打开 app1 之后,他们可能会进入 app2,这对我来说不是一件好事。

谢谢。

最佳答案

你需要在session_start()之前使用session_name();示例:

app1/page1.php & page2.php

session_name('app1_session');
session_start();

app2/page1.php & page2.php

session_name('app2_session');
session_start();

关于带 session 的 PHP 登录系统,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/3101728/

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