1

我在哪里可以在WebsiteBaker中设置默认会话过期时间?默认情况下,它会在 10 分钟内销毁。我想在开发期间设置更多的分钟/小时,然后想更改为默认值或 x MINS。

请帮我等待您的回复。

谢谢

4

3 回答 3

1

Websitebaker 至少当前的 2.8.2 版本和即将推出的 2.8.3 版本完全依赖于服务器设置的会话生命周期。

如果您想要不同的会话设置,您可以将您的设置添加到 config.php 之前:

 require_once(WB_PATH.'/framework/initialize.php');

这仅在您的服务器允许脚本覆盖时才有效。

另一种选择是使用 .htaccess 文件或更改服务器设置。

于 2011-12-22T16:26:13.103 回答
0

我假设你自己没有改变它(否则我猜你会记得你是怎么做的)并且 10 分钟看起来像一个奇怪的默认值。我敢说您将应用程序托管在共享服务器中,会话数据存储在默认共享位置,并且来自另一个客户的其他应用程序设置了较低的会话寿命。出现这个问题是因为会话数据不是站点感知的:当 PHP 垃圾收集器删除 10 分钟内未访问的会话文件时,它会删除目录中的所有文件;它无法知道它们属于哪个网站。

我无法告诉您如何在 WebsiteBaker 中修复它,但在常规 PHP 中,您需要在您的帐户中设置自定义会话目录。然后(并且只有那时)您将完全控制自己的会话数据:

session_save_path('/home/users/foo/sessions');
ini_set('session.gc_maxlifetime', 3*60*60); // 3 hours (or whatever you need)
ini_set('session.gc_probability', 1);
ini_set('session.gc_divisor', 100);
session_start();
于 2011-01-05T09:11:16.077 回答
0

我对网站面包师一无所知,所以找到会话的开始位置(在你的项目中搜索所有文件中的 session_start(); ),然后在该行之前你可以使用:

//first parameter expects the number of seconds session cookie should be kept by the 
//browser , in our case 10 seconds
session_set_cookie_params(10);

或者另一种选择,在您的网站面包师应用程序 (index.php) 的根目录添加该行,您应该准备好了。

注意:如果会话 cookie 被浏览器破坏,那么 php 将在您调用时发出另一个会话 id session_start();,所以我们并不关心最后一个会话是否仍然被认为是活动的/活动的,因为在您的 php 脚本中,您将有一个空的$_SESSION. 此外,您可以设置ini_set('session.gc-maxlifetime', 10);以便垃圾收集器删除以前的会话,以防您将会话存储在磁盘上。

于 2011-01-05T07:56:59.930 回答