编程语言
首页 > 编程语言> > php – 设置服务器范围的会话变量?

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