代码之家  ›  专栏  ›  技术社区  ›  Caio

检查会话是否存在(Nginx)

  •  2
  • Caio  · 技术社区  · 14 年前

    $_SESSION["session"]["key"] = md5 ($token . $userAgent . $ip);
    $_SESSION["session"]["timeout"] = time ();
    

    只想检查nginx会话,尝试了以下代码但没有成功:

    location / {
        if ($request_filename ~* "index.php") {
            break;
        }
    
        if ($http_cookie ~* "session") {
            break;
        }
    
        rewrite ^.+$ https://localhost/index.php last;
    }
    

    谢谢。

    1 回复  |  直到 14 年前
        1
  •  6
  •   Max    12 年前

    cookie只保存会话ID,总是创建一个ID session_start();

    你最好的办法就是再加一块饼干:

    setcookie('session_key',md5 ($token . $userAgent . $ip));
    

    然后在nginx中:

    if ($http_cookie ~* "session_key")
    {
        break;
    }
    

    检查cookie是否已设置。

    如果哈希敏感,请执行以下操作:

    setcookie('session_key_active','1');
    

    然后在Nginx:

    if ($http_cookie ~* "session_key_active")
    {
        break;
    }