php – 设置服务器范围的会话变量?
作者:互联网
我试图通过设置一个“ON”或“OFF”的简单会话变量来“关闭”我的网站.
<?php
$_SESSION['STATUS'] = "OFF";
?>
在其他每个页面上,网站都会检查STATUS是否已关闭,并将用户重定向到“我们已关闭”页面.
<?php
session_start();
if ($_SESSION['STATUS'] == "OFF") {
echo "<script>window.location='http://*****/sorry/';</script>";
}
?>
问题是我设置的会话变量对我的会话是独占的,并且也可能正在浏览该站点的任何其他客户端不受更改的影响.有没有办法设置影响每个会话的服务器范围的会话变量?
解决方法:
PHP没有“服务器范围”的概念.每个用户持久性只有$_SESSION.
你可以在网络服务器级别设置一些东西.例如在Apache中:
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");
}
标签:php,session-variables 来源: https://codeday.me/bug/20190830/1769405.html