ورود / ثبت نام سبد خرید 0
کوکی ها در php فایل های متنی هستند که در کامپیوتر مقصد یا کاربر ( client side ) ذخیره میشوند که برای اهداف بعدی نگهداری میشوند.
زبان php بطور شفاف از کوکی ها پشتیبانی میکند .
برای ساخت و استفاده از کوکی ها اتفاقات زیر به ترتیب انجام میگیرد:
در این درس یاد میگیریم چطور کوکی ایجاد کنیم ، از کوکی ها استفاده کنیم و آنها را پاک کنیم .
کوکی ها در پی اچ پی معمولا در header پروتکل HTTP قرار میگیرند . یک اسکریپت php که از کوکی ها استفاده میکند و آنها را ایجاد میکند باید در هدر محتوای مثل کدهای زیر را قرار دهد :
HTTP/1.1 200 OK Date: Fri, 04 Feb 2000 21:03:38 GMT Server: Apache/1.3.9 (UNIX) PHP/4.0b3 Set-Cookie: name=xyz; expires=Friday, 04-Feb-07 22:03:38 GMT; path=/; domain=tutorialspoint.com Connection: close Content-Type: text/htmlHTTP/1.1 200 OK Date: Fri, 04 Feb 2000 21:03:38 GMT Server: Apache/1.3.9 (UNIX) PHP/4.0b3 Set-Cookie: name=xyz; expires=Friday, 04-Feb-07 22:03:38 GMT; path=/; domain=tutorialspoint.com Connection: close Content-Type: text/html
همانطور که میبینید بخش Set-Cookie از چند نام / مقدار تشکیل شده است . یک زمان به GMT یک مسیر و یک دامنه .
نام و مقدار ها بصورت URL encoded رمزگذاری میشوند .
مقدار expires به مرورگر یک دستورالعملی میدهد تا مرورگر مطلع شود چه زمانی باید کوکی ها را فراموش کند .
اگر مرورگر تنظیم شده باشد تا کوکی ها را ذخیره کند ، تا زمانی که آنها منقضی نشده باشند آنها را ذخیره و نگهداری خواهد کرد .
کاربر اگر به هر یک از صفحات سایت درخواست ارسال کند و در کوکی ها مقدار domain با آن برابر باشد دوباره آن کوکی ها به سمت سرور ارسال میشود .
مقدار header مرورگر باید مشابه زیر باشد :
GET / HTTP/1.0 Connection: Keep-Alive User-Agent: Mozilla/4.6 (X11; I; Linux 2.2.6-15apmac ppc) Host: zink.demon.co.uk:1126 Accept: image/gif, */* Accept-Encoding: gzip Accept-Language: en Accept-Charset: iso-8859-1,*,utf-8 Cookie: name=xyz
سپس اسکریپت php به کوکی ها دسترسی خواهد داشت و برای دسترسی به کوکی ها باید از متغیرهای محیطی php که $_COOKIE or $HTTP_COOKIE_VARS[] هستند استفاده کرد .
زبان برنامه نویسی php یک تابع به نام setcookie دارد که کوکی ها را ایجاد و تنظیم میکند . این تابع شش عدد پارامتر ورودی دارد و باید قبل از تگ <html> استفاده شود .
سینتکس استفاده از این تابع :
setcookie(name, value, expire, path, domain, security);
در زیر جزئیات تمام آرگومان های ورودی تابع setcookie آمده است :
در مثال زیر یک کوکی میسازیم که name و age را نگهداری میکند این کوکی بعد از یک ساعت منقضی خواهد شد :
<?php setcookie("name", "John Watkin", time()+3600, "/","", 0); setcookie("age", "36", time()+3600, "/", "", 0); ?> <html> <head> <title>Setting Cookies with PHP</title> </head> <body> <?php echo "Set Cookies"?> </body> </html>
زبان php راه های مختلفی را برای دسترسی به کوکی ها در اختیار شما میگذارد . بهترین و راحت ترین روش برای دسترسی به کوکی ها استفاده از دو متغیر $_COOKIE یا $HTTP_COOKIE_VARS میباشد .
در مثال زیر به تمام کوکی هایی که در مثال بالا ایجاد کردیم میتوانیم دسترسی داشته باشیم :
<html> <head> <title>Accessing Cookies with PHP</title> </head> <body> <?php echo $_COOKIE["name"]. "<br />"; /* is equivalent to */ echo $HTTP_COOKIE_VARS["name"]. "<br />"; echo $_COOKIE["age"] . "<br />"; /* is equivalent to */ echo $HTTP_COOKIE_VARS["age"] . "<br />"; ?> </body> </html>
برای اینکه مطمئن شوید یک کوکی ایجاد و مقدار دهی شده است یا نه میتوانید از تابع isset استفاده کنید که در درس های پیش تر هم درباره ی این تابع صحبت کردیم .
مثال :
<html> <head> <title>Accessing Cookies with PHP</title> </head> <body> <?php if( isset($_COOKIE["name"])) echo "Welcome " . $_COOKIE["name"] . "<br />"; else echo "Sorry... Not recognized" . "<br />"; ?> </body> </html>
در زبان برنامه نویسی php بصورت رسمی برای پاک کردن یک کوکی شما باید نام آن کوکی را با تابع setcookie صدا بزنید ولی این روش همیشه کار نمیکند و نباید به این روش به تنهائی تکیه کرد .
بهترین روش این است که یک تاریخ گذشته برای این کوکی ها در نظر بگیریم تا پاک شوند :
<?php setcookie( "name", "", time()- 60, "/","", 0); setcookie( "age", "", time()- 60, "/","", 0); ?> <html> <head> <title>Deleting Cookies with PHP</title> </head> <body> <?php echo "Deleted Cookies" ?> </body> </html>
نکته : شما در حال یادگیری زبان php هستید. حتما در نظر داشته باشید که اکثر فریمورک های زبان پی اچ پی از الگوی MVC استفاده میکنند و هر پروژه ای که با php اجرا شود ملزم است که یک اصولی مثل mvc را رعایت کند. پس بحث mvc در php را حتما در نظر داشته باشید.
اتمام درس
محصولات برگزیده مناسب شما