Friday 15 June 2012

php - Is it save to put array in cookie -


  $ apply_id = 1111; अगर (isset ($ _ $ cookooe ['लागू'])) {$ apply_cookie = $ _ cookie ['लागू']; @ $ Apply_cookie = gzuncompress ($ _COOKIE ['लागू']);} और {$ apply_cookie = array ();} $ apply_cookie = @explode (',', $ apply_cookie); यदि ($ apply_cookie === गलत) {$ apply_cookie = array ();} और {$ count = count ($ apply_cookie); ($ N = 0; $ n & lt; $ count; $ n ++) {यदि (! Is_numeric ($ apply_cookie [$ n])) {सेट करें ($ apply_cookie [$ n]);}}} // cookbook अगर ( @ इन_अरे ($ apply_id, $ apply_cookie) == सच) {गूंजती "कोकीई = सच & lt; BR & gt;"; print_r ($ apply_cookie); } Else {// कोई कुकी नहीं है, डीबी ने रिकॉर्ड किया है $ db = TRUE; // प्रश्न यहाँ, सही के लिए सही या गलत है अगर ($ db == सच) {गूंज "गूंज" = "" = DB = TRUE "; $ Apply_cookie [] = $ apply_id; $ Apply_cookie = implode (',', $ apply_cookie); $ Apply_cookie = gzcompress ($ apply_cookie); सेटक्यूकी ("लागू करें", $ apply_cookie, समय () + 3600 * 24 * 60); } Else {// कोई cookie नहीं, कोई रिकॉर्ड गूंज "कुकई = फॉल्ट, डीबी = गलत"; $ Apply_cookie [] = $ apply_id; $ Apply_cookie = implode (',', $ apply_cookie); $ Apply_cookie = gzcompress ($ apply_cookie); सेटकुकी ("लागू करें", $ apply_cookie, $ apply_cookie, समय () + 3600 * 24 * 60); }}   

मैं उपयोगकर्ता को लागू किया गया है या नहीं यह जांचने के लिए एक कुकी सेट कर रहा हूँ। यदि कुकी में रिकॉर्ड है यह क्वेरी को छोड़ देगा यदि कोई कुकी या क्वेरी डीबी से कोई रिकॉर्ड नहीं है और कुकी को अपडेट किया है।

gzcompress (इसे छोटा करें) - & gt; विस्फोट (सरणी) - & gt ; is_number (केवल संख्या की अनुमति दें) - & gt; in_array (जांचें अगर यह मौजूद है)

क्या यह पर्याप्त सुरक्षित है? (मैं पहले serialize का उपयोग कर रहा था, लेकिन यह थोड़ा असुरक्षित लगता है)

यह केवल कुकी रिकॉर्ड्स मौजूद है या नहीं, अगर क्वेरी नहीं करता है और कुकी को अपडेट करता है < / Div>

बेहतर समाधान है:

  & lt;? Php $ apply_id = 1111; स्विच (सच्चा) {केस! एसेट ($ _ COOKIE ['लागू']): केस ($ apply_cookie = @gzuncompress ($ _COOKIE ['लागू करें'])) === गलत: केस! Is_array ($ apply_cookie = json_decode ($ Apply_cookie)): $ apply_cookie = array (); टूटना; डिफ़ॉल्ट: $ tmp = array (); विदेशी मुद्रा ($ apply_cookie $ c) {यदि (is_string ($ c) & amp; amp; is_numeric ($ c)) {$ tmp [] = $ c; }} $ Apply_cookie = $ tmp; } यदि (in_array ($ apply_id, $ apply_cookie)) {// है cookie गूंज 'कोकईई = TRUE & lt; br />'। PHP_EOL; गूंज nl2br (print_r ($ apply_cookie, true)); } और {$ db = true; // यदि कोई कुकी नहीं है ($ db) {// ने रिकॉर्ड किया $ apply_cookie [] = $ apply_id; सेटक्यूकी ('लागू', जीज़ कॉम्प्रेस (json_encode ($ apply_cookie)), समय () + 3600 * 24 * 60); गूंज 'COOKIE = FALSE, DB = TRUE & lt; br />' पीएचपी_एओएल; } Else {// है कोई रिकॉर्ड $ $ apply_cookie [] = $ apply_id; सेटक्यूकी ('लागू', जीज़ कॉम्प्रेस (json_encode ($ apply_cookie)), समय () + 3600 * 24 * 60); गूंज 'कुकी' = गलत, डीबी = गलत & lt; br /> '। पीएचपी_एओएल; }}   

ध्यान दें : किसी भी आउटपुट के पहले आपको setcookie करना होगा।

No comments:

Post a Comment