PHP 会话是否与特定文件关联
Are PHP Sessions Associated with Particular Files
PHP session data 是否与特定网页或 PHP 文件关联?换句话说,如果一个会话是在 foo.php 中创建的,它的会话数据是否可以从 bar.php 访问,假设两者都没有引用另一个并且都直接从网络浏览器访问。
如果它是特定于文件的,这如何与 include()
s 一起使用?例如,如果 foo.php
创建一个会话,然后包含 bar.php
,bar.php
中的代码是否可以访问会话数据?如果会话是在 bar.php
中创建的呢?然后数据会特定于 bar.php
或 foo.php
吗?
是的,会话数据可跨不同的文件和请求使用,这就是会话的全部要点:提供 HTTP 协议无法提供的状态。您可以将会话视为 Web 服务器上的一个小型存储空间,供您的代码存储有限的数据。
如果您的 foo.php
启动一个会话然后包含 bar.php
,bar.php
中的代码确实能够访问该会话。如果您的 bar.php
执行 session_start()
,那么 foo.php
可以从那时起访问会话(因此在 include()
之后)。
请记住:会话对于特定浏览器是唯一的并且是易变的。即:关闭浏览器,会话将变为不活动、不可访问和过期(通常在 30 分钟后)。
注意:- 现代浏览器能够重新连接会话。
会话数据在 php 的所有页面上都可用。通常我们在文件(配置文件)中启动会话(session_start()),该文件包含在所有文件中。
因此,如果您没有公共文件或不想全局定义,那么您需要在每个文件中启动 session_start()。
我给出答案bar.php或foo.php互相包含
- 总有第一个文件没有包含,通过浏览器调用或shell
- 之后包含所有其他文件( 订单由您决定)
- 如果你包含一个文件,它几乎就像合并一些代码块,没什么特别的。
- 在一个名为
session_start
的文件之后,会话出现在 PHP
- 所以现在或以后包含的任何文件都可以访问会话数据
- 但是下一个再次执行
session_start
的文件会抛出一个通知,因为会话已经开始了
- 还有一个文件(或者更好的文件中的代码)可以做
session_close
和一些其他的东西来打开一个新会话
PHP session data 是否与特定网页或 PHP 文件关联?换句话说,如果一个会话是在 foo.php 中创建的,它的会话数据是否可以从 bar.php 访问,假设两者都没有引用另一个并且都直接从网络浏览器访问。
如果它是特定于文件的,这如何与 include()
s 一起使用?例如,如果 foo.php
创建一个会话,然后包含 bar.php
,bar.php
中的代码是否可以访问会话数据?如果会话是在 bar.php
中创建的呢?然后数据会特定于 bar.php
或 foo.php
吗?
是的,会话数据可跨不同的文件和请求使用,这就是会话的全部要点:提供 HTTP 协议无法提供的状态。您可以将会话视为 Web 服务器上的一个小型存储空间,供您的代码存储有限的数据。
如果您的 foo.php
启动一个会话然后包含 bar.php
,bar.php
中的代码确实能够访问该会话。如果您的 bar.php
执行 session_start()
,那么 foo.php
可以从那时起访问会话(因此在 include()
之后)。
请记住:会话对于特定浏览器是唯一的并且是易变的。即:关闭浏览器,会话将变为不活动、不可访问和过期(通常在 30 分钟后)。
注意:- 现代浏览器能够重新连接会话。
会话数据在 php 的所有页面上都可用。通常我们在文件(配置文件)中启动会话(session_start()),该文件包含在所有文件中。
因此,如果您没有公共文件或不想全局定义,那么您需要在每个文件中启动 session_start()。
我给出答案bar.php或foo.php互相包含
- 总有第一个文件没有包含,通过浏览器调用或shell
- 之后包含所有其他文件( 订单由您决定)
- 如果你包含一个文件,它几乎就像合并一些代码块,没什么特别的。
- 在一个名为
session_start
的文件之后,会话出现在 PHP - 所以现在或以后包含的任何文件都可以访问会话数据
- 但是下一个再次执行
session_start
的文件会抛出一个通知,因为会话已经开始了 - 还有一个文件(或者更好的文件中的代码)可以做
session_close
和一些其他的东西来打开一个新会话