Managing PHP Sessions: Starting, Destroying, and Setting Timeout
আজকে আমরা php এর Start Sessions,Destroy Sessions, Timeout Sessions নিয়ে কিভাবে কাজ করতে হয় সেটা দেখবো। প্রথমে জেনে নেই php তে session কি ? PHP তে Session হচ্ছে ইউজার এর তথ্য অস্থায়ীভাবে Server এ সংরক্ষণ করা এবং Server এর মধ্যে অবস্থিত এক Page থেকে আরেকটি Page এ তথ্য পাস করার মাধ্যম।
এখন আসি কেন আমাদের session ব্যাবহার করতে হয়?
ইউজারের খুব গুরুত্বপূর্ণ তথ্য যেমন Id, Password, Email সংরক্ষণ করতে চান তাহলে আপনাকে session ব্যাবহার করা উচিত। এছাড়া আপনি যদি কুকি এর পরিবরতে alternative কিছু ব্যাবহার করতে চান তাহলে আপনাকে session ব্যাবহার করতে হবে। ইউজারের তথ্য এক পেইজ থেকে অন্য পেইজ এ পাস করতে হলে আপনাকে session ব্যাবহার করতে হবে। আসলে session দিয়ে ওয়েবসাইটের Login, Logout feature গুলো করা হয়ে থাকে। লগইন করলে session start হবে এবং তথ্য গুলো সংরংক্ষন করবে এবং logout করলে session টি destroy হয়ে যাবে এবং সাথে সাথে server এর সংরক্ষিত তথ্য গুলোও মুছে যাবে।
আজকে আমরা session এর তিনটি কাজ করবো। কিভাবে আমরা session start করতে পারি , একটি নির্দিষ্ট সময়ে session ডাটা গুলো মুছে যাবে এবং session টি destroy হয়ে যাবে যেটাকে আমরা timout session বলছি – আপনারা হইত খেয়াল করে থাকবেন আপনি কিছু ওয়েবসাইটে লগইন অবস্থায় কিছুক্ষণ থাকার পর server থেকে auto logout করে দেয়। এবং সব শেষে session destroy
php তে session তৈরি করতে হলে আপনাকে session_start() দিয়ে শুরু করতে হবে। এবং একটি super global variable দিয়ে আপনি session value গুলো ষ্টোর করতে পারবেন। এখানে সেই super global variable টি হল $_SESSION । এখানে session এর $_SESSION[‘username’] দিয়ে ইউজারের username সংরক্ষণ করছে এবং $_SESSION[“timeout”] দিয়ে time সংরক্ষণ করা হচ্ছে।
<?php
// start the sessions
session_start();
//initialize username and password
$_SESSION['username'] = 'saif';
$_SESSION["timeout"] = time();
//check the username and password
if (isset($_SESSION['username'])) {
echo "I m login with " . $_SESSION['username'];
}
?>
<br>
<a href="timeout.php" style="margin-top: 10px">Timeout Session</a><br>
<a href="delete.php" style="margin-top: 10px">End Session</a>
Timeout session – আপনি যদি চান যে আপনার session start হওয়ার ১৫ সেকেন্ড পরে আপনার session টি destroy হয়ে যাবে বা সংরক্ষিত তথ্য গুলো মুছে যাবে সেটার জন্য আমাদের time() function লাগবে। এরপর আমরা time() – $_SESSION[“timeout”] মাধমে session টির সময় বের করে নিবো যাতে ১৫ সেকেন্ড পরে session টি destroy হয়ে যাই।
<?php
<?php
// start them engines!
session_start();
//time in seceond
$time = 10;
// check to see if $_SESSION["timeout"] is set
if (isset($_SESSION["timeout"])) {
// calculate the sessions time to live
$sessionTTL = time() - $_SESSION["timeout"];
echo "Session will be destroy after 10 Seconds";
echo $sessionTTL;
if ($sessionTTL > $time) {
session_destroy();
header("Location: ./delete.php");
}
}
এখন আসি session কিভাবে delete করবো বা destroy করবো। destroy করতে হলে আমাদের session এর সংরক্ষিত তথ্য গুলো মুছে ফেলতে হবে আর তথ্য মুছার জন্য আমরা unset() function ব্যাবহার করতে পারি।
<?php
// start the sessions
session_start();
unset($_SESSION['username']);
unset($_SESSION['time']);
//check the username and password
if(isset($_SESSION['username'])){
echo "I m login with " . $_SESSION['username'];
}else{
echo "Session Deleted";
}
?>
<br>
<a href="./start.php">Start Session Again ?</a>
Github Link
Explore More: Send Mail With PHP Mailer, Form Validation With PHP Regular Expression, 6 Step of Version Control: Basic Git Command for Beginners, Create a WordPress Custom Query with WP_Query, Boost Your Email System: Send Mail with PHP Mailer (Step-by-Step Guide)