کوکی ها (cookie) در PHP

P O U R I A

مدیر مهندسی شیمی مدیر تالار گفتگوی آزاد
مدیر تالار
فهرست مطالب:

  1. کوکی ها (cookie) در PHP
  2. خواندن کوکی ها (cookie) از کامپیوتر کاربر، در PHP
  3. حذف کردن کوکی ها (cookie) از کامپیوتر کاربر، در PHP

منبع: kelidestan
 

P O U R I A

مدیر مهندسی شیمی مدیر تالار گفتگوی آزاد
مدیر تالار
کوکی ها (cookie) در PHP

حتما تا به امروز، نام کوکی (cookie) به گوشتان خورده است. مثلا به شما گفته اند که لطفا کوکی های مرورگر اینترنت خود را پاک کنید. این کوکی ها، توسط سایت های مختلف، در کامپیوتر شما ذخیره می شوند. هدف اصلی از کوکی ها این است که یک سایت، برخی اطلاعات مورد نیاز را تنها یک بار به کامپیوتر شما ارسال نماید و دیگر نیازی نباشد که هر بار با مراجعه به سایت، آن بخش از اطلاعات را دوباره از سایت دریافت کنید. مثلا فرض کنید شما به انجمن سایت کلیدستان بروید و ادیتور انجمن دارای حجم 600 کیلوبایت باشد، اگر قرار باشد در هر صفحه ای که ادیتور است، شما دوباره این 600 کیلوبایت اطلاعات را دریافت کنید، عملا سرعت دسترسی شما به مطالب انجمن بسیار کند خواهد شد. اما انجمن با استفاده از کوکی، تنها یک بار، اطلاعات حجیم مربوط به ادیتور را در کامپیوتر شما (به صورت کوکی) قرار می دهد و هر بار که شما به انجمن سر بزنید، از این اطلاعات استفاده خواهد شد.

