لوگوی وبسایت
تمام آموزش های وبسایت رایگان می باشد ، پس از صفحات مختلف سایت دیدن فرمایید .

کوکی ها و سشن ها در PHP

سلام دوستان امیدوارم حالتان خوب باشد . در این مقاله قرار است با کوکی ها ، سشن ها و تفاوت های آن ها آشنا شویم .

فرض کنید شما یک فرم کاربری ساخته اید ، کاربر وارد حساب کاربری میشود اما در صفحات دبگر چطور متوجه شویم کاربر وارد حساب کاربری خود شده است ؟

سشن ها و کوکی ها متغیر هایی هستند که هم در مرورگر کاربر و هم در سرور شما دخیره میشوند و امکان بازیابی آن ها حتی پس از بسته شدن صفحه ی سایت وجود دارد .

تقاوت سشن ها و کوکی ها

قبل از اینکه شروع به کد نویسی کنیم بهتر است با  تفاوت های سشن ها و کوکی ها بیشتر آشنا شویم تا بتوانیم برای اسکریپت مان بهترین گزینه را انتخاب کنیم .

کوکی ها :

  1. کوکی ها یک سری فایل های کم حجم هستند که در مرورگر کاربر ذخیره میشوند .
  2. کوکی ها میتوانند طول عمر بسیاری داشته باشند ، یک هفته یا چندین سال !
  3. کوکی ها با توجه به نوع مرورگر ها از لحاظ اندازه دارای یک سری محدودیت هستند .
  4. کوکی ها میتوانند در مرورگر کاربر ذخیره نشوند ! این گزینه در بخش تنظیمات مرورگر ها فعال است .
  5. میتوانند توسط کاربر ویرایش شوند . پس قطعا نباشد اطلاعات مهم را در مرورگر کاربر ذخیره کرد !

سشن ها :

  1. فایل های کوچکی هستند که در سرور وبسایت ذخیره میشوند .
  2. طول عمر کوتاهی دارند و اگر کاربر مرورگر خود را ببندد ، کارش تمام است !
  3. فقط زمانی در اندازه محدود اند که شما در سرور تنظیمات مخصوصش را فعال کنید .
  4. کاربر نمیتواند آن ها را در مرورگر خود نظاره کنید زیرا در مرورگر ذخیره نمیشوند .
  5. بخاطر ۴ ، کاربر نمیتواند ان ها را تغییر دهد پس برای چک کردن عضویت کاربر بهترین گزینه اند !

کوکی ها در PHP

همان طور که گفته شد کوکی فایل های کم حجمی هستند که در مرورگر کاربر ذخیره میشوند .

کوکی میتواند ۷ مشخصه داشته باشد .

مشخصه توضیحات
name نام کوکی
value مقدار
expire زمانی که کوکی غیر فعال شود ( تایم استمپ های unix ) ، اگر ۰ باید بعد از بستن مرورگر از بین می روند .
path مجل ذخیره سازی
domain دامنه ایی که کوکی در آن فعال باشد
secure آیا فقط در HTTPS ها نمایش داده شوند ؟
httponly آیا فقط در HTTP نمایش داده شوند ؟

توجه کنید که expire حتما با توجه به زمان مرورگر کاربر باشد نه سرور !

برای مثال :

در کد بالا ما یک کوکی به نام Name ساخته ایم که مقدار Mohammad Hoseini rad را دارد و ۱ ماه بعد منقضی میشود .

حالا مقدار کوکی رو میخواهیم .

سشن ها در PHP

برای استفاده از سشن ها اول باید آن ها را فعال کنیم .

توجه کنید که این کد به Header ها بر میگردد پس قبل از آن هیچ کد Dom ایی ( html , css , js , .. ) نباید قرار بگیرد ! برای مثال کد زیر حتما خطی میدهد .

شاید بپرسید که هیچ متنی نداریم ؟ چرا داریم \n که باید حذف شود ! خط اول رو توجه کنید . آن جا یک Enter زدیدکه DOM حساب میشود .

کد زیر نیز خطا خواهد داشت .

اما کد زیر مشکلی ندارد :

خوب ما یک سشن رو ساختیم حالا باید سشن ثبت و ویرایش کنیم .

سشن ها در یک آرایه $_SESSION در دسترس هستند ، فرض کنید این یک آرایه هست که همه جا در دسترس شما هست ، میتوانید آن را تغییر دهید یا مقادیری را حذف کنید . به مثال زیر توجه کنید .

یک فایل به نام start.php و یک فایل به نام show.php بسازید . حالا کد زیر را در Start.php قرار دهید .

و کد زیر در show.php:

ابتدا فایل start.php را باز کنید تا مقدار سشن ذخیره شود ، حالا فایل start.php را باز کنید ، میبینید که نام نمایش داده میشود .

حالا مرورگر خود را ببندید و دوباره فایل show.php را باز کنید . خروجی شما ” اسمت چیه ؟ ” خواهد بود .

چطور یک سشن را حذف کنیم؟

برای این کار از تابع unset() استفاده میکنیم :

این جلسه هم به پایان رسید ، سوالی دارید ؟ در نظرات طرج کنید .

بر چسب های پست : , , , , , ,
مطالب مرتبط
سلام دوستان ، امیدوارم حالتان خوب باشد . لطف خدا شامل حال ما شد و توانستیم دوره ...
۱۴ آبان ۹۴
2 دیدگاه
سلام دوستان ، امیدوارم حالتان خوب باشد ، به غول مرحله آخر PHP ( شوخی میکنم 🙂 ) ی ...
۱۴ آبان ۹۴
0 دیدگاه
سلام دوستان ، امیدوارم حالتان خوب باشد ، در این مقاله قراره با روش های ساخت ویا ...
۱۲ آبان ۹۴
0 دیدگاه
سلام دوستان امیدوارم حالتان خوب باشد ، در این قسمت قرار است روش آپلود فایل رو با ...
۰۴ آبان ۹۴
2 دیدگاه
2 دیدگاه برای “کوکی ها و سشن ها در PHP”
  1. keivan - telegram: @mrkei گفت:

    سلام بسیار ممنون از آموزش هاتون بسیار عالی هست، خداقوت.
    سوالی داشتم اینکه اگر ما پلاگین رو با اکشن init فراخوانی نکنیم چه اتفاقی میفته؟ و اصلا این init ضروری هست یا نه؟ با سپاس از پاسخگوییتون

  2. عاطفه تقی پور گفت:

    سلام
    بله منم همین سوال رو داشتم که
    اگر ما پلاگین رو با اکشن init فراخوانی نکنیم چه اتفاقی میفته؟ و اصلا این init ضروری هست یا نه؟
    تو سایتای مختلف فارسی و انگلیسی هم گشتم به جواب مشخصی نرسیدم
    لطفا اگر ممکنه یه توضیح کوتاه بفرمایید ممنون میشم

پاسخ دهید

نشانی ایمیل شما منتشر نخواهد شد. بخش‌های موردنیاز علامت‌گذاری شده‌اند *

ورود به حساب کاربری
بستن این پنجره