PHP session का उपयोग information को एक page से दूसरे page (temporarily) में पास और स्टोर करने के लिए किया जाता है। यह डेटा उस विज़िट के दौरान साइट के सभी pages के लिए उपलब्ध होगा। डिफ़ॉल्ट रूप से, session variables तब तक चलते हैं जब तक यूजर ब्राउज़र बंद नहीं कर देता।
PHP session प्रत्येक ब्राउज़र के लिए एक unique user id बनाता है। यूजर को पहचानने और कई अन्य ब्राउज़रों के बीच टकराव से बचने के लिए।
PHP Sessions vs PHP Cookies
हर बार जब ब्राउज़र सर्वर से URL का request करता है, तो वेबसाइट के लिए यूजर के ब्राउज़र में स्टोर्ड सभी cookie data स्वचालित रूप से request के साथ सर्वर को भेज दिया जाता है। इसका मतलब है (अधिक cookie = अधिक डेटा अपलोड समय ) की पेज लोड होने के लिए अधिक समय, जो वेबसाइट के performance को प्रभावित करता है।
PHP cookies को यूजर के कंप्यूटर पर स्टोर किया जाता है, जिसे attackers द्वारा आसानी से modified किया जा सकता है, जिससे एप्लिकेशन टूट सकता है। जबकि PHP session का उपयोग यूजर के कंप्यूटर के बजाय सर्वर पर डेटा स्टोर करने के लिए किया जाता है।
Starting a PHP Session
PHP Session हमेसा एक page की शुरुआत में session_start()
फ़ंक्शन के मदद से शुरु किया जाता है। यह फ़ंक्शन एक नया session शुरू करता है और यूजर के लिए एक unique session ID उत्पन्न करता है।
Session variables एक associative array में स्टोर करता है जिसे $_SESSION[]
कहा जाता हैं। इन variables को session के lifetime के दौरान एक्सेस किया जा सकता हैं।
<?php
// Starting session
session_start();
// Storing session data
$_SESSION["Name"] = "Brajlal Prasad";
$_SESSION["Age"] = 27;
echo "Name is: " . $_SESSION["Name"];
echo "<br>";
echo "Age is: " . $_SESSION["Age"];
?>
Name is: Brajlal Prasad
Age is: 27
नीचे दिए गए उदाहरण में हम एक session शुरू करेंगे और फिर counter नामक एक variable बनाएंगे जिसे सत्र के दौरान हर बार page पर जाने पर (1 जोड़कर) बढ़ाया जाएगा।
उसके लिए isset()
फ़ंक्शन का उपयोग यह जांचने के लिए किया जाएगा कि session variable पहले से सेट है या नहीं।
<?php
session_start();
if (!isset($_SESSION["counter"])) {
$_SESSION["counter"] = 1;
} else {
$_SESSION["counter"]++;
}
$message = "This is your visit no: " . $_SESSION["counter"];
?>
<html>
<body>
<?php
echo ($message);
?>
</body>
</html>
हर बार जब यूजर URL पर जाता है तो काउंटर 1 जोड़ देता है। उदाहरण के लिए, यदि आप ब्राउज़र को बंद किए बिना 6 बार page पर जाते हैं तो यह नीचे दिया गया आउटपुट दिखाएगा।.
This is your visit no: 6
Destroying PHP Session
PHP session_destroy()
फ़ंक्शन का उपयोग किसी सत्र को पूरी तरह से नष्ट करने के लिए किया जाता है। इस फ़ंक्शन को किसी argument की आवश्यकता नहीं होती हैं।
केवल एक certain session variable को delete करने के लिए हम unset()
फ़ंक्शन का उपयोग कर सकते हैं।
<?php
session_destroy();
?>
<?php
unset($_SESSION["counter"]);
?>