繁体   English   中英

session_id()和session_name的使用

[英]Use of session_id() and session_name

我是PHP新手。 我在代码中管理会话的方法是,只需使用session_start()启动会话。 在网上阅读时,我遇到了session_idsession_name

session_idsession_name的用途是什么。 基于应用程序,我们在哪里可以使用Php中的session_namesession_id

我如何编写代码是:

<?php
   session_start();
   if(isset($_SESSION['name']))
   {
       //Render the page.
   }
   else
   {
       session_destroy();
       //redirect to some simple page.
   }
?>

根据我的代码,在哪里可以使用session_idsession_name 这是编写代码的好方法,还是我应该选择使用session_idsession_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.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM