2009-06-23 95 views
3

我正在尋找一些代碼,如果用戶啓用或禁用JavaScript以及cookie,將返回我的值。是啓用還是禁用Javascript/cookies?

我知道這可能很容易做到,但是我的時間限制非常緊張,很痛苦。必須有使用PHP這樣做的東西。理想情況下,我很想找到具有可能影響我的腳本的所有可能值的頁面設置的代碼。

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

我的解決方案

對於anoyone別人找代碼來檢測,如果用戶已啓用或禁用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; 
     } 
    } 
} 
?> 
+0

您也想測試的Java? – Nosredna 2009-06-23 16:21:46

+0

我在考慮製作一個名爲「Java Disabled」的紅色框,如果啓用了Java,只需用綠色框替換它即可...... – MichaelICE 2009-06-23 16:59:36

+0

您的網站是否同時使用Java和JavaScript? – Nosredna 2009-06-23 17:18:11

回答

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

    } 
} 
?> 
2

您可以使用jQuery cookie plugin寫一個cookie,然後看看你是否可以再次閱讀。這會告訴你是否在客戶端的瀏覽器中啓用了Cookie。

1

如果禁用JavaScript,那麼你不能使用jQuery的或原型。

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

然後將一些js代碼放到屏幕上,讓ajax調用一個基本的php腳本。

如果存在訪問者表,則可以使用數據庫設置兩個測試的布爾結果。

2

對於檢查Javascript,要麼他們有它,要麼他們沒有。如果沒有,您可以使用<noscript>標籤來顯示一條消息,要求他們打開它,在裏面放置一個元重定向等。這就是測試能力的程度。

至於cookie,只需嘗試設置一個cookie然後再讀回來!既然你關心Javascript處理cookies的能力,我假設你已經有一個你正在使用的cookie庫,這意味着你可以使用set函數作爲測試cookie,然後get函數讀取它。如果測試cookie不能被讀回,cookies就會關閉。

0

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

相關問題