Session

Session হচ্ছে ইনফরমেশন স্টোর করে রাখার একটি উপায়। আমরা যখন কম্পিউটারে কাজ করি তখন কি করি? কোন একটি অ্যাপ্লিকেশন চালু করি, কিছুমিছু করে অ্যাপ্লিকেশন বন্ধ করে দেই। মূলত আমরা যে অ্যাপ্লিকেশন চালু করলাম, কিছুমিছু করে বন্ধ করে দিলাম এটাই হচ্ছে একটা সেশন। কম্পিউটার জানে, কে অ্যাপ্লিকেশন চালু করে কিছুমিছু করে বন্ধ করেছিল। কিন্তু ইন্টারনেটে একটি সমস্যা আছে। ওয়েব সার্ভার জানে না আসলে কে অ্যাপ্লিকেশন চালু করে, মডিফাই করে বা বন্ধ করে। ওয়েব সার্ভারের এই সমস্যা দূর করার জন্য সেশন টেকনিক ইউজ করা হয়।

যখন কোন ক্লায়েন্ট অ্যাপ্লিকেশন (যেমনঃ ব্রাউজার)চালু করা হয় তখন থেকেই সেশন স্টার্ট হয়। প্রত্যেকটি সেশন এর একটি ইউনিক আইডি থাকে। এই সেশন আইডি দ্বারা সেশন কে আইডেন্টিফাই করা হয়। আমরা যখন কম্পিউটারে ব্রাউজার ওপেন করে ওয়েব সাইট ব্রাউজ করা শুরু করি তখন থেকে সেশন স্টার্ট হয় এবং সেশনের একটি ইউনিক আইডি জেনারেট হয়। যখন ব্রাউজার বন্ধ করে দেই তখন সেশন ডেস্ট্রয় হয়ে যায়। যদি একই ব্রাউজার দিয়ে ভিন্ন ভিন্ন ওয়েব সাইট ওপেন করি তবে প্রত্যেকটা ওয়েব সাইট এর জন্য ভিন্ন ভিন্ন সেশন স্টার্ট হয়। ব্রাউজার বন্ধ করে দিলে সব সেশন ডেস্ট্রয় হয়ে যায়। যদি একই ওয়েব সাইট দুইটা ব্রাউজার দিয়ে ওপেন করি তবে দুই ব্রাউজারে ভিন্ন ভিন্ন সেশন স্টার্ট হবে। অর্থাৎ তাদের আইডি ভিন্ন থাকবে।

PHP তে সেশন $_SESSION নামে একটি সুপার গ্লোবাল ভেরিয়েবল আছে। $_SESSION হচ্ছে অ্যাসোসিয়েটিভ অ্যারে টাইপ ভেরিয়েবল। এই ভেরিয়েবলে SESSION সংক্রান্ত সকল ইনফরমেশন থাকে। সেশন ব্যবহার করার জন্য PHP ফাইলের সর্বপ্রথম সেশন স্টার্ট করে নিতে হয়। আর সেশন স্টার্ট করার জন্য PHP তে session_start() নামে একটি ফাংশন ব্যবহার করা হয়।

উদাহরণঃ

<?php
     session_start();
?>

উপরের কোড লিখে রান করলেই সেশন শুরু হয়ে যাবে এবং একটি ইউনিক সেশন আইডি জেনারেট হবে।

সেশন আইডি দেখার জন্য session_id() ফাংশন ব্যবহার করা হয়। সেশন আইডি দেখতে হলে প্রথমে সেশন স্টার্ট করে নিতে হবে। অর্থাৎ সেশন সংক্রান্ত কোন কাজ করতে গেলে প্রথমেই সেশন স্টার্ট করে নিতে হবে।

উদাহরণঃ

<?php
     session_start();
     echo session_id();
?>

উপরের কোড লিখে রান করলেই সেশন আইডি শো করবে।

সেশন ইনফরমেশন সার্ভারে একটি ফাইলে স্টোর হয়। প্রত্যেক রিকুয়েষ্টে সেই ফাইলের সেশন ডাটা $_SESSION অ্যাসোসিয়েটিভ অ্যারেতে লোড হয়।

<?
     phpinfo();
?>

উপরের কোড লিখে রান করলে অনেক ইনফরমেশন শো করবে। সেখান থেকে session.save_path এর ডান পাশে যে পাথ দেয়া থাকবে সেশন ইনফরমেশন সেই পাথে একটি ফাইলে স্টোর হবে। ফাইলের নাম সেশন আইডি এর নামানুসারে হয়। উদাহরণস্বরূপ, যদি একটি সেশনের আইডি 1234567890 হয় তবে ফাইলের নাম sess_1234567890 হবে। ফাইলের নামের আগে বাই ডিফল্ট sess_ যোগ হয়।

সেশন স্টার্ট করার পর সেশনে ইনফরমেশন স্টোর করে রাখা হয়। ধরি, আমরা একটি ওয়েব সাইটে লগিন করে ইউজারের কিছু ইনফরমেশন(যেমন নেইম এবং পাসওয়ার্ড) সেশনে স্টোর করে রাখতে চাইতেছি। এজন্য প্রথমে সেশন স্টার্ট করে তারপর $_SESSION অ্যারেতে ইনফরমেশন স্টোর করে রাখতে হবে।

উদাহরণঃ

<?php
     session_start();
     $_SESSION["user"] = "learner";
     $_SESSION["password"] = "12345";
?>

এমন অনেক ওয়েব সাইট আছে যেখানে লগিন করতে হয়। লগিন করার সময় আমরা ইউজারের কিছু ইনফরমেশন দেই(ইউজার নেইম, পাসওয়ার্ড ইত্যাদি)। যে ওয়েব সাইটের জন্য লগিন করি, ঐ ওয়েব সাইটের অন্য পেজ ব্রাউজ করতে পুনরায় আর লগিন করতে হয় না। অর্থাৎ একবার লগিন করলেই ঐ ওয়েব সাইটের অন্যান্য পেজ ব্রাউজ করতে পারি। এর মানে হচ্ছে ওয়েব সার্ভার আমার কিছু ইনফরমেশন স্টোর করে রাখতেছে। এবং সেটা প্রতিবার চেক করে দেখতেছে আমি অথরাইজড পার্সন কিনা। ইনফরমেশন স্টোর করে রাখার প্রক্রিয়াটাই হচ্ছে সেশন।

Comments

Popular posts from this blog

The Superstar Of Hell

অ্যাডাম টিজিং

কুরবানীর গুরুত্বপূর্ণ ৭১ টি মাসআলা