[英]Use of session_id() and session_name
我是PHP新手。 我在代码中管理会话的方法是,只需使用session_start()
启动会话。 在网上阅读时,我遇到了session_id
和session_name
。
session_id
和session_name
的用途是什么。 基于应用程序,我们在哪里可以使用Php中的session_name
和session_id
。
我如何编写代码是:
<?php
session_start();
if(isset($_SESSION['name']))
{
//Render the page.
}
else
{
session_destroy();
//redirect to some simple page.
}
?>
根据我的代码,在哪里可以使用session_id
或session_name
。 这是编写代码的好方法,还是我应该选择使用session_id
和session_name
?
谢谢。
会话名称是存储session_id的cookie / url参数的名称。 默认情况下,当您创建会话时,通常会创建一个特殊的cookie,名称为PHPSESSID,session_id,该cookie的值稍后可以识别您。 您可以使用session_name更改默认会话名称,但是必须在session_start之前调用session_name。 希望能有所帮助。
已编辑。
会话将向您的浏览器发送一个cookie,记住PHP已配置为使用COOKIES作为会话管理。
一旦创建了cookie并将其发送到浏览器,您就可以像访问其他cookie一样对其进行访问,如果您使用print_R($ _ COOKIE),则将看到php会话cookie及其值。
最低限度地,您需要的是对session_start()的调用,这将为您启动一个会话,必须在将任何输出数据发送到浏览器之前调用该会话。
例如,这将导致错误。
echo "Hello"; session_start();
这是因为必须在将任何输出发送到浏览器之前调用session_start()。 因此,为什么需要session_name(),仅仅是因为它允许您重命名cookie,默认情况下,会话名称为PHPSESSID。 重命名会话可以减少黑客尝试查找名称为PHPSESSID的cookie的机会。 每个PHP开发人员都知道默认会话cookie名称是什么,如果我是黑客,您认为我会首先寻找哪个cookie? 但这不是预防机制。
session_id()只是用来获取会话的ID,它并不总是使用,它是为了方便起见,但如果您尝试实现自己的会话管理,也可以使用它,因为PHP允许您这样做。
简而言之,启动会话不需要session_name或session_id。 如果您还有其他疑问,可以在我的Google页面上关注我,
https://plus.google.com/113820735365251703271
我很乐意进一步解释。
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.