تعداد بازدید: 809

Cookie و Session در php

زمانی که بحث ذخیره اطلاعات که مطرح میشه ما امکاناتی برای ذخیره اطلاعاتمون داریم:

  • پایگاه داده (DataBase)
  • فایل ها (Files)
  • کوکی ها (cookie)
  • نشست ها (session)

از نظر امنیت و پایداری داده ها موارد فوق تفاوت هایی با هم دارند . به طور مثال امنیت داده ها در کوکی پایین و در پایگاه داده بالا است.پایداری اطلاعات در session ها تا پایان session می باشد و پس از آن از بین می رود و در کوکی ها تا زمان انقضای تعیین شده از سوی برنامه نویس است ولی ماندگاری اطلاعات در پایگاه داده تا زمان بقای آن(پایگاه داده) می باشد.

کوکی ها (cookies) در php

کوکی ها در مرورگر کاربر ذخیره می شود و کاربر نیز به آن دسترسی دارد از این رو نباید داده های حساس را در کوکی ذخیره کرد (ضمن اینکه کوکی ها زمان انقضا دارند)

ساخت cookie :

سه پارامتر مهم در زمان ساخت کوکی مطرح می شود:

  • name : نام کوکی که index متغیر سراسری COOKIE می شود.
  • content : محتوای کوکی.
  • expire_time : زمان انقضا که باید به وسیله timestamp اعلام شود.

تابع setcookie به شرح زیر است :

در صورت این که روی یک پروژه بزرگ کار می کنید می تونید یه سری زمان های انقضای پیش فرض برای برنامه تون تعریف کنید(مثل وردپرس) :

دسترسی به cookie :

برای دسترسی به cookie ها باید از طریق متغیر سراسری $_COOKIE اقدام کرد.

$name همون مقداریه که به عنوان نام در زمان تعریف کوکی بهش اختصاص دادیم و مقداری که این عبارت به ما میده همون $content هست که در زمان ساخت کوکی براش قرار دادیم . این عبارت به شرطی معتبر خواهد بود که زمان انقضای آن نگذشته باشد.

پاک کردن cookie :

برای پاک کردن دائمی یک cookie کافیه ابتدا اون رو unset کنید(از بین رفتن content) و در مرحله بعد برای از بین بردن cookie اون رو با یک زمان انقاضای منفی تعریف کنید:

خوب در خط سوم مقدار تهی و زمان انقضای یک ساعت قبل داده شد.

نکته : کوکی ها توسط Http Headers میان سرور و کلاینت جا به جا می شوند. به صورتی که زمانی که در کدهای خود از set_cookie استفاده می کنیم در هدر Response به کلاینت می فهمانیم که فلان کوکی را در خود ذخیره کن و همچنین وقتی get_cookie در کد ها استفاده می کنیم یعنی از کوکی هایی که در هدر Request به سمت سرور آمده استفاده میکنیم.

نکته : چون ذخیره کوکی در ارتباط مستقیم با Http Headers می باشد لذا قبل از چاپ هر گونه خروجی باید از آن استفاده کنیم.

نشست ها یا session در php

برخلاف cookie ها که در مرورگر کاربر ذخیره می شدند session ها در سرور ذخیره می شوند. نشست یعنی امکان ذخیره سازی یک سری اطلاعات به محض شروع نشست تاپایان نشست.

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

به عبارت کلی SESSION یعنی جابه جایی یه سری متغیر ها همراه با جابه جایی کاربر در میان صفحات. که تفاوتشون با متغیر های عادی اینه که ریست نمیشن و از این رو بسیار کاربردی هستند.

نکته : نشست ها در زمان تعیین header ها شروع می شوند . پس باید قبل از هر خروجی در اسکریپت شروع شوند .

شروع نشست :

قبل از هر خروجی با تابع session_start() اتفاق می افتد.

تخصیص مقدار برای نشست :

با استفاده از متغیر سراسری $_SESSION و با یک نام انجام می پذیرد.

قطعا عبارت بالا برابر مقداری خواهد بود که در طول برنامه تا زمانی که نشست باطل نشده است با استفاده از $name و متغیر سراسری $_SESSION قابل دسترسی است.

پایان نشست :

با تابع session_destroy() اتفاق می افتد.

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

 

مطالب مشابه

آرایه ها در php

در این مقاله قصد داریم تا آرایه ها رو در php بررسی کنیم و همچنین توابع مرتبط با آرایه ها رو بررسی کنیم. انواع آرایه در...

امنیت و رمزنگاری در پی اچ پی

امنیت و رمزنگاری در php

امنیت و رمز نگاری دو مبحث مهم در برنامه ها به شمار میره. به طور کلی ما باید برای حفاظت باید برنامه هامون در برابر حملات...

php error handling exceptions

مدیریت خطا و استثنا در php

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

اشتراک گذاری :

مدیر وب سایت گنوتک . برنامه نویسی رو با زبان C در هفده سالگی شروع کردم . در حال حاضر به برنامه نویسی php برپایه معماری MVC , HMVC و همچنین سیستم مدیریت محتوای WordPress و فریم ورک محبوب لاراول علاقه مند هستم و دوست دارم اطلاعاتم رو با شما به اشتراک بگذارم.

۰ دیدگاه برای Cookie و Session در php

پاسخی بگذارید

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