У меня проблема, когда настройка cookie работает отлично в chrome, но не в IE или firefox. Все браузеры являются текущей версией, и я нахожусь на машине Windows 8. Я пытаюсь установить cookie, который длится год.Настройка Cookie через PHP работает в Chrome, но не в Firefox или IE
Я могу проверить, что IE и firefox получают другие файлы cookie с моего сайта, созданные другими плагинами и сторонними службами, но он просто не хочет принимать cookie, который я пытаюсь установить.
Через firebug в Firefox я попытался просмотреть отклоненные файлы cookie, но ни один из них не указан, и это похоже на то, что мой cookie просто не хочет работать за пределами хрома.
Этот код находится в файле functions.php внутри моего WordPress сайте:
add_action('init', 'visitor_cookie');
function visitor_cookie() {
if (!isset($_COOKIE['returning_visit'])) {
$traffic_type = 'hd';
$timestring = microtime();
$pieces = explode(" ", substr($timestring, 2));
$pieces[0] = "1".substr($pieces[0],0,3);
$visitor_id = $traffic_type.dechex($pieces[1]) . dechex($pieces[0]);
$expire = time()+60*60*24*360;
$path = '/';
$domain = parse_url(get_option('siteurl'), PHP_URL_HOST);
setcookie(
'returning_visit',
$visitor_id,
$expire,
$path,
$domain
);
}
}
Примечания:
- Как отметить мой домен в настоящее время development.mydomain.com, который будет переместить в mydomain.com
- Это не на локальном хосте/сервере, его на хостинговой компании
- Этот файл cookie должен быть vailable на всем моем сайте.
- дата истечения срока действия Cookie устанавливается на один год
В дополнение к просмотру куки в браузере, я также использовал этот код для проверки куки, который снова показал выход в хроме, но никакой другой браузер.
<?php echo "'".$_COOKIE['returning_visit']."'"; ?>
UPDATE
Вопрос заключается в куки устанавливается только при входе в систему как администратор. Файл cookie действительно установлен. Я создал вопрос более специфичные для WordPress:
Решение
Вопрос был мой хозяин кэширования страниц. Требуется, чтобы разгрузить страницы для правильного запуска PHP-кода. Кэширование было отключено для админов, поэтому я получил cookie как администратор, а не обычный пользователь.
Где вы тестирование, чтобы увидеть, если куки установлен? Вы не можете проверить файл cookie на той же загрузке, что и тот, где вы установили его в – Machavity
. Я перехожу в область настроек браузеров туда, где отображаются файлы cookie. Перед проверкой просматривайте веб-сайт на несколько страниц. Я также использую firebug для и инструменты IE для проверки файлов cookie. Я также использую инструменты разработчика в chrome для предварительного просмотра. – Damainman
, пожалуйста, покажите нам эхо '' return_visit ', $ visitor_id, $ expire, $ path, $ domain' . В следующем я бы отлаживал HTTP-заголовки, используя инструменты браузера, такие как firebug и т. Д. – Peter