php中的会话深度很小
我对PHP会话有一些问题。希望尽快得到答案php中的会话深度很小,php,database,session,cookies,Php,Database,Session,Cookies,我对PHP会话有一些问题。希望尽快得到答案 如果我只使用会话而不创建任何cookie。会话是否在客户端浏览器上自动创建cookie 如何知道会话id?它是由开发人员创建的,还是创建的每个会话都由id引用 如果我要销毁一个会话,那么在销毁之前,我是否还必须删除我从未在我的站点中为其编写代码的cookie?(因为我只需要像选举一样在5月b日一年创建一次时间登录。所以我不需要在客户端存储用户信息。) 如果我的代码是$\u会话['user']='xxx',当'yyy'登录时,会话数据存储在服务器中时,$
$\u会话['user']='xxx'
,当'yyy'登录时,会话数据存储在服务器中时,$\u会话['user']
是否会被'yyy'替换session\u start()
时会话cookie不存在,将为您创建一个会话cookie(假设满足各种条件,例如在调用session\u start()之前没有执行任何输出)session\u id()
session\u start()
时会话cookie不存在,将为您创建一个会话cookie(假设满足各种条件,例如在调用session\u start()之前没有执行任何输出)session\u id()
session\u id()
函数了解会话id
3) 。是的,如果你想的话可以。我如何建议销毁会话
if(session_id() == '' || !isset($_SESSION)) {
session_start();
}
session_unset();
session_destroy();
session_write_close();
setcookie(session_name(),'',0,'/');
session_regenerate_id(true);
4) 。否每个不同的用户在会话文件夹中都有不同的会话存储
5) 。取决于。。。服务器空间和会话大小。[仅供参考,会话作为文件存储在您的服务器中,并从服务器本身引用],因此回答这样的问题是有争议的
6) 。会话可能被劫持,因此,如果您的主机在1个文件夹中为所有站点会话提供服务,您最好更改主机,我建议的启动会话的方法如下:-
if (session_start()) {
$exp = "7200"; // set your expiry time, here 60*60*2 = 7200 i.e, 2 hour
setcookie('PHPSESSID', session_id(), time()+$exp, '/', null, null, true);
}
在上面的代码中,您实际上正在用Cookies覆盖您的会话名称和值,Cookies是httpOnly,并确保系统中的“TraceEnable”处于禁用状态。这使得你的饼干几乎不可能被偷走。答案:-
1) 。是的,名称为“PHPSESSID”或“php.ini中session的默认名称集”
2) 。您可以通过session\u id()
函数了解会话id
3) 。是的,如果你想的话可以。我如何建议销毁会话
if(session_id() == '' || !isset($_SESSION)) {
session_start();
}
session_unset();
session_destroy();
session_write_close();
setcookie(session_name(),'',0,'/');
session_regenerate_id(true);
4) 。否每个不同的用户在会话文件夹中都有不同的会话存储
5) 。取决于。。。服务器空间和会话大小。[仅供参考,会话作为文件存储在您的服务器中,并从服务器本身引用],因此回答这样的问题是有争议的
6) 。会话可能被劫持,因此,如果您的主机在1个文件夹中为所有站点会话提供服务,您最好更改主机,我建议的启动会话的方法如下:-
if (session_start()) {
$exp = "7200"; // set your expiry time, here 60*60*2 = 7200 i.e, 2 hour
setcookie('PHPSESSID', session_id(), time()+$exp, '/', null, null, true);
}
在上面的代码中,您实际上正在用Cookies覆盖您的会话名称和值,Cookies是httpOnly,并确保系统中的“TraceEnable”处于禁用状态。这会让你的饼干偷钱