写会话从一页或所有页开始?
Posted
技术标签:
【中文标题】写会话从一页或所有页开始?【英文标题】:Write session start on 1 page or all pages? 【发布时间】:2011-10-31 01:34:08 【问题描述】:所有教程都说要开始会话。他们没有说是否应该在网站上的所有页面中,或者一些,或者只有 1 个。
如果它只有 1 页,它必须是主页吗?还是我正在制作的带有将会话 ID 放入数据库的表单的页面?如果访问者从未访问过带有会话 ID 的页面,但他们在网站上,他们是否还有会话 ID?
【问题讨论】:
【参考方案1】:你需要声明 session_start();如果您想从 $_SESSION 获取数据或将数据存储到这些特定页面中的 $_SESSION 中,则在每个页面中。如果您不需要与 $_SESSION 交互,那么您不必声明 session_start().@hmwhat
【讨论】:
【参考方案2】:为了完整起见,您可以选择在所有页面上写session_start();
,只写一个或不写。让我解释一下。
您需要在需要访问 $_SESSION
变量的每个脚本中启动会话,但您可以创建一个文件 headers.php 并将所有重复代码包括 session_start();
如果您的应用程序中的所有内容都需要访问$_SESSION
,您可以忘记使用session_start();
,只需在您的php.ini 文件中设置session.auto_start = 1
。您将能够访问$_SESSION
,而无需之前写session_start();
。
More here
【讨论】:
【参考方案3】:在访问(或创建)任何会话数据之前,您需要将它放在需要访问会话数据的每个页面中。
见:http://php.net/manual/en/function.session-start.php
【讨论】:
所以我会把会话开始放在网站每个页面的顶部,然后我会把它放在将会话 ID 放入 mysql 数据库的代码中?所以会话开始应该在那些页面上写 2 次? 没有。每页只需要一次,但在访问数据之前。【参考方案4】:任何要访问会话变量的东西都需要启动会话。
所以除非你有一个不依赖于会话的 php 页面,否则每个页面都需要它。
【讨论】:
以上是关于写会话从一页或所有页开始?的主要内容,如果未能解决你的问题,请参考以下文章