दिलचस्प पोस्ट
आईओएस एप का नाम कैसे बदल सकता है? एंड्रॉइड रिस्ट क्लाइंट, नमूना? नियमित अभिव्यक्ति क्या संतुलन समूह हैं? क्लिक करने योग्य लेबल के साथ एक HTML चेकबॉक्स कैसे बनाएं दिए गए HTML के साथ एक आइफ्रेम बनाना गतिशील रूप से निर्धारित हैडर के लिए समायोजित करने के लिए एक HTML एंकर को ऑफसेट करना पिछली डाली गई आईडी के लिए postgreSQL फ़ंक्शन कंसोल (। Com) () सतर्क () से बेहतर क्यों माना जाता है? एएसपी.नेट एमवीसी 3 – आंशिक बनाम डिस्प्ले टेम्पलेट बनाम संपादक टेम्पलेट PHP URL से चित्र सहेज रहा है मैं एक अमान्य नाम के साथ संपत्ति कैसे प्राप्त कर सकता हूं? 'ताज़ा करें' HTTP शीर्षलेख डेक्स मर्ज करने में असमर्थ सॉकेट: जावा का उपयोग कर पोर्ट की उपलब्धता का पता लगाएं दैनिक चलाने के लिए एसक्यूएल क्वेरी के लिए एक नौकरी कैसे शेड्यूल करना है?

चेक करें कि क्या कुकी सक्षम हैं

मैं एक पृष्ठ पर काम कर रहा हूं जिसके लिए जावास्क्रिप्ट और सत्र की आवश्यकता है जावास्क्रिप्ट अक्षम है अगर मुझे पहले से ही उपयोगकर्ता को चेतावनी देने के लिए कोड है। अब, मैं उस केस को संभालना चाहता हूं जहां कुकीज़ अक्षम हैं, क्योंकि सत्र आईडी कुकीज़ में संग्रहीत है।

मैंने कुछ ही विचारों के बारे में सोचा है:

  1. लिंक और रूपों में सत्र आईडी को एम्बेड करना
  2. उपयोगकर्ता को चेतावनी दें कि वे अक्षम होने पर कुकी को सक्षम करनी होंगी (कुकीज़ अक्षम होने पर पता लगाने में सहायता की आवश्यकता होगी)

इस दृष्टिकोण का सबसे अच्छा तरीका क्या है? धन्यवाद

संपादित करें

जुड़े लेखों के आधार पर, मैं अपने दृष्टिकोण से आया हूं और मुझे लगता है कि मैं साझा करूंगा, कोई अन्य इसका उपयोग करने में सक्षम हो सकता है, शायद मुझे कुछ आलोचकों को मिलेगा ( PHPSESSID नामक एक कुकी में अपने PHP सत्र स्टोर्स को मानता है)

 <div id="form" style="display:none">Content goes here</div> <noscript>Sorry, but Javascript is required</noscript> <script type="text/javascript"><!-- if(document.cookie.indexOf('PHPSESSID')!=-1) document.getElementById('form').style.display=''; else document.write('<p>Sorry, but cookies must be enabled</p>'); --></script> 

वेब के समाधान से एकत्रित समाधान "चेक करें कि क्या कुकी सक्षम हैं"

जावास्क्रिप्ट

JavaScript में आप कुकी एनेटेड प्रॉपर्टी के लिए साधारण परीक्षण, जो सभी प्रमुख ब्राउज़रों में समर्थित है। अगर आप किसी पुराने ब्राउज़र से काम करते हैं, तो आप कुकी सेट कर सकते हैं और जांच सकते हैं कि यह मौजूद है या नहीं। ( आधुनिकीकरण से उधार लिया गया):

 if (navigator.cookieEnabled) return true; // set and read cookie document.cookie = "cookietest=1"; var ret = document.cookie.indexOf("cookietest=") != -1; // delete cookie document.cookie = "cookietest=1; expires=Thu, 01-Jan-1970 00:00:01 GMT"; return ret; 
  • आधुनिक योजक कुकी जांच
  • कुकीज को सक्षम किए जाने पर जांच कर रहा है

पीएचपी

