সেশান হলো ভ্যারিয়েবলে তথ্য যোগ করার একটি পদ্ধতি যা অসংখ্য পেজে ব্যবহার করা হয়। তবে এক্ষেত্রে কুকির মতো, ইউজারের কম্পিউটারে তথ্য সেভ রাখা হয়না।
পিএইচপি সেশান কি?
আপনি যখন একটি অ্যাপ্লিকেশনে কাজ করেন তখন আপনি সেটিকে চালু করেন, কিছু পরিবর্তন তৈরি করেন এবং তারপর আপনি অ্যাপ্লিকেশনটিকে ক্লোজ করেন। এটি একটি সেশানের মতো। কম্পিউটার এখানে জানে আপনি কে। এটা জানে আপনি কখন অ্যাপ্লিকেশনটি চালু করেছেন এবং কখন বন্ধ করেছেন। কিন্তু ইন্টারনেটের ক্ষেত্রে এখানে একটি সমস্যা রয়েছেঃ ওয়েব সার্ভার জানেনা, আপনি কে এবং কি করেন, কারন এইচটিটিপি অবস্থা বজায় বা মনে রাখেনা।
সেশান ভ্যারিয়েবলগুলো ইউজারদের তথ্য সংরক্ষণের মাধ্যমে এই সমস্যাটির সমধান করতে পারে যে তথ্য অসংখ্য পেজে ব্যবহার করা যায় ( যেমন ইউজারনেম, প্রিয় রং ইত্যাদি)। ডিফল্ট হিসেবে সেশান ভ্যারিয়েবলগুলো ইউজার বা সাইট ব্যবহারকারী ব্রাউজার বন্ধ করা পর্যন্ত কার্যকর থাকে।
তাই, সেশান ভ্যারিয়েবলগুলো একজন মাত্র ইউজারের তথ্য ধারণ করে এবং একটি অ্যাপ্লিকেশনের মধ্যে সবগুলো পেজে কার্যকর থাকে।
টিপসঃ আপনার যদি একটি একটি স্থায়ী তথ্য সেভ করার জায়গার দরকার হয় তাহলে আপনি সেই তথ্য ডাটাবেজে সেভ করতে পারেন।
একটি পিএইচপি সেশান শুরু করা
session_start() ফাংশনের মাধ্যমে একটি সেশান শুরু হয়। পিএইচপি গ্লোবাল ভ্যারিয়েবলের ( $_SESSION ) মাধ্যমে সেশান ভ্যারিয়েবলগুলো নির্দিষ্ট করা হয়। এখন "demo_session1.php" নামের একটি নতুন পেজ তৈরি করা যাক। এই পেজে আমরা একটি নতুন পিএইচপি সেশান শুরু করি এবং কিছু ভ্যারিয়েবল সেট করিঃ
< ?php // Start the session session_start(); ?> < !DOCTYPE html>
< ?php // Set session variables $_SESSION["favcolor"] = "green"; $_SESSION["favanimal"] = "cat"; echo "Session variables are set."; ?>
লক্ষ্যণীয়ঃ session_start() ফাংশনটিকে অবশ্যই আপনার ডকুমেন্টের সর্বপ্রথম উপাদান হতে হবে; যেকোন এইচটিএমএল ট্যাগের পূর্বেই।
পিএইচপি সেশান ভ্যারিয়েবলগুলোর ভ্যালু পাওয়া
তারপর, আমরা "demo_session2.php" নামের আরেকটি পেজ তৈরি করি। এই পেজ থেকে আমরা সেশানের তথ্যকে অ্যাক্সেস করি যা আমরা প্রথম পেজে ("demo_session1.php") সেট করেছিলাম।
লক্ষ্য করুন, সেশান ভ্যারিয়েবলগুলো প্রত্যেকটি নতুন পেজে আলাদাভাবে চলে যায়নি, এর পরিবর্তে এগুলো ঐ সেশান থেকে পাওয়া যায় যা আমরা প্রত্যেকটি পেজের শুরুতে চালু ("demo_session1.php") করেছিলাম। আরও লক্ষ্য করুন, সবগুলো সেশান ভ্যারিয়েবল global $_SESSION ভ্যারিয়েবলে সেভ হয়ঃ
<?php session_start(); ?> <!DOCTYPE html> <html> <body> <?php // Echo session variables that were set on previous page echo "Favorite color is " . $_SESSION["favcolor"] . ".<br>"; echo "Favorite animal is " . $_SESSION["favanimal"] . "."; ?>
একটি ইউজার সেশানের জন্য সবগুলো সেশান ভ্যারিয়েবল ভ্যাল্যুকে দেখানোর অন্য একটি পদ্ধতি হলো নিচের কোডটিকে রান করাঃ
< ?php session_start(); ?> < !DOCTYPE html>
< ?php print_r($_SESSION); ?>
কিভাবে এটি কাজ করে? কিভাবে এটি আপনাকে চেনে?
বেশিরভাগ সেশান ইউজারদের কম্পিউটারে একটি ইউজার-কি সেট করে যা এরকম দেখায়ঃ 765487cf34ert8dede5a562e4f3a7e12 । তারপর, যখন অন্য পেজে আরেকটি সেশান খোলা হয়, এটি ইউজার-কি খুঁজে পেতে কম্পিউটারকে স্ক্যান করে। যদি কোন মিল খুঁজে পাওয়া যায়, এটা ঐ সেশানে অ্যাক্সেস করে; যদি না পাওয়া যায় তাহলে এটি নতুন সেশান শুরু করে।
একটি পিএইচপি সেশান ভ্যারিয়েবল মডিফাই করা
সেশান ভ্যারিয়েবলকে পরিবর্তন করতে, শুধু এটাকে অভার রাইট করুনঃ
< ?php session_start(); ?> < !DOCTYPE html>
< ?php // to change a session variable, just overwrite it $_SESSION["favcolor"] = "yellow"; print_r($_SESSION); ?>
একটি পিএইচপি সেশানকে শেষ করে দেয়া
সবগুলো গ্লোবাল সেশান ভ্যারিয়েবলকে মুঁছে দিতে এবং নষ্ট করে দিতে session_unset() এবং session_destroy() ব্যবহার করুনঃ
< ?php session_start(); ?> < !DOCTYPE html>
< ?php // remove all session variables session_unset();
// destroy the session session_destroy(); ?>