如何存储永久布尔标志?

时间:2014-03-14 17:32:30

标签: php mysql boolean

我创建了一个包含2个控制面板的Web应用程序。一个用于管理员,一个用于用户。我希望用户只有在管理员将此操作设置为“打开”(来自他的面板)并且当他将其设置为“关闭”时才能从他们的面板执行一个特定操作。

我的应用程序也使用MySql数据库。

我该如何实施?只有一个字段的额外表格是否可行?我可以通过阅读文件(也许是JSON)来做到这一点吗?

编辑:我希望管理员能够通过点击按钮来切换“开/关”状态,因此常量不是解决方案。

2 个答案:

答案 0 :(得分:2)

每次使用动作时都可以使用数据库查询,但是如果它更通用并且你将要使用它很多,我会研究PHP常量。您可以在配置文件中设置它,如:

<强> CONFIG.PHP

define('USER_CAN_MODIFY', true);

<强> Other.php

if ((defined('USER_CAN_MODIFY') and USER_CAN_MODIFY === true) { }

常量具有全局范围,一旦设置就无法更改。

答案 1 :(得分:0)

由于您希望存储单个值,因此您不需要使用DB。您可以将此标志作为序列化值存储在文件中。 以下是简化示例。

define('PERM_FLAG_FILE', 'perm_flag.dat');
$PERM_FLAG = false;

function loadFlag() {
    global $PERM_FLAG;
    return file_exists(PERM_FLAG_FILE)? unserialize(file_get_contents($PERM_FLAG)) : false;
}

function saveFlag() {
    global $PERM_FLAG;
    file_put_contents(PERM_FLAG_FILE, serialize($PERM_FLAG));
}

function setFlag($v) {
    global $PERM_FLAG;
    $PERM_FLAG = (bool)$v;
}