Решил реализовать возможность для пользователей посмотреть на каких страницах сайта они побывали: PHP: <?php $uri=$_SERVER['REQUEST_URI']; //Если кукисы есть if (isset($_COOKIE['history'])) { //Получаем массив кукисов $ArrayCookies=$_COOKIE['history']; //если элементов больше 5 то удаляем 1й элемент if (count($ArrayCookies)>5) array_pop($ArrayCookies); array_unshift($ArrayCookies, "".$uri.""); //На всякий случай удаляем повторяющиеся элементы, что бы небыло повторов array_unique($ArrayCookies); //Записываем массив обратно в кукисы foreach ($ArrayCookies as $i => $value) { setcookie("history[".$i."]", $value,time()+(1*24*60*60)); } } else { //Если кукисов нет, то записываем наш id под номером 1 setcookie("history[1]", "".$uri."",time()+(1*24*60*60)); } //Выводим содержимое кукисов if (isset($_COOKIE['history'])) { foreach ($_COOKIE['history'] as $i => $value) { echo "$i : $value <br>"; } } ?> Все вроде работает, но столкнулся с проблемой - строка array_unique($ArrayCookies); не удаляет дубли. В чем может быть дело?
покажи var_export двух массивов до и после array_unique, только копируй из исходного кода браузера вывод var_export, чтобы форматирование сохранилось
вывод var_export ($ArrayCookies); перед array_unique: array ( 0 => '/proba.php', 1 => '/proba.php', 2 => '/proba.php', 3 => '/proba.php', 4 => '/proba.php', 5 => '/proba.php', ) после array_unique: array ( 0 => '/proba.php', 1 => '/proba.php', 2 => '/proba.php', 3 => '/proba.php', 4 => '/proba.php', 5 => '/proba.php', ) Обновил несколько раз страничку proba.php, чтобы посмотреть удаляются ли дубли. Еще как добавляются (
ошибка была в следующем: вместо Код (Text): array_unique($ArrayCookies); надо было Код (Text): $ArrayCookies=array_unique($ArrayCookies);