2016-03-08 3 views
0

Я работаю на localhost. У меня уже есть файл cookie с двумя ключами. Я хочу сохранить третий ключ, но я не смог сохранить этот третий ключ внутри файла cookie. Он всегда возвращает null. Также этот новый ключ недоступен после обновления страницы. Вот мой кодPHP setcookie возвращает null

$cart_data = array ('1','2'); 
$test = setcookie('user_cart', serialize($cart_data), time() + (60 * 20),'/',false,false,false); 
var_dump($test); 
die; 

// Проверка вывода следующим образом. (Этот код - в другом файле)

if(isset($_COOKIE['user_cart'])){ 
echo '<pre>'; 
print_r($_COOKIE); 
die; 
} 
+3

Вы не можете установить массив в качестве файла cookie. Попробуйте сериализовать его – Mikpa

+0

@Mikpa, попробовал сериализацию, получил логическое значение true, но не получил этот ключ внутри $ _COOKIE. –

+0

Показать код – Mikpa

ответ

0

Это было мое плохо !. Прежде всего, вам нужно сериализовать массив, если вы хотите сохранить массив в cookie. Во-вторых, проверьте, не превышает ли размер cookie (имя + значение + время истечения) не более 4 КБ. Таким образом, вы можете проверить размер печенья:

$cookie_length = strlen(serialize($cart_data)); 

Предложение: Не добавляйте огромные данные в куки. потому что всякий раз, когда он превышает лимит, он перезаписывает предыдущие сохраненные данные.