کوکی ها (cookie)، در PHP
حتما تا به امروز، نام کوکی (cookie) به گوشتان خورده است. مثلا به شما گفته اند که لطفا کوکی های مرورگر اینترنت خود را پاک کنید. این کوکی ها، توسط سایت های مختلف، در کامپیوتر شما ذخیره می شوند. هدف اصلی از کوکی ها این است که یک سایت، برخی اطلاعات مورد نیاز را تنها یک بار به کامپیوتر شما ارسال نماید و دیگر نیازی نباشد که هر بار با مراجعه به سایت، آن بخش از اطلاعات را دوباره از سایت دریافت کنید. مثلا فرض کنید شما به انجمن سایت کلیدستان بروید و ادیتور انجمن دارای حجم 600 کیلوبایت باشد، اگر قرار باشد در هر صفحه ای که ادیتور است، شما دوباره این 600 کیلوبایت اطلاعات را دریافت کنید، عملا سرعت دسترسی شما به مطالب انجمن بسیار کند خواهد شد. اما انجمن با استفاده از کوکی، تنها یک بار، اطلاعات حجیم مربوط به ادیتور را در کامپیوتر شما (به صورت کوکی) قرار می دهد و هر بار که شما به انجمن سر بزنید، از این اطلاعات استفاده خواهد شد.
هر کوکی (cookie) یک مدت اعتبار دارد، زیرا اگر اینگونه نباشد، ممکن است کاربران قدیمی سایت، همیشه آن را به شیوه های قدیمی ببینند و از تغییرات جدید مطلع نشوند. برای ساخت یک کوکی در کامپیوتر کاربر بازدیدکننده از سایت، دستور setcookie در PHP به کار می رود. شیوه کلی استفاده از این دستور، به صورت زیر می باشد :
که در آن، $name برابر نام کوکی ، $value برابر مقدار کوکی و $expire برابر مقدار زمان اعتبار کوکی می باشد.
به مثال زیر توجه کنید :
فرض کنید که کد زیر را اجرا نماییم :
برای مدت زمان اعتبار، ابتدا با تابع time ، مقدار زمان فعلی را به دست آورده ایم، سپس میزان زمان اعتبار از اکنون تا زمان مورد نظرمان را بر حسب ثانیه نوشته ایم (7 روز ضرب در 24 ساعت ضرب در 60 دقیقه ضرب در 60 ثانیه، بنابراین مدت اعتبار کوکی، برابر یک هفته می باشد).
نتیجه :
برای اطمینان از عملکرد صحیح کد، باید به بخش تنظیمات مرورگر خود بروید. سپس در آن، به دنبال بخش کوکی ها جستجو کنید. معمولا مرورگرها این اجازه را به شما می دهند که لیست کوکی ها را ببینید. مثلا برای من، در مرورگر opera و پس از اجرا کدهای بالا، در لیست کوکی ها، عنوان زیر وجود دارد :
این عنوان، به این دلیل است که من کدهای بالا را در هاست محلی کامپیوتر خود (localhost) اجرا کرده ام. با کلیک روی این عنوان، تعدادی کوکی نمایش داده می شود، که در آنها، مورد زیر نیز وجود دارد :
این همان کوکی ساخته شده توسط کد قبلی می باشد.