Tôi nhận được một mảng như thế nàyPHP cách xâu chuỗi và lưu trữ trong cookie
$ value = {array ('id' => $ id, 'email' => $ email, 'token' => $ token)}
Tôi muốn xâu chuỗi sau đó mã hóa rồi lưu trữ trong "đăng nhập" cookie. Làm thế nào để bạn làm điều đó ? Ngoài ra xin vui lòng cho tôi biết làm thế nào để giải mã và đọc các giá trị được lưu trữ.
Chỉnh sửa:
Tôi đã thử serialize/unserialize, nhưng nó không hoạt động như mong đợi. ví dụ,
$value = serialize(array('id'=>33, 'email'=>'[email protected]', 'token'=>'e9aa0966773d68e0fbf9cb21fc2877b4'));
echo $value; //a:3:{s:2:"id";i:33;s:5:"email";s:20:"[email protected]";s:5:"token";s:32:"e9aa0966773d68e0fbf9cb21fc2877b4";}
Nhưng khi giá trị đi đến cookie, nó trông như thế này
a%3A3%3A%7Bs%3A2%3A%22id%22%3Bs%3A1%3A%226%22%3Bs%3A5%3A%22email%22%3Bs%3A20%3A%22craigcosmo%40gmail.com%22%3Bs%3A5%3A%22token%22%3Bs%3A32%3A%22e9aa0966773d68e0fbf9cb21fc2877b4%22%3B%7D
Cookie sẽ không bao giờ là văn bản thuần túy. Lý do là cách nó được lưu trữ trong tiêu đề HTTP. Tiêu đề 'Cookie:' sử dụng các ký tự như dấu hai chấm và dấu chấm phẩy cho các dấu phân cách, do đó chúng cần được thoát ra (PHP về cơ bản lấy giá trị của cookie và thực hiện một [url_encode] (http://php.net/manual/en/function. urlencode.php) trên nó trước khi xuất nó cho khách hàng) –
để đọc giá trị cookie tôi phải url_decode đầu tiên? –
trong url_decode php sẽ xảy ra tự động khi nó đang xây dựng superglobal $ _COOKIE. –