setcookie()

PHP setcookie() funksiyasi

❮ PHP tarmoq ma’lumotnomasi

Misol

Quyidagi misol "John Doe" qiymatiga ega "user" nomli cookie yaratadi. Cookie muddati 30 kundan keyin (86400 * 30) tugaydi. "/" cookie butun veb-saytda mavjud bo‘lishini bildiradi (aks holda, o‘zingiz xohlagan katalogni tanlang).

So‘ngra "user" cookie qiymatini ($_COOKIE global o‘zgaruvchisi yordamida) olamiz. Shuningdek, cookie o‘rnatilganligini bilish uchun isset() funksiyasidan foydalanamiz:

<?php $cookie_name = "user"; $cookie_value = "John Doe"; setcookie($cookie_name, $cookie_value, time() + (86400 * 30), "/"); // 86400 = 1 day ?> <!DOCTYPE html> <html> <body> <?php if(isset($_COOKIE[$cookie_name])) {     echo "Cookie '" . $cookie_name . "' is set!<br>";     echo "Value is: " . $_COOKIE[$cookie_name]; } else {     echo "Cookie named '" . $cookie_name . "' is not set!"; } ?> </body> </html>

ULASHISH

Ta’rif va qo‘llanilishi

setcookie() funksiyasi qolgan HTTP sarlavhalari bilan birga yuboriladigan cookie’ni belgilaydi.

Eslatma: setcookie() funksiyasi <html> tegidan OLDIN kelishi shart, chunki cookie’lar HTTP sarlavhasining bir qismidir.

Cookie nomi avtomatik ravishda xuddi shu nomdagi o‘zgaruvchiga tayinlanadi. Masalan, agar cookie "user" nomi bilan yuborilgan bo‘lsa, cookie qiymatini o‘z ichiga olgan $user nomli o‘zgaruvchi avtomatik yaratiladi.

Cookie qiymatini olish uchun $_COOKIE superglobal o‘zgaruvchisidan foydalaning.

Eslatma: Cookie qiymati cookie yuborilayotganda avtomatik ravishda URL-kodlanadi va qabul qilinganda avtomatik dekodlanadi (URL-kodlashning oldini olish uchun uning o‘rniga setrawcookie() dan foydalaning).

Sintaksis

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

Parametr qiymatlari

Parametr Tavsif
name Majburiy. Cookie nomini belgilaydi
value Ixtiyoriy. Cookie qiymatini belgilaydi
expire Ixtiyoriy. Cookie muddati qachon tugashini belgilaydi. time()+86400*30 qiymati cookie muddatini 30 kundan keyin tugaydigan qilib o‘rnatadi. Agar bu parametr ko‘rsatilmasa yoki 0 ga o‘rnatilsa, cookie muddati seans oxirida (brauzer yopilganda) tugaydi. Standart qiymat: 0
path Ixtiyoriy. Cookie’ning serverdagi yo‘lini belgilaydi. Agar "/" ga o‘rnatilsa, cookie butun domen doirasida mavjud bo‘ladi. Agar "/php/" ga o‘rnatilsa, cookie faqat php katalogi va uning barcha ichki kataloglarida mavjud bo‘ladi. Standart qiymat: cookie o‘rnatilayotgan joriy katalog
domain Ixtiyoriy. Cookie’ning domen nomini belgilaydi. Cookie example.com ning barcha subdomenlarida mavjud bo‘lishi uchun domain ni "example.com" ga o‘rnating. Uni www.example.com ga o‘rnatish cookie’ni faqat www subdomenida mavjud qiladi
secure Ixtiyoriy. Cookie faqat xavfsiz HTTPS ulanishi orqali uzatilishi kerakmi yoki yo‘qligini belgilaydi. TRUE cookie faqat xavfsiz ulanish mavjud bo‘lganda o‘rnatilishini bildiradi. Standart qiymat: FALSE
httponly Ixtiyoriy. Agar TRUE ga o‘rnatilsa, cookie faqat HTTP protokoli orqali mavjud bo‘ladi (skript tillari cookie’ga murojaat qila olmaydi). Bu sozlama XSS hujumlari orqali shaxsiy ma’lumotlar o‘g‘irlanishini kamaytirishga yordam beradi. Standart qiymat: FALSE


Texnik tafsilotlar

Qaytariladigan qiymat: Muvaffaqiyatli bo‘lsa TRUE. Muvaffaqiyatsiz bo‘lsa FALSE
PHP versiyasi: 4+
PHP o‘zgarishlar tarixi: PHP 8.2: Cookie sana formati endi 'D, d M Y H:i:s \G\M\T'. Avval u 'D, d-M-Y H:i:s T' edi

Ko‘proq misollar

Misol

Cookie’lar uchun bir nechta amal qilish muddati:

<?php $name = "user"; $value = "John Doe"; // cookie will expire when the browser close setcookie($name, $value); // cookie will expire in 1 hour setcookie($name, $value, time() + 3600); // cookie will expire in 1 hour, and will only be available // within the php directory + all sub-directories of php setcookie($name, $value, time() + 3600, "/php/"); ?>   <html> <body> ...some code... </body> </html>

Misol

Cookie’ni o‘zgartirish uchun uni setcookie() funksiyasi yordamida shunchaki (qaytadan) o‘rnating:

<?php $cookie_name = "user"; $cookie_value = "Alex Porter"; setcookie($cookie_name, $cookie_value, time() + (86400 * 30), "/"); ?> <html> <body> <?php if(isset($_COOKIE[$cookie_name])) {     echo "Cookie '" . $cookie_name . "' is set!<br>";     echo "Value is: " . $_COOKIE[$cookie_name]; } else {     echo "Cookie named '" . $cookie_name . "' is not set!"; } ?> </body> </html>

Misol

Cookie’ni o‘chirish uchun setcookie() funksiyasini o‘tgan vaqtdagi amal qilish muddati bilan ishlating:

<?php // set the expiration date to one hour ago setcookie("user", "", time() - 3600); ?> <html> <body> <?php echo "Cookie 'user' is deleted."; ?> </body> </html>

Misol

Cookie’lar yoqilganligini tekshiradigan kichik skript yarating. Avval setcookie() funksiyasi yordamida sinov cookie’sini yaratishga harakat qiling, so‘ng $_COOKIE massiv o‘zgaruvchisini sanang:

<?php setcookie("test_cookie", "test", time() + 3600, '/'); ?> <html> <body> <?php if(count($_COOKIE) > 0) {     echo "Cookies are enabled."; } else {     echo "Cookies are disabled."; } ?> </body> </html>

❮ PHP tarmoq ma’lumotnomasi

W3Schools Pathfinder

Yutuqlaringizni kuzating – bu bepul!