Проблема с setcookie() PHP

Discussion in 'PHP' started by AdReNa1!Ne, 29 Sep 2011.

  1. AdReNa1!Ne

    AdReNa1!Ne Elder - Старейшина

    Joined:
    24 May 2007
    Messages:
    70
    Likes Received:
    105
    Reputations:
    14
    Привет всем!
    Столкнулся недавно с такой проблемой, у некоторых людей не устанавливаются куки. Тестирование проводилось данным скриптом.

    PHP:
    <?php

    if($_GET['test'])
    {
        if(
    $_GET['test']==1)
        {
            
    setcookie('test''isset'time()+3600,'','.domain.ru');
            
    header("Location: http://www.domain.ru/clear_cookie.php?test=2");
            die();
        }
        else if(
    $_GET['test']==2)
        {
            die(
    "cookie test ".$_COOKIE['test']);
        }
    }
    else if(
    $_GET['session'])
    {
        
    session_start();
        if(
    $_GET['session']==1)
        {
            
    $_SESSION['test']='isset';
            
    header("Location: http://www.domain.ru/clear_cookie.php?session=2");
            die();
        }
        else if(
    $_GET['session']==2)
        {
            die(
    "session test ".$_SESSION['test']);
        }
    }
    $cookies=array_keys($_COOKIE);
    $result="";
    for(
    $i=0;$i<count($cookies);$i++)
    {
        
    setcookie($cookies[$i], ''time()-3600,'','.domain.ru');
        
    $result.="Cookie '$cookies[$i]' cleared<br />";
    }
    if(
    $result=="")
    {
        
    $result.= "Cookie doesnt exist!";
    }
    echo 
    $result;
    ?>
    Что интересно - кукисы у человека не устанавливаются, а сессии работают (они работают, как известно, через кукисы).
    Печеньки в браузере включены, зафиксировано на Opera 11 (но у меня в опере 11 все работает). Таких людей немного, но хочется сделать хорошо для всех.

    Вопрос в следующем: какого хрена и где я косячу? =)

    Заранее спасибо!
     
  2. Doom123

    Doom123 Elder - Старейшина

    Joined:
    11 Nov 2006
    Messages:
    749
    Likes Received:
    244
    Reputations:
    22
    сессии работают не только через куки.. а иногда через адресную строку... а так вообще может антивирус или настройки браузера ..
     
  3. Gifts

    Gifts Green member

    Joined:
    25 Apr 2008
    Messages:
    2,494
    Likes Received:
    807
    Reputations:
    614
    AdReNa1!Ne не могу представить, чтобы одна и та же версия браузера работала по разному. Попробуйте изменить
    PHP:
    if($_GET['test']) 
    на
    PHP:
    if(isset($_GET['test'])) 
    И
    PHP:
     setcookie('test''isset'time()+3600,'','.domain.ru'); 
    на
    PHP:
    setcookie('test''isset'time()+3600,'/','.domain.ru'); 
    Внимание на слеш в 4 параметре
     
    _________________________
  4. AdReNa1!Ne

    AdReNa1!Ne Elder - Старейшина

    Joined:
    24 May 2007
    Messages:
    70
    Likes Received:
    105
    Reputations:
    14
    Спасибо :)
    Насчет $_GET я не беспокоюсь, так как человека редиректит.
    А вот со слешем поправил в тестовом скрипте, скинул проблемному юзеру, позже скажу результат.
     
  5. AdReNa1!Ne

    AdReNa1!Ne Elder - Старейшина

    Joined:
    24 May 2007
    Messages:
    70
    Likes Received:
    105
    Reputations:
    14
    Та же херня.
    Человеку выдает "cookie test ", тоесть кука не установилась и редирект прошел.

    Useragent: "Opera/9.80 (Windows NT 6.1; U; ru) Presto/2.9.168 Version/11.51" - это последняя версия оперы

    У человека есть еще гугл хром, тоже не работает. Значит, блокирует сторонний софт какой-нибудь?
    Сразу нарисовывается вопрос - что может блокировать?

    По поводу антивирусов/файерволлов спросил - AVAST.