Php 是否设置服务器范围的会话变量?
我试图通过设置一个简单的会话变量“开”或“关”,来“关闭”我的网站Php 是否设置服务器范围的会话变量?,php,session-variables,Php,Session Variables,我试图通过设置一个简单的会话变量“开”或“关”,来“关闭”我的网站 在其他页面上,网站检查状态是否为关闭,并将用户重定向到“我们已关闭”页面 PHP没有“服务器范围”的概念。对于每个用户的持久性,只有$\u会话 您可以在Web服务器级别进行设置。例如,在Apache中: SetEnv EXAMPLE.COM_STATUS off 然后 <?php if ($_ENV['EXAMPLE.COM_STATUS'] == 'off') { die("Site be gone");
在其他页面上,网站检查状态是否为关闭,并将用户重定向到“我们已关闭”页面
PHP没有“服务器范围”的概念。对于每个用户的持久性,只有$\u会话
您可以在Web服务器级别进行设置。例如,在Apache中:
SetEnv EXAMPLE.COM_STATUS off
然后
<?php
if ($_ENV['EXAMPLE.COM_STATUS'] == 'off') {
die("Site be gone");
}
PHP默认情况下按每个用户处理会话数据。为了让会话共享设置或执行默认行为以外的任何操作,您需要实现自己的会话
会话是以每个用户为基础进行的,在某种环境变量或任何其他方法中设置要从多个会话中读取的一个位置的值时,最好在全局范围内设置某个值。我建议在数据库中存储一个标志变量,否则,在平面文件中存储一个标志变量。最好将该标志变量存储在n数据库,并在需要时检索它。:)另一个选项是缓存数据库,它将更快地加载配置,因为所有内容都存储在内存中(但是,标准数据库或文件可能会更快,设置也更标准)。我建议您研究环境变量,这可以通过服务器配置来实现。@cbuckley环境变量不是这样工作的。它们在继承它们的所有进程中共享,但对它们的更改不会共享;如果不从顶部执行,则无法更改它们。
SetEnv EXAMPLE.COM_STATUS off
<?php
if ($_ENV['EXAMPLE.COM_STATUS'] == 'off') {
die("Site be gone");
}
$ touch /home/sites/example.com/kill_it_now
<?php
if (file_exists('/home/sites/example.com/kill_it_now')) {
die("Site be gone");
}