2016-01-06 2 views
-1

У меня есть печенье массива, который я хочу установить на Чиленто браузерах, но SetCookie не кажется work.I есть использовать печенье инспектора по хрому, чтобы прийти к такому выводуSetCookie из массива

$cookies = json_encode($cookies); 
var_dump($cookies); 
setcookie("test", $cookies , 0 , '/' , 'anotherdomain.com'); 

var_dump результат

string(246) "{"PHPSESSID":"6a6326e66daf90c61656c089165bf9af","__ntt":"deleted","first_visit":"1452068874","ref_code":"__default__","usertype":"Paid-User","marketing":"{\"user_cmp\":\"\",\"user_label\":\"\"}","localization":"{\"locale\":\"en\",\"db\":\"us\"}"}" cookie set 

Edit: мне нужно положить var_dump после множества печенья и для простоты я удалил другой домен в наборе печенья

Теперь код работает s хорошо, но это не совсем то, что я intended.I хочу установить имя куки PHPSESSID со значением 6a6326e66daf90c61656c089165bf9af .Similar я хочу создать печенье и установить их значение для каждого элемента в массиве

+3

вы 'var_dump' ING, прежде чем вы на самом деле установить куки. –

+0

@Prasanna Sundar да – user2650277

+1

Вы не должны. Куки-файлы являются частью HTTP-заголовка и должны быть отправлены перед любым выходом. PHP не отправляет какой-либо заголовок после отправки первого байта вывода. –

ответ

1

Создать печенье и установить их значение для каждого элемента в массиве:

foreach($cookies as $name=>$val) { 
    setcookie($name, $val , 0 , '/' , 'anotherdomain.com'); 
} 

EDIT:

Просто понял ваш $cookies многомерный массив. Вы должны json_encode каждое отдельное значение:

foreach($cookies as $name=>$val) { 
    setcookie($name, is_scalar($val)?$val:json_encode($val) , 0 , '/' , 'anotherdomain.com'); 
} 

и json_decode их обратно, когда вы его используете:

$marketing = json_decode($_COOKIE['marketing']); 
+0

По некоторым причинам он не работает здесь ... если я положил 'echo $ name' после setcookie, он выглядит пустой. – user2650277

+0

Опять же, не выводите ничего перед отправкой всех заголовков. Первые 'echo',' var_dump' или любой байт вне '

+0

Ах, а не 'json_encode' куки. '$ cookies' в ответе - это массив. –