簡體   English   中英

是啟用還是禁用Javascript / Cookies?

[英]Are Javascript/Cookies enabled or disabled?

我正在尋找一些代碼,如果用戶啟用了JavaScript或禁用了JavaScript,它將返回值,以及cookie。

我知道這可能很容易,但我的時間限制非常緊張,很痛。 必須有一些東西使用PHP來做到這一點。 理想情況下,我希望找到具有頁面設置的代碼,其中包含可能影響我的腳本的所有可能值。

編輯:顯然JavaScript可能會被禁用,但是,我希望我能找到一些東西來測試這兩種情況。

我的解決方案

對於尋找代碼以檢測用戶是否已啟用cookie或禁用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;
        }
    }
}
?>

您可以使用jQuery cookie插件編寫cookie,然后查看是否可以再次讀取它。 這會告訴您是否在客戶端的瀏覽器中啟用了cookie。

對於檢查Javascript,要么他們擁有它,要么他們沒有。 如果沒有,您可以使用<noscript>標簽顯示一條消息,要求他們打開它,將元重定向放在里面等等。這就是您的測試能力范圍。

至於cookies,只需嘗試設置一個cookie然后再讀回來! 由於您擔心Javascript處理cookie的能力,我假設您已經有一個正在使用的cookie庫,這意味着您可以使用set函數來測試cookie,然后使用get函數來讀取它。 如果無法回讀測試cookie,則會關閉cookie。

如果javascript被禁用,那么你不能使用jquery或原型。

編寫一個寫入cookie的函數,然后嘗試讀取它。

然后在屏幕上輸出一些js代碼,對一個基本的php腳本進行ajax調用。

您可以使用數據庫在訪問者表上設置兩個測試的布爾結果(如果有)。

這是我檢查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

首先,要意識到如果關閉JavaScript,則無法使用JavaScript來檢查cookie。 通常檢查cookie是寫一個然后讀它。

你是否關心cookie開啟但JavaScript已關閉的情況? 根據這些信息你打算做什么?

我在這里找到了這個代碼,用於通過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";
            }
        }

    }
}
?>

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM