PHP-তে সেশন শুরু করার জন্য session_start() বিল্ট-ইন ফাংশন ব্যবহার করা হয়। কিন্তু একটি PHP স্ক্রিপ্টে একাধিকবার এক্সিকিউট করলে এরর থ্রো করে। তাই এখানে আমরা session_start() ফাংশন দুবার কল না করে সেশন শুরু হয়েছে কিনা চেক করব।
এই সমস্যা সমাধানের দুটি পদ্ধতি রয়েছে।
PHP 5.4.0-এর নিচের ভার্সনের জন্য:
উদাহরণ
<?php
if(session_id() == ''){
session_start();
}
?>
ব্যাখ্যা
যদি সেশন শুরু না থাকে তবে উপরের কোডটি PHP স্ক্রিপ্টে সবসময় সেশন শুরু করবে।
দ্বিতীয় পদ্ধতিতে session_status() ফাংশন ব্যবহার করা যায়, যা বর্তমান সেশনের স্ট্যাটাস ফেরত দেয়। এই ফাংশন তিনটি ইন্টিজার ভ্যালু ফেরত দেয়, যেগুলো প্রিডিফাইনড কনস্ট্যান্ট:
- 0 –
PHP_SESSION_DISABLED: সেশন বর্তমানে ডিসেবলড। - 1 –
PHP_SESSION_NONE: সেশন ইনাবলড, কিন্তু কোনো সেশন শুরু হয়নি। - 2 –
PHP_SESSION_ACTIVE: সেশন ইনাবলড এবং একটি সেশন শুরু হয়েছে।
উদাহরণ:
<?php
if (session_status() == PHP_SESSION_NONE) {
session_start();
}
?>
ব্যাখ্যা
উপরোক্ত কোড চেক করে সেশন শুরু হয়েছে কিনা, যদি শুরু না হয় তবে PHP স্ক্রিপ্টে সেশন শুরু করবে।
নোট
session_status() ফাংশন শুধু PHP 5.4.0 বা üzerের ভার্সনে কাজ করে।