هر کوکی (cookie) یک مدت اعتبار دارد، زیرا اگر اینگونه نباشد، ممکن است کاربران قدیمی سایت، همیشه آن را به شیوه های قدیمی ببینند و از تغییرات جدید مطلع نشوند. برای ساخت یک کوکی در کامپیوتر کاربر بازدیدکننده از سایت، دستور setcookie در PHP به کار می رود. شیوه کلی استفاده از این دستور، به صورت زیر می باشد :
کد:
[COLOR=#000000][FONT=Tahoma][FONT=monospace][COLOR=#990000]setcookie[/COLOR][COLOR=#009900]([/COLOR][COLOR=#000088]$name[/COLOR][COLOR=#339933],[/COLOR][COLOR=#000088]$value[/COLOR][COLOR=#339933],[/COLOR][COLOR=#000088]$expire[/COLOR][COLOR=#009900])[/COLOR][COLOR=#339933];[/COLOR][/FONT]
[/FONT][/COLOR]
که در آن، $name برابر نام کوکی ، $value برابر مقدار کوکی و $expire برابر مقدار زمان اعتبار کوکی می باشد.

به مثال زیر توجه کنید :

[h=4]مثال :[/h]فرض کنید که کد زیر را اجرا نماییم :
کد:
[COLOR=#000000][FONT=Tahoma][FONT=monospace][B]<?php[/B]
[COLOR=#990000]setcookie[/COLOR][COLOR=#009900]([/COLOR][COLOR=#0000FF]'my_cookie'[/COLOR][COLOR=#339933],[/COLOR][COLOR=#CC66CC]110[/COLOR][COLOR=#339933],[/COLOR][COLOR=#990000]time[/COLOR][COLOR=#009900]([/COLOR][COLOR=#009900])[/COLOR][COLOR=#339933]+[/COLOR][COLOR=#009900]([/COLOR][COLOR=#CC66CC]60[/COLOR][COLOR=#339933]*[/COLOR][COLOR=#CC66CC]60[/COLOR][COLOR=#339933]*[/COLOR][COLOR=#CC66CC]24[/COLOR][COLOR=#339933]*[/COLOR][COLOR=#CC66CC]7[/COLOR][COLOR=#009900])[/COLOR][COLOR=#009900])[/COLOR][COLOR=#339933];[/COLOR]
[B]?>[/B][/FONT]
[/FONT][/COLOR]
برای مدت زمان اعتبار، ابتدا با تابع time ، مقدار زمان فعلی را به دست آورده ایم، سپس میزان زمان اعتبار از اکنون تا زمان مورد نظرمان را بر حسب ثانیه نوشته ایم (7 روز ضرب در 24 ساعت ضرب در 60 دقیقه ضرب در 60 ثانیه، بنابراین مدت اعتبار کوکی، برابر یک هفته می باشد).

[h=4]نتیجه :[/h]برای اطمینان از عملکرد صحیح کد، باید به بخش تنظیمات مرورگر خود بروید. سپس در آن، به دنبال بخش کوکی ها جستجو کنید. معمولا مرورگرها این اجازه را به شما می دهند که لیست کوکی ها را ببینید. مثلا برای من، در مرورگر opera و پس از اجرا کدهای بالا، در لیست کوکی ها، عنوان زیر وجود دارد :
کد:
[COLOR=#000000][FONT=Tahoma][FONT=monospace]localhost[/FONT]
[/FONT][/COLOR]
این عنوان، به این دلیل است که من کدهای بالا را در هاست محلی کامپیوتر خود (localhost) اجرا کرده ام. با کلیک روی این عنوان، تعدادی کوکی نمایش داده می شود، که در آنها، مورد زیر نیز وجود دارد :php-1.png
این همان کوکی ساخته شده توسط کد قبلی می باشد.
 

P O U R I A

مدیر مهندسی شیمی مدیر تالار گفتگوی آزاد
مدیر تالار
خواندن کوکی ها (cookie) از کامپیوتر کاربر، در PHP

خواندن کوکی ها (cookie) از کامپیوتر کاربر، در PHP

در مبحثی دیگر، چگونگی قرار دادن کوکی ها (cookie) در کامپیوتر کاربر را شرح دادیم، اکنون می خواهیم آموزش بدهیم که چگونه می توان یک کوکی را که قبلا در کامپیوتر کاربر قرار داده ایم، خوانده و از مقادیر ذخیره شده در آن، استفاده کنیم.

فرض کنید که قبلا کدهای زیر را اجرا کرده باشیم :
کد:
[COLOR=#000000][FONT=Tahoma][FONT=monospace][B]<?php[/B]
[COLOR=#990000]setcookie[/COLOR][COLOR=#009900]([/COLOR][COLOR=#0000FF]'my_cookie'[/COLOR][COLOR=#339933],[/COLOR][COLOR=#CC66CC]110[/COLOR][COLOR=#339933],[/COLOR][COLOR=#990000]time[/COLOR][COLOR=#009900]([/COLOR][COLOR=#009900])[/COLOR][COLOR=#339933]+[/COLOR][COLOR=#009900]([/COLOR][COLOR=#CC66CC]60[/COLOR][COLOR=#339933]*[/COLOR][COLOR=#CC66CC]60[/COLOR][COLOR=#339933]*[/COLOR][COLOR=#CC66CC]24[/COLOR][COLOR=#339933]*[/COLOR][COLOR=#CC66CC]7[/COLOR][COLOR=#009900])[/COLOR][COLOR=#009900])[/COLOR][COLOR=#339933];[/COLOR]
[B]?>[/B][/FONT]
[/FONT][/COLOR]
این کدها باعث می شود که یک کوکی با نام my_cookie و مقدار 110 و با زمان اعتباری برابر یک هفته، در کامپیوتر کاربر ذخیره شود. اکنون برای خواندن این کوکی و چاپ مقدار ذخیره شده در آن، کدهای زیر را می نویسیم :
کد:
[COLOR=#000000][FONT=Tahoma][FONT=monospace][B]<?php[/B]
[COLOR=#000088]$A[/COLOR] [COLOR=#339933]=[/COLOR] [COLOR=#000088]$_COOKIE[/COLOR][COLOR=#009900][[/COLOR][COLOR=#0000FF]'my_cookie'[/COLOR][COLOR=#009900]][/COLOR][COLOR=#339933];[/COLOR]
[COLOR=#B1B100]echo[/COLOR] [COLOR=#000088]$A[/COLOR][COLOR=#339933];[/COLOR]
[B]?>[/B][/FONT]
[/FONT][/COLOR]
متغیر $_COOKIE ، یک متغیر فوق سراسری (superglobal) می باشد.

[h=4]نتیجه :[/h]
کد:
[COLOR=#000000][FONT=Tahoma][FONT=monospace][COLOR=#CC66CC]110[/COLOR][/FONT]
[/FONT][/COLOR]
مشاهده می کنید که مقدار ذخیره شده در کوکی (cookie) نمایش داده شده است.

[h=4]نکته :[/h]باید همیشه در خواندن کوکی ها (cookie) از کامپیوتر کاربر، به این نکته دقت کنیم که ممکن است که کاربر برای اولین بار به سایت یا صفحه موردنظر ما سر زده باشد و بنابراین قبلا این کوکی در کامپیوتر وی ذخیره نشده و اجرای کد بالا، باعث نمایش یک خطا به کاربر می شود. برای جلوگیری از به وجود آمدن خطا، از تابع isset در PHP کمک می گیریم و ابتدا با این تابع، چک می کنیم که آیا کوکی مورد نظر ما، در کامپیوتر کاربر وجود دارد یا خیر. کدهای قبل را به صورت زیر تغییر می دهیم :
کد:
[COLOR=#000000][FONT=Tahoma][FONT=monospace][B]<?php[/B]
[COLOR=#B1B100]if[/COLOR][COLOR=#009900]([/COLOR][COLOR=#990000]isset[/COLOR][COLOR=#009900]([/COLOR][COLOR=#000088]$_COOKIE[/COLOR][COLOR=#009900][[/COLOR][COLOR=#0000FF]'my_cookie'[/COLOR][COLOR=#009900]][/COLOR][COLOR=#009900])[/COLOR][COLOR=#009900])[/COLOR][COLOR=#009900]{[/COLOR]
    [COLOR=#000088]$A[/COLOR] [COLOR=#339933]=[/COLOR] [COLOR=#000088]$_COOKIE[/COLOR][COLOR=#009900][[/COLOR][COLOR=#0000FF]'my_cookie'[/COLOR][COLOR=#009900]][/COLOR][COLOR=#339933];[/COLOR]
    [COLOR=#B1B100]echo[/COLOR] [COLOR=#000088]$A[/COLOR][COLOR=#339933];[/COLOR]
[COLOR=#009900]}[/COLOR]
[B]?>[/B][/FONT]
[/FONT][/COLOR]
[h=4]نتیجه :[/h]
کد:
[COLOR=#000000][FONT=Tahoma][FONT=monospace][COLOR=#CC66CC]110[/COLOR][/FONT]
[/FONT][/COLOR]
 

P O U R I A

مدیر مهندسی شیمی مدیر تالار گفتگوی آزاد
مدیر تالار
حذف کردن کوکی ها (cookie) از کامپیوتر کاربر، در PHP

حذف کردن کوکی ها (cookie) از کامپیوتر کاربر، در PHP

گاهی اوقات، با ایجاد تغییرات جدید در سایت، تصمیم می گیریم که کوکی هایی (cookie) که قبلا توسط سایت ما در کامپیوتر کاربر، ذخیره شده است را پاک کنیم. برای این منظور، نیاز به استفاده از روش پیچیده ای نیست و با کدهایی، مشابه کدهای ساخت کوکی در کامپیوتر کاربر، می توان این کار را انجام داد.

فرض کنید که قبلا کدهای زیر را اجرا کرده باشیم :
کد:
[COLOR=#000000][FONT=Tahoma][FONT=monospace][B]<?php[/B]
[COLOR=#990000]setcookie[/COLOR][COLOR=#009900]([/COLOR][COLOR=#0000FF]'my_cookie'[/COLOR][COLOR=#339933],[/COLOR][COLOR=#CC66CC]110[/COLOR][COLOR=#339933],[/COLOR][COLOR=#990000]time[/COLOR][COLOR=#009900]([/COLOR][COLOR=#009900])[/COLOR][COLOR=#339933]+[/COLOR][COLOR=#009900]([/COLOR][COLOR=#CC66CC]60[/COLOR][COLOR=#339933]*[/COLOR][COLOR=#CC66CC]60[/COLOR][COLOR=#339933]*[/COLOR][COLOR=#CC66CC]24[/COLOR][COLOR=#339933]*[/COLOR][COLOR=#CC66CC]7[/COLOR][COLOR=#009900])[/COLOR][COLOR=#009900])[/COLOR][COLOR=#339933];[/COLOR]
[B]?>[/B][/FONT]
[/FONT][/COLOR]
این کدها باعث می شود که یک کوکی با نام my_cookie و مقدار 110 و با زمان اعتباری برابر یک هفته، در کامپیوتر کاربر ذخیره شود. اکنون قصد داریم که این کوکی (cookie) را از کامپیوتر کاربر حذف کنیم. برای این منظور، مدت زمان اعتبار کوکی را به یک عدد منفی تغییر می دهیم. در واقع کافی است که همان کدهای ساخت کوکی را بنویسیم و تنها علامت مثبت بعد از تابع time را به علامت منفی تغییر بدهیم. بنابراین کدهای زیر را اجرا می کنیم :
کد:
[COLOR=#000000][FONT=Tahoma][FONT=monospace][B]<?php[/B]
[COLOR=#990000]setcookie[/COLOR][COLOR=#009900]([/COLOR][COLOR=#0000FF]'my_cookie'[/COLOR][COLOR=#339933],[/COLOR][COLOR=#CC66CC]110[/COLOR][COLOR=#339933],[/COLOR][COLOR=#990000]time[/COLOR][COLOR=#009900]([/COLOR][COLOR=#009900])[/COLOR][COLOR=#339933]-[/COLOR][COLOR=#009900]([/COLOR][COLOR=#CC66CC]60[/COLOR][COLOR=#339933]*[/COLOR][COLOR=#CC66CC]60[/COLOR][COLOR=#339933]*[/COLOR][COLOR=#CC66CC]24[/COLOR][COLOR=#339933]*[/COLOR][COLOR=#CC66CC]7[/COLOR][COLOR=#009900])[/COLOR][COLOR=#009900])[/COLOR][COLOR=#339933];[/COLOR]
[B]?>[/B][/FONT]
[/FONT][/COLOR]
بنابراین کوکی (cookie) مورد نظر، از کامپیوتر کاربر، حذف می شود.
 

Similar threads

بالا