PHP:کوکی‌ها در PHP

از ویکی کد
پرش به ناوبری پرش به جستجو

یک کوکی چیست؟

یک کوکی اغلب برای شناسایی یک کاربر استفاده می‌شود. یک کوکی یک فایل کوچک است که سرور آن را روی کامپیوتر کاربر ایجاد می‌کند. هر بار که یک رایانه مشترک یک صفحه را با یک مرورگر درخواست می‌کند، فایل کوکی را نیز ارسال خواهد کرد. با PHP، شما می‌توانید هر دوی این کارها یعنی ایجاد و بازیابی مقادیر کوکی را انجام دهید. [۱]

ساخت کوکی‌ها با PHP

یک کوکی به وسیله تابع setcookie() ساخته می‌شود.

شیوه نوشتار

setcookie(name, value, expire, path, domain, secure, httponly);


تنها پارامتر name اجباری است. تمامی پارامترها اختیاری هستند.

ساخت/بازیابی یک کوکی در PHP

مثال زیر یک کوکی به نام "user" با مقدار "John Doe" می‌سازد. این کوکی بعد از ۳۰ روز (۸۶۴۰۰ * ۳۰) منقضی می‌شود. کاراکتر / به معنای این است که کوکی درون وب سایت جاری در دسترس است (در غیراینصورت مسیری را که ترجیح می‌دهید را انتخاب کنید)

ما سپس مقدار کوکی "user" را (به وسیله متغیر سراسری $_COOKIE) بازیابی می‌کنیم. ما همچنین از تابع isset() برای اینکه بفهمیم کوکی تنظیم شده‌است یا نه، استفاده می‌کنیم.

مثال

 1 <?php
 2 $cookie_name = "user";
 3 $cookie_value = "John Doe";
 4 setcookie($cookie_name, $cookie_value, time() + (86400 * 30), "/"); // 86400 = 1 day
 5 ?>
 6 <html>
 7 <body>
 8 
 9 <?php
10 if(!isset($_COOKIE[$cookie_name])) {
11     echo "Cookie named '" . $cookie_name . "' is not set!";
12 } else {
13     echo "Cookie '" . $cookie_name . "' is set!<br>";
14     echo "Value is: " . $_COOKIE[$cookie_name];
15 }
16 ?>
17 
18 </body>
19 </html>

نکته : مقدار کوکی به صورت URLEncoded و خودکار هنگام ارسال کوکی رمزنگاری می‌شود، و به صورت خودکار هنگام دریافت (برای جلوگیری از رمزنگاری به صورت URLencoding، از تابع setrawcookie() به جای آن استفاده می‌کنیم) رمزگشایی می‌شود.

ویرایش مقدار یک کوکی

برای ویرایش یک کوکی، تنها کوکی را (یک بار دیگر) با استفاده از تابع setcookie() تعریف کنید:

مثال

 1 <?php
 2 $cookie_name = "user";
 3 $cookie_value = "Alex Porter";
 4 setcookie($cookie_name, $cookie_value, time() + (86400 * 30), "/");
 5 ?>
 6 <html>
 7 <body>
 8 
 9 <?php
10 if(!isset($_COOKIE[$cookie_name])) {
11     echo "Cookie named '" . $cookie_name . "' is not set!";
12 } else {
13     echo "Cookie '" . $cookie_name . "' is set!<br>";
14     echo "Value is: " . $_COOKIE[$cookie_name];
15 }
16 ?>
17 
18 </body>
19 </html>

حذف یک کوکی

برای حذف یک کوکی، از تابع setcookie() به همراه یک تاریخ انقضای گذشته استفاده کنید:

مثال

 1 <?php
 2 // set the expiration date to one hour ago
 3 setcookie("user", "", time() - 3600);
 4 ?>
 5 <html>
 6 <body>
 7 
 8 <?php
 9 echo "Cookie 'user' is deleted.";
10 ?>
11 
12 </body>
13 </html>

بررسی اینکه آیا کوکی‌ها فعال شده‌اند

مثال زیر یک اسکریپت کوچک که بررسی می‌کند آیا کوکی‌ها فعال شده‌اند، ایجاد می‌کند. ابتدا، سعی می‌کند که یک کوکی آزمایشی به وسیله تابع setcookie() ایجاد کند، سپس آرایه $_COOKIE را می‌شمارد:

مثال

 1 <?php
 2 setcookie("test_cookie", "test", time() + 3600, '/');
 3 ?>
 4 <html>
 5 <body>
 6 
 7 <?php
 8 if(count($_COOKIE) > 0) {
 9     echo "Cookies are enabled.";
10 } else {
11     echo "Cookies are disabled.";
12 }
13 ?>
14 
15 </body>
16 </html>

مرجع کامل شبکه در PHP

برای مشاهده یک مرجع کامل از توابع شبکه، به مرجع کامل شبکه در PHP ما مراجعه کنید.

تمرینات PHP

Time2wait.svg ساخت نمونه مثال این بخش در دست اقدام است.

منابع آموزشی