PHP "setrawcookie" almak için nasıl

1 Cevap php

The IETF recommends using base64 encoding for binary cookie values: http://tools.ietf.org/html/draft-ietf-httpstate-cookie-07

Yani setrawcookie(..) kullanın ama $_COOKIE[..] hala maçlar URL kod çözme kullanır çünkü geri çerez almak için hangi değişken bilmiyorum setcookie(..). Bu çıktıda "" ile "+" yerine geçer.

<?php

var_dump($_COOKIE['TEST']);
$binary_string = "";
for($index = 0; $index < 256; $index++){
    $binary_string .= chr($index);
}
$encoded_data = base64_encode($binary_string);
var_dump($encoded_data);
$cookie_set = setrawcookie('TEST', $encoded_data, time() + 3600);
?>

1 Cevap

Sen izin karakterler (cookie set olmayacak) ile çerez göndermeye çalışırken setcookie instead setrawcookie, bu şekilde durumu önleyebilirsiniz Normal kullanmak gerekir ve o [(2) {değer bulunuyor }] dizi kullanışlı olacaktır.

Eğer çiğ yöntemi ısrar ederseniz, kurabiye $_SERVER['HTTP_COOKIE'] . This will be string formatted like key1=value1; key2=value2 tarayıcı ile göndermek bulabilirsiniz. Dizideki almak için tek yolu basit patlayan taş yapmaktır:

foreach(explode('; ',$_SERVER['HTTP_COOKIE']) as $rawcookie)
{
    list($k,$v) = explode('=',$rawcookie, 2);
    $_RAWCOOKIE[$k] = $v;
}

var_dump($_RAWCOOKIE);