You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

如何基于多个Session用户名控制按钮的禁用状态

问题解决:多用户权限的按钮禁用逻辑修正

你的问题出在条件判断的逻辑错误上:

if ($_SESSION['username'] != 'bobby@gmail.com' || 'mary@gmail.com')

这里的'mary@gmail.com'是一个非空字符串,在PHP的布尔判断中会被视为true,所以不管当前登录的用户名是什么,整个条件都会返回true,导致按钮始终被禁用。

正确写法一:明确双重否定判断

要实现「只有bobby@gmail.com和mary@gmail.com能启用按钮」,逻辑应该是当用户名既不是bobby也不是mary时,禁用按钮,用&&连接两个不等于的判断:

<button type="button" value="<?= $recipient['recipID']; ?>" 
    <?php if ($_SESSION['username'] != 'bobby@gmail.com' && $_SESSION['username'] != 'mary@gmail.com') { ?> disabled <?php } ?>
    class="editrecipientbtn btn btn-success btn-sm">Edit</button>

正确写法二:用in_array更灵活(推荐)

如果以后需要添加更多允许的用户,把用户名放到数组里会更便于维护:

<button type="button" value="<?= $recipient['recipID']; ?>" 
    <?php if (!in_array($_SESSION['username'], ['bobby@gmail.com', 'mary@gmail.com'])) { ?> disabled <?php } ?>
    class="editrecipientbtn btn btn-success btn-sm">Edit</button>

这种方式只需要在数组里新增用户名即可,不用修改条件逻辑,扩展性更强。

内容的提问来源于stack exchange,提问作者ChuckL

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.07.04 05:33:11