Detect if cookies are enabled in PHP

后端 未结 4 753
爱一瞬间的悲伤
爱一瞬间的悲伤 2020-12-01 23:43

I am trying to detect if a user on my page has cookies enabled or not. The following code performs the check, but, I have no idea on how to redirect the user to the page the

4条回答
  •  有刺的猬
    2020-12-02 00:43

    I think this is easiest solution. Doesn't require separate files and allows you to proceed with script if cookies are enabled:

    $cookiesEnabled = true;
    
    if (!isset($_COOKIE['mycookie'])) {
        $cookiesEnabled = false;
        if (!isset($_GET['cookie_test'])) {
            setcookie('mycookie', 1, 0, '/');
            @ob_end_clean();
            $_SESSION['original_url'] = $_SERVER['REQUEST_URI'];
            $uri = $_SERVER['REQUEST_URI'];
            $uri = explode('?', $uri);
            $q = (isset($uri[1]) && $uri[1])?explode('&', $uri[1]):array();
            $q[] = 'cookie_test=1';
            $uri[1] = implode('&', $q);
            $uri = implode('?', $uri);
            header('Location: '.$uri);
            die;        
        }
    } else if (isset($_GET['cookie_test'])) {
        @ob_end_clean();
        $uri = $_SESSION['original_url'];
        unset($_SESSION['original_url']);
        header('Location: '.$uri);
        die;    
    }
    
    // if (!$cookiesEnabled) ... do what you want if cookies are disabled
    

提交回复
热议问题