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