是启用还是禁用Javascript / Cookies?

时间:2009-06-23 16:09:47

标签: php javascript cookies

我正在寻找一些代码,如果用户启用了JavaScript或禁用了JavaScript,我会返回值。

我知道这可能很容易,但我的时间限制非常紧张,很痛。必须有一些东西使用PHP来做到这一点。理想情况下,我希望找到具有页面设置的代码,其中包含可能影响我的脚本的所有可能值。

编辑:显然JavaScript可能会被停用,但是,我希望我能找到一些东西来测试这两种情况。

我的解决方案

对于其他寻找代码以检测用户是否启用了cookie的代码,以下是我最终从下面的帖子中得到的内容...您可以将其放在任何页面的顶部,它可以正常工作...

<?php
// do a cookie test
if (!isset($_SESSION['cookie_check']))
{
    if (!isset($_GET['cc']))
    {
        // drop a cookie in their bag
        setcookie("cookiecheck", "ok", time()+3600);
        header("Location: ".$common->selfURL()."?cc=1");
        exit(0);
    }
    else
    {
        // do we have a problem?
        if (@$_COOKIE['cookiecheck'] != "ok")
        {
            // we have a problem
            header("Location: /site-diag.php");
            exit(0);
        }
        else
        {
            $_SESSION['cookie_check'] = true;
        }
    }
}
?>

6 个答案:

答案 0 :(得分:2)

您可以使用jQuery cookie plugin编写Cookie,然后查看是否可以再次阅读。这会告诉你是否在客户端的浏览器中启用了cookie。

答案 1 :(得分:2)

要检查Javascript,他们要么拥有它,要么没有。如果没有,您可以使用<noscript>标签显示一条消息,要求他们打开它,将元重定向放入其中,等等。这就是您的测试能力。

至于cookies,只需尝试设置一个cookie然后再读回来!由于您担心Javascript处理cookie的能力,我假设您已经使用了一个cookie库,这意味着您可以使用set函数来测试cookie,然后使用get函数读回来。如果无法回读测试cookie,则会关闭cookie。

答案 2 :(得分:1)

这是一个用于检查cookie的方法

http://techpatterns.com/downloads/javascript_check_cookies.php

答案 3 :(得分:1)

如果禁用了javascript,则无法使用jquery或prototype。

编写一个写入cookie的函数,然后尝试读取它。

然后在屏幕上输出一些js代码,对一个基本的php脚本进行ajax调用。

如果有访问者表,您可以使用数据库在访问者表上设置两个测试的布尔结果。

答案 4 :(得分:0)

这是我检查是否启用了Cookie和JavaScript的方式:

if($_SESSION['JSexe']) { // 3rd check js
    if($_COOKIE['JS']) {
        setcookie('JS','JS',time()-1); // check on every page load
    }
    else {
        header('Location: js.html');
    }
}
// 2nd so far it's been server-side scripting. Client-side scripting must be executed once to set second cookie.
// Without JSexe, user with cookies and js enabled would be sent to js.html the first page load.
elseif($_COOKIE['PHP']) {
    $_SESSION['JSexe'] = true;
}
else { //1st check cookies
    if($_GET['cookie']) {
        header('Location: cookies.html');
    }
    else{
        setcookie('PHP','PHP');
        header('Location: '.$_SERVER['REQUEST_URI'].'?cookie=1');
    }
}

在此详细解释:http://asdlog.com/Check_if_cookies_and_javascript_are_enable

答案 5 :(得分:-6)

首先,请注意,如果关闭JavaScript,则无法使用JavaScript来检查Cookie。对cookie的常见检查是写一个,然后阅读它。

您是否关心Cookie启用但JavaScript已关闭的情况?根据这些信息你打算做什么?

我发现this code here用于通过PHP检查cookie。不依赖于JavaScript。 PHP是您的服务器语言吗?

<?php
class cookieCheck
{

    public function check()
    {
        if (setcookie("test", "test", time() + 100))
        {
            //COOKIE IS SET 
            if (isset ($_COOKIE['test']))
            {
                return "Cookies are enabled on your browser";
            }
            else
            {
                return "Cookies are <b>NOT</b> enabled on your browser";
            }
        }

    }
}
?>