Сериализация cookie

Denlig

Новичок
Сериализация cookie

Я создаю массив, его сериализую, записываю в куки, потом пытаюсь прочитатьвот весь файл.
Пишет:
Warning: Cannot modify header information - headers already sent by (output started at....
строка где setcookie("basket",$new_arra);
PHP:
for($i = 1; $i < 10; $i++)
		$arra[$i] = "value_".$i;
		
	//unset($arra[4]);
		
	$new_arra = serialize($arra);
	setcookie("basket",$new_arra);
	print("<br> arr: ".$new_arra);
	
	
	$temp = $_COOKIE["basket"];
	$temp = unserialize($temp);
	
	for($i = 1; $i < 10; $i++)
		print("<br>temp[$i] = ".$temp[$i]);
 

Denlig

Новичок
ну ладно, с ошибкой Cannot modify header information

Ну а почему все равно не работает? посмотрите пожалуйста у себя.
1. я задаю массив
2. сериализую
3. сериализацию записываю в куки
4. читаю из кук
5. рассериализовываю
6. пытаюсь вывести и понимаю, что рассериализация не прошла...=(
 

Crazy

Developer
Код:
$new_arra = serialize($arra); 
setcookie("basket",$new_arra);
print("<br> arr: ".$new_arra);
    
    
$temp = $_COOKIE["basket"];
$temp = unserialize($temp);
Я надеюсь, это два разных файла?
 

Denlig

Новичок
Crazy, нет =))) ну это так... для обучения

Оказывается, после того как мы получили куки, в них откуда не возьмись появились символы "\\", поэтому корректная рассериалиция не возможно, поэтому их надо удалить:
$temp = str_replace("\\", "",$temp);
вот правильная реализация....:
for($i = 1; $i < 10; $i++)
$arra[$i] = "value_".$i;

unset($arra[4]);

$new_arra = serialize($arra);
setcookie("basket",$new_arra);
print("<br> arr: ".$new_arra);

$temp = $_COOKIE["basket"];
print("<br>".$temp);
$temp = str_replace("\\", "",$temp);
print("<br>".$temp);
$temp_new = unserialize($temp);

for($i = 1; $i < 10; $i++)
print("<br>temp[$i] = ".$temp_new[$i]);

print("<br>".sizeof($temp_new));
 

Фанат

oncle terrible
Команда форума
Denlig
Молодец.
Многие посетители не догадались бы посмотреть в приходящие данные. А ты даже самостоятельно и удалил. а это гораздо ценнее, чем знать готовую функцию (хотя пользоваться стоит, все же, ей)
У тебя очень хорошо получается. Продолжай в том же духе.
 
Сверху