# PHP Cookies and Sessions

Website ব্যবহারকারীর ডেটা সাময়িকভাবে সংরক্ষণ করা এবং ব্যবহারকারীর কার্যক্রম ট্র্যাক করা খুবই গুরুত্বপূর্ণ। এজন্য PHP-তে **Cookies** এবং **Sessions** ব্যবহৃত হয়। এই দুইটি ধারণা অনেকটা একই রকম হলেও কিছু গুরুত্বপূর্ণ পার্থক্য রয়েছে। আজকের ব্লগে আমরা বিস্তারিতভাবে **PHP Cookies এবং Sessions** নিয়ে আলোচনা করবো।

---

## 🍪 PHP Cookies কী?

**Cookies** হলো ছোট ছোট টেক্সট ফাইল যা ব্যবহারকারীর ব্রাউজারে (client-side) সংরক্ষিত থাকে।  
ওয়েবসাইট যখনই কোনো ব্যবহারকারীর ব্রাউজারে কুকি সেট করে, তখন তা প্রতিবার সার্ভারে রিকোয়েস্টের সাথে পাঠানো হয়।

### ✔ Cookies এর কাজ:

* ব্যবহারকারীর লগইন তথ্য মনে রাখা
    
* ওয়েবসাইটে থিম বা ভাষা পছন্দ সংরক্ষণ করা
    
* শপিং কার্ট ট্র্যাক করা
    
* ব্যবহারকারীর ব্রাউজিং অভ্যাস বিশ্লেষণ করা
    

---

## ✅ PHP তে Cookies সেট করা

PHP-তে কুকি সেট করার জন্য `setcookie()` ফাংশন ব্যবহার করা হয়।

### উদাহরণ:

```plaintext
<?php
    // একটি কুকি সেট করা হচ্ছে
    setcookie("username", "Mannan Shihab", time() + (86400 * 7), "/"); 
    // 86400 = 1 দিন (এখানে ৭ দিনের জন্য কুকি সেট করা হয়েছে)
?>
```

👉 এখানে:

* `"username"` → কুকির নাম
    
* `"Mannan Shihab"` → কুকির মান
    
* `time() + (86400 * 7)` → কুকির মেয়াদ (৭ দিন)
    
* `"/"` → পুরো ওয়েবসাইটে কুকি অ্যাক্সেসযোগ্য
    

---

## 🧐 Cookies রিড করা

```plaintext
<?php
    if(isset($_COOKIE["username"])) {
        echo "Welcome " . $_COOKIE["username"];
    } else {
        echo "No cookie found!";
    }
?>
```

---

## ❌ Cookies ডিলিট করা

কুকি ডিলিট করার জন্য মেয়াদ অতীত সময়ে সেট করতে হয়।

```plaintext
<?php
    setcookie("username", "", time() - 3600, "/");
    echo "Cookie deleted!";
?>
```

---

## 🛡 Cookies এর সীমাবদ্ধতা

* ব্রাউজারে সংরক্ষিত হয়, তাই ব্যবহারকারী সহজেই ডিলিট করতে পারে
    
* খুব বেশি নিরাপদ নয় (হ্যাকাররা অ্যাক্সেস করতে পারে)
    
* ডেটা সাইজ সীমিত (প্রায় 4KB)
    

---

# 🔐 PHP Sessions কী?

**Sessions** হলো সার্ভার-সাইডে ডেটা সংরক্ষণের একটি পদ্ধতি।  
যখন একজন ব্যবহারকারী কোনো ওয়েবসাইটে প্রবেশ করে, সার্ভার তার জন্য একটি **unique session ID** তৈরি করে। এই আইডি সাধারণত কুকির মাধ্যমে ব্রাউজারে সংরক্ষণ হয়।

### ✔ Sessions এর ব্যবহার:

* ব্যবহারকারীর লগইন সিস্টেম তৈরি করা
    
* শপিং কার্ট তথ্য সংরক্ষণ
    
* ব্যবহারকারীর পছন্দ ও সেটিংস সাময়িকভাবে রাখা
    

---

## ✅ PHP তে Session শুরু করা

```plaintext
<?php
    // সেশন শুরু করা
    session_start();
    
    // সেশনে ডেটা সংরক্ষণ
    $_SESSION["username"] = "Mannan Shihab";
    $_SESSION["email"] = "mannan@example.com";
    
    echo "Session data stored successfully!";
?>
```

## 🧐 Session ডেটা রিড করা

```plaintext
<?php
    session_start();
    echo "Username: " . $_SESSION["username"];
    echo "Email: " . $_SESSION["email"];
?>
```

---

## ❌ Session ডেটা ডিলিট করা

```plaintext
<?php
    session_start();
    session_unset(); // সব সেশন ভেরিয়েবল মুছে ফেলে
    session_destroy(); // সম্পূর্ণ সেশন ধ্বংস করে
    echo "Session destroyed!";
?>
```

---

## 🍪 Cookies vs 🔐 Sessions: পার্থক্য

| বিষয় | Cookies (কুকি) | Sessions (সেশন) |
| --- | --- | --- |
| সংরক্ষণের স্থান | ব্যবহারকারীর ব্রাউজার | সার্ভার |
| নিরাপত্তা | কম নিরাপদ | বেশি নিরাপদ |
| সাইজ সীমা | প্রায় 4KB | সীমাহীন (সার্ভারের উপর নির্ভরশীল) |
| মেয়াদ | নির্দিষ্ট সময় পর্যন্ত | ব্যবহারকারী লগআউট/ব্রাউজার বন্ধ না হওয়া পর্যন্ত |
| ব্যবহার | ব্যবহারকারীর পছন্দ সংরক্ষণ | ব্যবহারকারীর কার্যক্রম/লগইন ট্র্যাক করা |

**Cookies** এবং **Sessions** — দুটোই ওয়েব ডেভেলপমেন্টে অত্যন্ত গুরুত্বপূর্ণ।

* **Cookies** ব্যবহার করা হয় ছোটখাটো তথ্য ব্যবহারকারীর ব্রাউজারে সংরক্ষণ করার জন্য।
    
* **Sessions** ব্যবহার করা হয় বেশি নিরাপদ এবং জটিল তথ্য সার্ভারে রাখার জন্য।
    

একজন ডেভেলপারের জন্য Cookies এবং Sessions দুটোই জানা জরুরি, কারণ এগুলো ছাড়া ব্যবহারকারী-বান্ধব ওয়েব অ্যাপ্লিকেশন তৈরি করা সম্ভব নয়।
