PHP setcookie() Function












❮ مرجع شبکه PHP



مثال


مثال زیر یک کوکی به نام "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