在PBOOTCMS中,使用 {PBOOT:ISLOGIN} 判断用户是否登录可能存在不准确的情况,特别是在本地Cookie已过期但 {PBOOT:ISLOGIN} 仍返回 1 的情况下。可以通过JavaScript来实现更准确的判断逻辑。

解决方案

你可以使用JavaScript来判断用户的登录状态,具体步骤如下:

  1. 使用JavaScript判断Cookie是否存在
  2. 如果Cookie不存在,则重定向到登录页面

示例代码

以下是一个示例代码,展示了如何使用JavaScript来判断用户是否登录,并在Cookie过期时自动跳转到登录页面。

<!DOCTYPE html>
<html lang="zh-CN">
<head>
    <meta charset="UTF-8">
    <title>PBOOTCMS - 用户登录状态判断</title>
</head>
<body>
    <!-- 页面内容 -->
    <h1>欢迎来到PBOOTCMS</h1>

    <!-- JavaScript判断登录状态 -->
    <script type="text/javascript">
        // 获取Cookie值
        function getCookie(name) {
            var cookieValue = null;
            if (document.cookie && document.cookie !== '') {
                var cookies = document.cookie.split(';');
                for (var i = 0; i < cookies.length; i++) {
                    var cookie = cookies[i].trim();
                    // Does this cookie string begin with the name we want?
                    if (cookie.substring(0, name.length + 1) === (name + '=')) {
                        cookieValue = decodeURIComponent(cookie.substring(name.length + 1));
                        break;
                    }
                }
            }
            return cookieValue;
        }

        // 判断用户是否登录
        var userMobile = getCookie('usermobile');
        if (!userMobile) {
            window.location.href = "{pboot:login}";
        }
    </script>
</body>
</html>