কুকি কি সে বিষয়ে আমার এ লেখা না। শুধু এটুক বলি কুকি হলো সার্ভার থেকে ব্রাওজারে পাঠানো ডাটা যা Session management, User
tracking etc. কাজে ব্যাবহিত হয়।
An HTTP cookie (web cookie, browser cookie) is a small piece of data that a server sends to the user’s web browser, that may store it and send it back together with the next request to the same server. Typically, it’s used to know if two requests came from the same browser allowing to keep a user logged-in, for example. It remembers stateful information for the stateless HTTP protocol. – MDN
আজকে আমরা দেখব ওরাকল ডাটাবেজ থেকে কিভাবে কুকি পাঠান যায়। ওরাকল কুকি ম্যানেজ করার জন্য OWA_COOKIE প্যাকেজ ব্যাবহার করে। OWA_COOKIE প্যাকেজ এর চারটি সাব প্রোগ্রাম আছে –
- GET function
- GET_ALL procedure
- REMOVE procedure
- SEND procedure
#1. GET function: GET function ওয়েব ব্রাওজার থেকে একটা নির্দিষ্ট নামের কুকি এবং তার ভ্যালু বের করে আনে।
syntax:
OWA_COOKIE.GET( name IN VARCHAR2) -- name of cookie RETURN COOKIE; -- OWA_COOKIE.COOKIE array type data
example:
DECLARE target_cookie OWA_COOKIE.cookie; BEGIN target_cookie := OWA_COOKIE.get (cookie_name); -- Print message if the cookie was not found IF target_cookie.num_vals = 0 THEN HTP.print ('Cookie not found!'); ELSE FOR i IN 1 .. target_cookie.num_vals LOOP HTP.print (target_cookie.vals (i)); END LOOP; END IF; END;
#2 GET_ALL procedure: GET_ALL procedure ওয়েব ব্রাওজারের সকল non expired কুকি এবং তার ভ্যালু বের করে আনে।
syntax:
OWA_COOKIE.GET_ALL( names OUT vc_arr, -- array type vals OUT vc_arr, num_vals OUT INTEGER); -- number of cookie
example:
DECLARE -- Note that vc_arr is in owa_cookie, not owa_text! current_cookie_names OWA_COOKIE.vc_arr; current_cookie_vals OWA_COOKIE.vc_arr; n INTEGER := 0; BEGIN -- Fetch and print the current cookies OWA_COOKIE.get_all ( current_cookie_names, current_cookie_vals, n ); FOR i IN 1 .. n LOOP HTP.print (current_cookie_names (i)); HTP.print (current_cookie_vals (i)); END LOOP; END;
#3 REMOVE procedure: REMOVE procedure বল-পুর্বক কোন একটা কুকির মেয়াদ উত্তীর্ণ করে দেয়। ডিফল্ট ভাবে এর মেয়াদ ০১-০১-১৯৯০ সেট করে।
syntax:
OWA_COOKIE.REMOVE( name IN VARCHAR2, val IN VARCHAR2, path IN VARCHAR2 DEFAULT NULL);
#4 SEND procedure: SEND procedure ওয়েব ব্রাওজারের কুকি সেট করে।
syntax:
OWA_COOKIE.SEND( name in varchar2, value in varchar2, expires in date DEFAULT NULL, path in varchar2 DEFAULT NULL, domain in varchar2 DEFAULT NULL, secure in varchar2 DEFAULT NULL);
example:
BEGIN owa_util.mime_header('text/html', FALSE); OWA_COOKIE.SEND( NAME => 'CreateCookie', VALUE => session_value, -- Could also set this to null EXPIRES => SYSDATE + 1, -- use null if set cookie for a session PATH => '/', DOMAIN => 'mydomain.com', SECURE => NULL); END;
নোটঃ কুকি ভ্যালুর প্রথমে স্পেসিয়াল ক্যারেক্টার যেমন স্পেস বা কমা দেয়া যাবে না, যদি আপনার টার্গেট ব্রাওজার সাফারি হয়।
Ref: Oracle Doc