مثال
مثال زیر یک کوکی به نام "user" ایجاد می کند
با مقدار "جان دو". کوکی پس از 30 روز منقضی می شود (86400 * 30).
"/" به این معنی است که کوکی در کل وب سایت موجود است (در غیر این صورت، دایرکتوری مورد نظر خود را انتخاب کنید).
سپس مقدار کوکی "user" را (با استفاده از متغیر سراسری) بازیابی می کنیم
$_COOKIE). ما همچنین از تابع isset() برای اینکه بفهمیم کوکی تنظیم شده است یا نه استفاده می کنیم:
$cookie_name = "user";
$cookie_value = "John Doe";
setcookie($cookie_name, $cookie_value, time() + ( 86400 * 30)، "/"); // 86400 = 1 روز
?>
if(!isset($_COOKIE[$cookie_name] )) {
echo "کوکی با نام "" . $cookie_name . "" تنظیم نشده است!"؛
} else {
بازتاب "کوکی " . $cookie_name . "' تنظیم شده است!
";
echo "Value is: " . $_COOKIE[$cookie_name];
?>
این را خودتان امتحان کنید »
تعریف و استفاده
تابع setcookie() یک کوکی را برای ارسال به همراه بقیه هدرهای HTTP تعریف می کند.
از کوکی اغلب برای شناسایی کاربر استفاده می شود. کوکی یک فایل کوچک است که
سرور بر روی کامپیوتر کاربر تعبیه می شود. هر بار که همان کامپیوتر الف را درخواست می کند
صفحه با مرورگر، کوکی را نیز ارسال می کند. با PHP، هم می توانید مقادیر کوکی را ایجاد و هم بازیابی کنید.
نام کوکی به طور خودکار به یک متغیر از آن اختصاص داده می شود
نام. به عنوان مثال، اگر یک کوکی با نام "user" ارسال شده باشد، یک متغیر است
به طور خودکار به نام $user ایجاد می شود که حاوی مقدار کوکی است.
توجه: تابع setcookie() باید قبل از برچسب.
توجه: مقدار کوکی به طور خودکار زمانی که URL رمزگذاری می شود
ارسال کوکی، و به صورت خودکار پس از دریافت رمزگشایی می شود (برای جلوگیری از
کدگذاری URL، به جای آن از setrawcookie() استفاده کنید.
نحو
setcookie(نام، مقدار، انقضا، مسیر، دامنه، امن، http only);
مقادیر پارامتر
| پارامتر | توضیح |
|---|---|
| نام | لازم است. نام کوکی | را مشخص می کند
| مقدار | اختیاری. مقدار کوکی | را مشخص می کند
| انقضا | اختیاری. زمان منقضی شدن کوکی را مشخص می کند. مقدار: time()+86400*30، کوکی را در 30 روز منقضی می کند. اگر این پارامتر حذف شود یا روی 0 تنظیم شود، کوکی در پایان جلسه (زمانی که مرورگر بسته می شود) منقضی می شود. پیش فرض 0 | است
| مسیر | اختیاری. مسیر سرور کوکی را مشخص می کند. اگر روی "/" تنظیم شود، کوکی در کل دامنه در دسترس خواهد بود. اگر روی "/php/" تنظیم شود، کوکی فقط در دایرکتوری php و همه زیرشاخه های php در دسترس خواهد بود. مقدار پیشفرض دایرکتوری فعلی است که کوکی در آن تنظیم میشود |
| دامنه | اختیاری. نام دامنه کوکی را مشخص می کند. برای در دسترس قرار دادن کوکی در همه زیر دامنه های example.com، دامنه را روی "example.com" تنظیم کنید. تنظیم آن به www.example.com باعث می شود کوکی فقط در زیر دامنه www در دسترس باشد |
| ایمن | اختیاری. مشخص می کند که آیا کوکی فقط باید از طریق یک اتصال امن HTTPS منتقل شود یا خیر. TRUE نشان می دهد که کوکی تنها در صورتی تنظیم می شود که یک اتصال امن وجود داشته باشد. پیش فرض FALSE | است
| فقط http | اختیاری. اگر روی TRUE تنظیم شود، کوکی فقط از طریق پروتکل HTTP قابل دسترسی خواهد بود (کوکی با زبان های اسکریپت قابل دسترسی نخواهد بود). این تنظیم می تواند به کاهش سرقت هویت از طریق حملات XSS کمک کند. پیش فرض FALSE | است
جزئیات فنی
| مقدار بازگشتی: | در مورد موفقیت درست است. FALSE در صورت شکست |
|---|---|
| نسخه PHP: | 4+ |
| تغییر PHP: | PHP 5.5 - یک ویژگی Max-Age در هدر Set-Cookie ارسال شده به مشتری گنجانده شد PHP 5.2 - پارامتر httponly اضافه شد |
نمونه های بیشتر
مثال
چند تاریخ انقضا برای کوکی ها:
$value = "Hello world!";
// کوکی با بسته شدن مرورگر منقضی می شود
setcookie("myCookie", $value);
// کوکی 1 ساعت دیگر منقضی می شود
setcookie("myCookie", $value, time() + 3600);
// کوکی 1 ساعت دیگر منقضی می شود و فقط در دسترس خواهد بود
// در دایرکتوری php + همه زیر شاخه های php
setcookie("myCookie", $value, time() + 3600, "/php/");
?>
...برخی کد...
این را خودتان امتحان کنید »
مثال
برای تغییر یک کوکی، کافی است (دوباره) کوکی را با استفاده از تابع setcookie() تنظیم کنید:
$cookie_name = "user";
$cookie_value = "Alex Porter";
setcookie($cookie_name, $cookie_value, time() + (86400 * 30), "/");
?>
< ;?php
if(!isset($_COOKIE[$cookie_name])) {
echo "کوکی با نام "" . $cookie_name . "" تنظیم نشده است!"؛
} else {
بازتاب "کوکی " . $cookie_name . "' تنظیم شده است!
";
echo "Value is: " . $_COOKIE[$cookie_name];
?>
این را خودتان امتحان کنید »
مثال
برای حذف یک کوکی، از تابع setcookie() با تاریخ انقضا در گذشته استفاده کنید:
// تاریخ انقضا را روی یک ساعت قبل تنظیم کنید
setcookie("user", "", time() - 3600);
?>
< br>
echo "کاربر کوکی حذف شده است.";
?>
این را خودتان امتحان کنید »
مثال
یک اسکریپت کوچک ایجاد کنید که بررسی کند کوکی ها فعال هستند یا خیر. ابتدا سعی کنید یک کوکی آزمایشی با تابع setcookie() ایجاد کنید، سپس متغیر آرایه $_COOKIE را بشمارید:
setcookie("test_cookie", "test", time() + 3600, '/');
?>
if(count($_COOKIE) > 0) {
echo "کوکیها فعال هستند.";
} else {
echo "کوکیها غیرفعال هستند."؛
}
?>
این را خودتان امتحان کنید »
❮ مرجع شبکه PHP