带有会话的PHP登录系统

tca*_*cak 4 php session login

我在PHP中使用会话登录系统.在所有登录示例中,人们直接使用" session_start()"函数.但我对此感到困惑.

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

在localhost上,我有那些文件;

HTTP://localhost/app1/page1.php

HTTP://localhost/app1/page2.php

HTTP://localhost/app2/page2.php

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

app1/page1.php,我开始会话并设置一个变量.

 session_start();
 session_regenerate_id( true );
 $_SESSION[ 'name' ]    = 'this is my name';
Run Code Online (Sandbox Code Playgroud)

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

app1/page2.php和中app2/page2.php,我启动会话并获取该变量的值.

 session_start();
 echo 'name: ' . $_SESSION[ 'name' ];
Run Code Online (Sandbox Code Playgroud)

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

我打开HTTP://localhost/app1/page1.php然后HTTP://localhost/app1/page2.php和它的伟大工程.但在那之后,我打开http://localhost/app2/page2.php,并在屏幕上显示"这是我的名字",这是错误的.因为它是另一个应用程序,我不希望app2到达app1的会话.

我怎么解决这个问题?我不想为每个应用程序使用不同的变量名称.我认为必须有另一个好的解决方案.我也许可以在再生APP2/ID page1.php中,但如果一个人试图打开APP 2 /使page2.php,打开后APP1,他们可能会进入APP 2,这不适合我变好.

谢谢.

Bog*_*dan 8

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

app1/page1.php&page2.php

session_name('app1_session');
session_start();
Run Code Online (Sandbox Code Playgroud)

app2/page1.php&page2.php

session_name('app2_session');
session_start();
Run Code Online (Sandbox Code Playgroud)


Rus*_*ias 5

您将需要使用session_name,它必须 session_start 之前运行.

session_name()返回当前会话的名称.

例:

session_name("name");
session_start();
Run Code Online (Sandbox Code Playgroud)