Setcookie> снифф> вывод на той же странице - PullRequest
0 голосов
/ 24 марта 2010

Интересно, может ли кто-нибудь помочь пролить свет на это:

Я удаляю куки, если пользователь приходит на сайт с определенным ключом / значением в строке запроса. т.е.: http://www.somesite.com? ключ = hmm01

Код cookie существует в верхней части шаблона до <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML ):

<?php header("Content-Type: text/html; charset=utf-8"); ob_start(); if (isset($_GET['key'])) { setcookie("cookname", $_GET['key'], time()+2592000); /* Expires in a month */ } ob_end_flush(); ?>

На той же странице, хотя и внутри: У меня есть следующий php-код, который анализирует cookie и выводит некоторый текст:

`

переключатель ($ cookievalue) { case hmm01: эхо "abc"; перерыв; case hmm02: эхо "def"; перерыв; case hmm03: эхо "гхи"; перерыв; дефолт: эхо "привет"; } ?> `

- Проблема в том, что когда пользователь впервые прибывает, сценарий анализатора не обнаруживает cookie и выводит текст по умолчанию: hello Только когда пользователь обновляет страницу или переходит на другую страницу, сниффер обнаруживает cookie.

Есть идеи, как удалить куки и вывести правильный текст без обновления страницы?

Большое спасибо.

Ответы [ 2 ]

1 голос
/ 24 марта 2010

Просто проверьте $ _GET в первый раз:

if(isset($_GET['key'])) { $cookievalue = $_GET['key']; }
if(isset($_COOKIE['cookname'])) { $cookievalue = $_COOKIE['cookname']; }

switch ($cookievalue) { case hmm01: echo "abc"; break; case hmm02: echo "def"; break; case hmm03: echo "ghi"; break; default: echo "hello"; } ?>
0 голосов
/ 24 марта 2010

if (конкретный ключ / значение в строке запроса) $ _COOKIE ['cookname'] = "some value";

И выучить немного HTTP

...