是什么让php会话保持活力?

Sha*_*aun 34 php session

会话只在每次访问页面时保持活动状态,session_start();或者其他页面是否保持活动状态?

示例(30分钟超时):

1

用户使用session_start()访问页面;
25分钟后,他们访问另一个session_start();
页面会话保持活跃状态

2

用户使用session_start()访问页面;
25分钟后,他们访问非session_start(); 页面
会话保持活跃状态

2也是如此?

Abh*_*nav 17

每当您访问具有的页面时,浏览器中始终会设置会话cookie session_start().PHPSESSID如果网站使用PHP,则会使用cookie名称(尽管名称可以更改).此会话cookie包含会话ID,可帮助浏览器维护与服务器的会话.

您可以通过浏览任何包含您的会话的网站手动检查,然后删除您的浏览器cookie,您的会话将丢失.

在你的情况下,1和2都是正确的.

2是正确的,因为用户已经访问了一个页面,session_start()并且您的会话ID将在接下来的30分钟内设置,即使您访问没有会话的页面,它也会出现.

注意:但是如果包含您将访问的页面session_destroy(),您的会话将被销毁.


Fab*_*iez 12

调用session_start()只会让您的代码访问会话.

使会话保持活动的是您的浏览器将会话ID(存储在cookie中)发送到服务器,无论您是否使用它.

答:他们都是真的.

  • 但它是存储实际会话*数据*的服务器,它可能会丢弃它,即使浏览器保留其会话cookie. (7认同)

Pri*_*orn 5

这是文档中的相关部分

当访问者访问您的站点时,PHP将自动检查(如果session.auto_start设置为1)或您的请求(显式通过session_start())是否已随请求发送特定会话ID.如果是这种情况,则重新创建先前保存的环境.

http://www.php.net/manual/en/intro.session.php

session_start()根据通过GET或POST请求传递的会话标识符创建会话或恢复当前会话,或通过cookie传递.

http://www.php.net/manual/en/function.session-start.php

这意味着如果您不进行呼叫session_start,则会话将不会恢复,并且不会延长到期时间.