PHP में यह "जटिल" है क्योंकि आपको पृष्ठ को रीफ्रेश करना होगा या किसी अन्य स्क्रिप्ट पर रीडायरेक्ट करना होगा। यहां मैं दो स्क्रिप्ट का प्रयोग करूंगा:

somescript.php

 <?php session_start(); setcookie('foo', 'bar', time()+3600); header("location: check.php"); 

check.php

 <?php echo (isset($_COOKIE['foo']) && $_COOKIE['foo']=='bar') ? 'enabled' : 'disabled'; 
  • अगर PHP के साथ कुकीज़ सक्षम हैं, तो पता लगा रहे हैं
  • PHP और कुकीज़, एक अच्छा मिक्स!

लेकिन यह जांचने के लिए कि क्या आप isset ($ _COOKIE ["cookie"]) का उपयोग कर सक्षम हैं, आपको ताज़ा करना होगा मैं इसे ths तरह (कुकीज़ के आधार पर सत्र के साथ कर रहा हूँ 🙂

 session_start(); $a = session_id(); session_destroy(); session_start(); $b = session_id(); session_destroy(); if ($a == $b) echo"Cookies ON"; else echo"Cookies OFF"; 

एक पारदर्शी, स्वच्छ और सरल दृष्टिकोण, PHP के साथ कुकीज़ की उपलब्धता की जांच करना और AJAX पारदर्शी पुनर्निर्देशन का लाभ लेना, इसलिए कोई पृष्ठ पुन: लोड नहीं किया जा रहा है । इसमें सत्रों की आवश्यकता नहीं होती है

क्लाइंट साइड कोड (जावास्क्रिप्ट)

 function showCookiesMessage(cookiesEnabled) { if (cookiesEnabled == 'true') alert('Cookies enabled'); else alert('Cookies disabled'); } $(document).ready(function() { var jqxhr = $.get('/cookiesEnabled.php'); jqxhr.done(showCookiesMessage); }); 

(JQuery AJAX कॉल शुद्ध जावास्क्रिप्ट AJAX कॉल के साथ बदला जा सकता है)

सर्वर साइड कोड (PHP)

 if (isset($_COOKIE['cookieCheck'])) { echo 'true'; } else { if (isset($_GET['reload'])) { echo 'false'; } else { setcookie('cookieCheck', '1', time() + 60); header('Location: ' . $_SERVER['PHP_SELF'] . '?reload'); exit(); } } 

पहली बार स्क्रिप्ट कहा जाता है, कुकी सेट होती है और स्क्रिप्ट ब्राउज़र को स्वयं को रीडायरेक्ट करने के लिए कहती है। ब्राउज़र पारदर्शी तरीके से करता है कोई पृष्ठ पुनः लोड नहीं होता क्योंकि यह एक AJAX कॉल स्कोप के अंतर्गत किया जाता है

दूसरी बार, जब पुनर्निर्देशन द्वारा कॉल किया जाता है, यदि कुकी प्राप्त होती है, तो स्क्रिप्ट HTTP 200 (स्ट्रिंग "सच्चे" के साथ) का जवाब देती है, इसलिए showCookiesMessage फ़ंक्शन को कहा जाता है।

यदि स्क्रिप्ट को दूसरी बार ("पुनः लोड" पैरामीटर द्वारा पहचाना जाता है) कहा जाता है और कुकी प्राप्त नहीं होती है, तो वह एक HTTP 200 का स्ट्रिंग "झूठी" के साथ जवाब देती है -और showCookiesMessage फ़ंक्शन को कहा जाता है।

आप एक ही पृष्ठ के लोडिंग सेट में नहीं देख सकते हैं और चेक कर सकते हैं कि कुकीज़ सेट है, तो आपको पुनः लोड पृष्ठ करना होगा:

  • सर्वर पर PHP चलाने;
  • क्लाइंट पर कुकीज़
  • कुकीज़ केवल एक पेज लोड करने के दौरान सर्वर पर भेजे गए
  • अभी बनाया कुकीज़ अभी तक सर्वर पर नहीं भेजा गया है और केवल पृष्ठ के अगले लोड पर भेजा जाएगा।

जावास्क्रिप्ट

आप JavaScript का उपयोग करके एक कुकी बना सकते हैं और जांच सकते हैं कि यह मौजूद है या नहीं:

 //Set a Cookie` document.cookie="testcookie"` //Check if cookie exists` cookiesEnabled=(document.cookie.indexOf("testcookie")!=-1)? true : false` 

या आप jQuery कुकी प्लगइन का उपयोग कर सकते हैं

 //Set a Cookie` $.cookie("testcookie", "testvalue") //Check if cookie exists` cookiesEnabled=( $.cookie("testcookie") ) ? true : false` 

Php

 setcookie("testcookie", "testvalue"); if( isset( $_COOKIE['testcookie'] ) ) { } 

सुनिश्चित नहीं है कि Php काम करेगा क्योंकि मैं इसे परीक्षण करने में असमर्थ हूं।

आप एक अजाक्स कॉल कर सकते हैं ( ध्यान दें : इस समाधान के लिए JQuery आवश्यक है):

example.php

 <?php setcookie('CookieEnabledTest', 'check', time()+3600); ?> <script type="text/javascript"> CookieCheck(); function CookieCheck() { $.post ( 'ajax.php', { cmd: 'cookieCheck' }, function (returned_data, status) { if (status === "success") { if (returned_data === "enabled") { alert ("Cookies are activated."); } else { alert ("Cookies are not activated."); } } } ); } </script> 

ajax.php

 $cmd = filter_input(INPUT_POST, "cmd"); if ( isset( $cmd ) && $cmd == "cookieCheck" ) { echo (isset($_COOKIE['CookieEnabledTest']) && $_COOKIE['CookieEnabledTest']=='check') ? 'enabled' : 'disabled'; } 

परिणामस्वरूप एक चेतावनी बॉक्स दिखाई देता है, जो दिखाता है कि wheter कुकीज़ सक्षम हैं या नहीं बेशक आपको एक चेतावनी बॉक्स दिखाने की ज़रूरत नहीं है, यहां से आप निष्क्रिय कुकीज़ से निपटने के लिए अन्य कदम उठा सकते हैं।

यह पता लगाना आसान है कि क्या कुकी सक्षम है:

  1. एक कुकी सेट करें
  2. कुकी प्राप्त करें

यदि आप अपने द्वारा सेट कुकी प्राप्त कर सकते हैं, तो cookie सक्षम है, अन्यथा नहीं।

बीटीडब्लू: Embedding the session id in the links and forms को Embedding the session id in the links and forms करना एक बुरा विचार है, यह एसईओ के लिए बुरा है मेरी राय में, यह बहुत आम नहीं है कि लोग कुकीज़ को सक्षम नहीं करना चाहते हैं

इसे पूरा करने के लिए यहां एक बहुत ही उपयोगी और हल्के जावास्क्रिप्ट प्लगइन है: जेएस-कुकी

 Cookies.set('cookieName', 'Value'); setTimeout(function(){ var cookieValue = Cookies.get('cookieName'); if(cookieValue){ console.log("Test Cookie is set!"); } else { document.write('<p>Sorry, but cookies must be enabled</p>'); } Cookies.remove('cookieName'); }, 1000); 

सभी ब्राउज़रों में काम करता है, कोई भी अक्षर स्वीकार करता है

कुकीज़ क्लाइंट-साइड हैं और PHP का उपयोग करके ठीक से परीक्षण नहीं किया जा सकता। यह आधार रेखा है और इस समस्या के लिए हर समाधान एक लपेटो है।

यदि आप अपनी कुकी समस्या का हल देख रहे हैं, तो आप गलत तरीके से हैं। PHP का उपयोग न करें, क्लाइंट भाषा की तरह जावास्क्रिप्ट का उपयोग करें।

क्या आप PHP का उपयोग कर कुकीज़ का उपयोग कर सकते हैं? हाँ, लेकिन आपको PHP 'दृश्यमान' में सेटिंग्स बनाने के लिए पुनः लोड करना होगा

उदाहरण के लिए: क्या एक परीक्षण संभव है कि ब्राउजर को सादे पीपीपी के साथ कुकी सेट कर सकते हैं? केवल सही उत्तर 'नहीं' है

क्या आप एक पहले से सेट कुकी पढ़ सकते हैं: 'हाँ' पूर्वनिर्धारित $ _COOKIE का उपयोग करें (PHP- ऐप शुरू करने से पहले सेटिंग्स की एक प्रति)