Я пытаюсь сохранить массив для cookie, но получаю следующую ошибку:
Предупреждение: setcookie() ожидает, что параметр 2 будет строкой, задан массив
Как я могу на самом деле поместить массив в файл cookie?
EDIT2: я отредактировал код, и теперь он хранит массив файлов cookie, но у меня возникла ОГРОМНАЯ проблема. Он не переопределяет значения из первого представления, если размер второго массива меньше.
Пример. первый массив отправки [1206,0402], второй массив отправки [0402]. но тогда получается [0402,0402], что неверно.
function cuukko($var,$val){
setcookie($var,$val,time()+60*60*24*365);
}
function preg_DW($var){
global $isset;
if ($isset&&is_array($_POST[$var])&&sizeof($_POST[$var])>0){
$C=0;
foreach ($_POST[$var] as $key => $value) {
$val[$C]=trim(preg_replace('/\s\s+/',' ',preg_replace('/[^\d\w\s\(\)\[\]]+/','',$value)));
cuukko($var."[".$C."]",$val[$C]);
$C++;
}
} elseif (isset($_COOKIE[$var])) $val=$_COOKIE[$var];
return (sizeof($val)>0)?$val:array();
}
Редактировать 3: Вопрос решен. Сейчас используется код:
function cuukko($var,$val){
setcookie($var,$val,time()+60*60*24*365);
}
function preg_DW($var){
global $isset;
if ($isset){
$C=0;
if (is_array($_COOKIE[$var]))
foreach($_COOKIE[$var] as $key =>$trash)
setcookie("{$var}[".$key.']', '', time()-60*60*24*365);
if (is_array($_POST[$var]))
foreach ($_POST[$var] as $key => $value) {
$val[$C]=trim(preg_replace('/\s\s+/',' ',preg_replace('/[^\d\w\s\(\)\[\]]+/','',$value)));
cuukko($var."[".$C."]",$val[$C]);
$C++;
}
} elseif (isset($_COOKIE[$var])) $val=$_COOKIE[$var];
return (sizeof($val)>0)?$val:array();
}