admin管理员组

文章数量:1415484

I am looking for some code that will return me values if the user has JavaScript enabled or disabled, as well as cookies.

I know this is probably easy to do, but my time constraints are so tight, it hurts. There has to be something out there using php that does this. Ideally I would love to find code that has a page setup with all the possible values that could affect my scripts.

EDIT: Obviously JavaScript may be disabled, but, I am hoping that I can find something out there to test the two cases.

My Solution

For anoyone else looking for code to detect if the users has cookie enabled or disabled, here is what I ended up ing up with from the posts below... you can just drop this at teh top of any page and it works...

<?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: ".$mon->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;
        }
    }
}
?>

I am looking for some code that will return me values if the user has JavaScript enabled or disabled, as well as cookies.

I know this is probably easy to do, but my time constraints are so tight, it hurts. There has to be something out there using php that does this. Ideally I would love to find code that has a page setup with all the possible values that could affect my scripts.

EDIT: Obviously JavaScript may be disabled, but, I am hoping that I can find something out there to test the two cases.

My Solution

For anoyone else looking for code to detect if the users has cookie enabled or disabled, here is what I ended up ing up with from the posts below... you can just drop this at teh top of any page and it works...

<?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: ".$mon->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;
        }
    }
}
?>
Share Improve this question edited Feb 18, 2010 at 11:57 GateKiller 76.1k75 gold badges175 silver badges204 bronze badges asked Jun 23, 2009 at 16:09 KladskullKladskull 10.8k22 gold badges71 silver badges115 bronze badges 4
  • You also want to test for Java? – Nosredna Commented Jun 23, 2009 at 16:21
  • I was thinking about making a red box saying "Java Disabled" and if java is enabled, simply replace it with a green box... – Kladskull Commented Jun 23, 2009 at 16:59
  • Does your site use both Java and JavaScript? – Nosredna Commented Jun 23, 2009 at 17:18
  • nope, just javascript... so easy for me to just say java... I meant javascript, sorry ;) – Kladskull Commented Jun 23, 2009 at 22:04
Add a ment  | 

6 Answers 6

Reset to default 2

You could use the jQuery cookie plugin to write a cookie and then see if you can read it back again. That would tell you if cookies were enabled in the client's browser or not.

For checking Javascript, either they have it or they don't. If not, you can use <noscript> tags to display a message asking them to turn it on, put a meta redirect inside, etc. That is the extent of your testing ability.

As for cookies, just try setting a cookie then reading it back! Since you're concerned about Javascript's ability to handle cookies, I assume you already have a cookie library that you are using, meaning that you can just use the set function for a test cookie then the get function to read it back. If the test cookie can't be read back, cookies are off.

Here is one for checking cookies

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

if javascript is disabled then you can't use jquery or prototype.

write a function that writes a cookie, then tries to read it.

and secondly puts out some js code to the screen that makes a ajax call to a basic php script.

you can use a database to set the boolean results of both tests on the visitor table if there is one.

This is the way I check if cookies and JavaScript are enabled:

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');
    }
}

Explained in detail here: http://asdlog./Check_if_cookies_and_javascript_are_enable

First, realize that you can't use JavaScript to check for cookies if JavaScript is turned off. The usual check for cookies being on is to write one and then read it.

Do you care about the case when cookies are on but JavaScript is off? What are you going to do based on the information?

I found this code here for checking for a cookie via PHP. Doesn't rely on JavaScript. Is PHP your server language?

<?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";
            }
        }

    }
}
?>

本文标签: phpAre JavascriptCookies enabled or disabledStack Overflow