【发布时间】:2021-01-02 06:48:31
【问题描述】:
我正在使用 spotify api,出于某种原因,他们的会话类块将自己的数据存储在 $_SESSION 中。作为一种解决方法,我编写了一个类“SystemHelper”:
命名空间应用程序;
class SystemHelper
{
/**
* if session_id is empty string, then session_id has not been initialized
* then set session_id named 'session1'
* start session needs 2 parameters, name and value
* always close session after writing
*
* @param string $name any given name
* @param [type] $value any given value
*
*/
public static function customSessionStore($name, $value)
{
if (session_id() == '') {
session_id('session1');
}
session_start();
$_SESSION[$name] = $value;
session_write_close();
}
现在可以将数据存储在 $_SESSION 中,但问题是,只要我使用自己的帐户(自己的登录表单,而不是 spotfiy 帐户)登录,其他人都会登录,无论使用哪个浏览器, ip等...
我不知道如何解决。 session_id 不应该生成随机ID吗?有人可以帮忙吗?
省略
if (session_id() == '') {
session_id('session1');
}
没有解决它,因为我还需要读取和删除会话中存储的数据。所以,另外我有这个解决方法:
public static function customSessionRead($name)
{
if (session_id() == '') {
session_id('session1');
}
session_start();
session_write_close();
return $_SESSION[$name];
}
还有……
public static function customSessionDestroy()
{
session_start();
session_destroy();
}
【问题讨论】:
标签: php session cross-browser spotify fat-free-framework