Free tutorials & notes in Hindi & English · Clean code examples 🧰 मुफ़्त PDF और फ़ोटो टूल्स →
📘 Lesson  ·  Lesson 13

Sessions and Cookies

इनकी ज़रूरत क्यों

HTTP pages के बीच सब भूल जाता है — हर request अलग होती है। तो website कैसे याद रखती है कि आप logged in हैं जब आप घूमते हैं? Sessions और cookies यह हल करते हैं, pages के बीच data याद रखकर। Cookie browser में रहती है; session server पर।

💡 Cookie = user के browser में store। Session = server पर store, browser में सिर्फ़ एक ID।

Sessions इस्तेमाल करना

बिल्कुल ऊपर session_start() call कीजिए, फिर $_SESSION array इस्तेमाल कीजिए।

<?php
  session_start();
  $_SESSION["user"] = "Aman";   // save
  echo $_SESSION["user"];        // read -> Aman
?>
Aman

$_SESSION में जो डालें वो दूसरे pages पर उपलब्ध रहता है (जब तक वे भी session_start() call करें)। data खुद सुरक्षित रूप से server पर रहता है।

setcookie() browser में expiry time के साथ data रखता है।

<?php
  // 1 दिन में expire (60*60*24 seconds)
  setcookie("theme", "dark", time() + 86400);

  // अगले page load पर पढ़ें:
  echo $_COOKIE["theme"] ?? "not set";
?>

Cookie अगले page load से उपलब्ध होती है, उसी script में तुरंत नहीं। theme जैसी non-sensitive preferences के लिए cookies इस्तेमाल कीजिए।

Login session कैसे इस्तेमाल करता है

<?php
  session_start();
  // username व password जाँचने के बाद:
  $_SESSION["logged_in"] = true;
  $_SESSION["user"] = "Aman";

  // protected page पर:
  if (empty($_SESSION["logged_in"])) {
      echo "Please log in";
  } else {
      echo "Welcome " . $_SESSION["user"];
  }
?>
Welcome Aman

Login status session में रखा जाता है क्योंकि असली value server पर रहती है, जहाँ user उसे बदल नहीं सकता। logout को session साफ़ कीजिए।

Session बनाम cookie

बातSessionCookie
कहाँ storeServerUser का browser
Login के लिए सुरक्षित?हाँनहीं
कितनी देरबंद/timeout तकआपके set expiry तक
किसके लिए बढ़ियाLogin, cartTheme, language pref

आम गलतियाँ

  • session_start() से पहले output। <?php से पहले एक खाली line भी "headers already sent" error देती है।
  • Login को cookie में रखना। Users cookies edit कर सकते हैं — session इस्तेमाल कीजिए।
  • उसी request में cookie की उम्मीद। यह अगले page load से दिखती है।
  • हर page पर session_start() न करना। जो page $_SESSION पढ़े उसे यह चाहिए।

सारांश

  • Sessions और cookies pages के बीच data याद रखते हैं।
  • Session data server पर; cookie data browser में रहता है।
  • ऊपर session_start(), फिर $_SESSION array इस्तेमाल कीजिए।
  • Login status session में रखिए, कभी plain cookie में नहीं।
  • Logout को session_unset() + session_destroy()।

आगे, user input सुरक्षित कीजिए form validation से, या attacks रोकिए XSS prevention से।

अक्सर पूछे जाने वाले प्रश्न (FAQ)

Session और cookie में क्या अंतर है?
Cookie user के browser में store होती है और हर request के साथ वापस भेजी जाती है। Session server पर store होता है, और browser में सिर्फ़ एक छोटा session ID रहता है। login status जैसे sensitive data के लिए sessions सुरक्षित हैं क्योंकि असली data कभी server से बाहर नहीं जाता।
session_start() पहले क्यों आना चाहिए?
session_start() किसी भी HTML या output से पहले चलना चाहिए, क्योंकि यह header भेजता है। अगर output पहले चला जाए तो PHP "headers already sent" error देती है। इसे page के बिल्कुल ऊपर रखिए।
Session कितनी देर चलता है?
Session आमतौर पर browser बंद होने तक, या server द्वारा तय inactivity समय के बाद तक चलता है। Cookie बहुत ज़्यादा देर चल सकती है क्योंकि आप उसका expiry time खुद set करते हैं।
Login status कहाँ रखूँ — session या cookie?
Login status session में रखिए, cookie में नहीं। Sessions असली data server पर रखते हैं, तो user उसे edit नहीं कर सकता। security वाली किसी चीज़ के लिए plain cookie value पर कभी भरोसा न करें।
User को logout कैसे करें?
session_unset() और session_destroy() से session साफ़ कीजिए। यह store login data हटा देता है ताकि user logged in के रूप में न पहचाना जाए।
← Back to PHP Tutorial
🔗

Share this topic with a friend

यह topic किसी दोस्त को भेजें

Found it useful? Send it to a classmate learning the same thing.

अच्छा लगा? जो दोस्त यही सीख रहा है, उसे भेज दीजिए।

💻 लाइव कोड एडिटर

इस पेज के प्रोग्राम यहीं तैयार हैं — चलाएँ, बदलें और सीखें। कुछ भी इंस्टॉल किए बिना।
OneCompiler द्वारा संचालित। कोड एडिटर में अपने आप आ जाता है — Run दबाकर आउटपुट देखें। अगर एडिटर न खुले तो नए टैब में खोलें.
अगला topicFile Handling आपकी प्रगति: 13 / 50 (26%) · Lesson 14 / 50 आगे बढ़ें →

यह lesson कैसा लगा?

आपकी राय से हम content और बेहतर बनाते हैं।

अपना review और सुझाव लिखें (वैकल्पिक)

Review approve होने के बाद आपका नाम और शहर इसके साथ public दिख सकते हैं। Email या phone न लिखें।

▶ CodingEasily on YouTube

Video से सीखें – आसान Hindi में

चुनी हुई video: RDBMS भाग 3 – Class XI Commerce IT

▶ Channel subscribe करें