رتبه موضوع:
  • 0 رای - 0 میانگین
  • 1
  • 2
  • 3
  • 4
  • 5
حذف نشدن کوکی
#1
چرا unset روی کوکی کار نمیکنه؟
کلا یا باید تایمش بگذره از بین بره یا دستی پاک بشه
به هیچ روشی پاک نمیشه کوکی
مشکل از چیه؟
پاسخ
تشکر شده توسط:
#2
باید کوکی رو با مقدار null با دستور setcookie مقداردهی کنید.
پاسخ
تشکر شده توسط:
#3
به این دلیل که کوکی ها با استفاده از هدر های HTTP کنترل میشن و رابطه ای با متغیر های درونی PHP ندارند. برای پاک کردن هم باید زمان انقضا رو زودتر از زمان کنونی قرار بدهید تا مرورگر کوکی رو منقضی بکنه.
پاسخ
تشکر شده توسط:
#4
با مقداردهی null هم حذف میشن.
پاسخ
تشکر شده توسط: __undercover
#5
سوالم اینجاست مگه $_COOKIE یه آرایه نیست ؟
مثل $_SESSION و....
چرا دستور unset روش کار نمیکنه؟
پاسخ
تشکر شده توسط:
#6
دلیلش به ساز و کار مدیریت کوکی ها و Session ها در درون PHP بر می گرده.

هر بار که یک اسکریپت PHP که درخواست اجرای مدیریت Session رو داره فراخوانی میشه از طریق Session ID اطلاعات مربوط Session جاری پیدا میشه و در درون آرایه ریخته میشه و در انتهای اجرای برنامه هم اطلاعات Session از آرایه خونده میشه و اطلاعات Session با توجه به آرایه به روزرسانی میشه (حالا چه در فایل، پایگاه داده و...). به همین دلیل هر تغییری در آرایه SESSION در اطلاعات Session ها ثبت میشه.

ولی کوکی ها: هر بار که یک درخواست HTTP به اسکریپت PHP ارسال میشه در هدر ها، هدر Cookie مشخص کننده کوکی های کنونی ذخیره شده در مرورگر هست که در PHP پردازش می شوند و در درون آرایه COOKIES قرار می گیرند. به همین شکل هم در پاسخ نهایی HTTP هم هدر Set-Cookie مشخص می کنه که آیا کوکی جدیدی ثبت بشه یا نه. خوب حالا با توجه به این ساز و کار تنها راه حذف کوکی ها این هست که در هدر نهایی Set-Cookie به مرورگر اعلام بشه که فلان کوکی رو مقدارش رو حذف کن یا فلان کوکی رو مدت زمان انقضاش گذشته حذفش کن. حالا فرضا شما اگر یک مقدار رو از آرایه Cookies حذف هم بکنید تا توی هدر پاسخ نهایی HTTP اعلام نکنید اتفاقی نمی افته. مگر این که خودتون یک کد بنویسید تا این حذف و ثبت رو مدیریت بکنه.
پاسخ
تشکر شده توسط: sm_pakdel




کاربران در حال بازدید این موضوع: 1 مهمان