我是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
?
谢谢。
答案 0 :(得分:2)
会话名称是存储session_id的cookie / url param的名称。默认情况下,在创建会话时,通常会创建一个名为PHPSESSID的特殊cookie,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
我将很乐意进一步解释。