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

Cookie و Session در php

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

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

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

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

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

نکته :‌ کوکی ها به وسیله Http Header ها ارسال می شود و بدین معنی است که اگر تگ های HTML شما شروع شد دیگر امکان این وجود ندارد که به Header ها بر گردید.پس کوکی ها باید قبل از هر گونه خروجی در اسکریپت شما ارسال شوند.

ساخت cookie :

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

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

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

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

دسترسی به cookie :

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

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

پاک کردن cookie :

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

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

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

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

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

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

شروع نشست :

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

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

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

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

پایان نشست :

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

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

 

مطالب مشابه

کار با تاریخ و زمان در php

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

در ابتدا به دو مفهوم مهم در تاریخ و زمان در زبان پی اچ پی اشاره می کنیم : Greenwich Mean Time (GMT) زمان گرینویچ یا...

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

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

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

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

ابوالفضل صباغ

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

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

پاسخ دهید

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