За последние 24 часа нас посетили 22378 программистов и 1021 робот. Сейчас ищут 690 программистов ...

Не распознаются cookie | В браузере включены

Тема в разделе "Вопросы от блондинок", создана пользователем Игорь_Vasinsky, 21 янв 2009.

  1. Игорь_Vasinsky

    Игорь_Vasinsky Активный пользователь

    С нами с:
    13 ноя 2008
    Сообщения:
    203
    Симпатии:
    0
    Адрес:
    Уфа
    Ну во первых отмечу - Раздел переименован юморно !

    А теперь суть проблемы:

    На некой странице формируем cookie из сессионых переменных

    PHP:
    1. <?php
    2. if (!isset($_COOKIE['user'])){                                             // Проверили наличие - если нет то сформировали
    3. setcookie("user", $username,  time()+259200, 'java.ru');
    4. setcookie("password", $sms,  time()+259200, 'java.ru');
    5. setcookie("live", $sd_registr,  time()+259200, 'java.ru');
    6. setcookie("dead", $sd_registr_dead,  time()+259200, 'java.ru');
    7. echo "Cookie небыли найдены - сформированы новые";
    8. }
    9. else echo "Cookie найдены";                                            // и нечего не делаем
    10. ?>

    И есть другая страница - на который бы нам не хотелось чтобы юзер с куками от нашего сайта не задерживался

    PHP:
    1. <?php
    2. if (!isset($_COOKIE['user'])){   echo "Cookie не найдены";   // держим юзера на странице
    3. }
    4. else echo "
    5. <script language=JavaScript>                         // Отправляем его в секрет
    6. location.href='secret.php';
    7. </script>
    8. ";
    9. ?>
    Т.е. первыйкод сформировал cookie - а втророй проверил наличие и если нашёл увёл юзера

    Либо я не теме - либо на лыжах.

    Код стряпал изучая мануалы. Сам.
     
  2. Игорь_Vasinsky

    Игорь_Vasinsky Активный пользователь

    С нами с:
    13 ноя 2008
    Сообщения:
    203
    Симпатии:
    0
    Адрес:
    Уфа
    Кто нибудь подскажите. На сколько я поня всё написано правильно.

    Значит:

    1. Cookie не создаються
    2. Я не правильно проверяю их наличие ?
     
  3. Игорь_Vasinsky

    Игорь_Vasinsky Активный пользователь

    С нами с:
    13 ноя 2008
    Сообщения:
    203
    Симпатии:
    0
    Адрес:
    Уфа
    Всё приходиться делать самому!

    Оказаваеться

    домен java.ru я задал неверно!

    Ну если и дальше так дела пойдут - попрошусь в админы!
     
  4. Игорь_Vasinsky

    Игорь_Vasinsky Активный пользователь

    С нами с:
    13 ноя 2008
    Сообщения:
    203
    Симпатии:
    0
    Адрес:
    Уфа
    Ну в принципе домен то можно и не указывать.

    Вот тепер маленько поэкспериментируем с именем cookie.

    вот типа

    PHP:
    1. $uniq_id = uniqid(" ");
    2. // Генерируется строка из 13 символов - например. '39b3209ce8ef2'
    только чтоб cookie с таким именем найти скорее всего необходимо создавать базу данных (пойдёт даже txt ) - и привязывать в ней такое имя к ip - в момент записи cookie - а потом по базе шарить и искать ip чтоб найти такое имя ?

    Или я усложнил ?
     
  5. Игорь_Vasinsky

    Игорь_Vasinsky Активный пользователь

    С нами с:
    13 ноя 2008
    Сообщения:
    203
    Симпатии:
    0
    Адрес:
    Уфа
    Ну где же вы?

    <?php
    setcookie('user');
    setcookie('password');
    setcookie('live');
    setcookie('dead');
    session_start();
    session_destroy();
    if (session_is_registered('username')){
    $message = 'Сеанс продолжается. Сеансовы перемменным присвоены значения';
    }
    else {
    $message = 'Сеанс остановлен. Сеансовые переменные пусты'; }
    if (!isset($_COOKIE['user'])){
    $message2 = '<br>Cookie удалены'; }
    else {
    $message2 = '<br>À cookie то найдены !';
    }
    ?>

    Почему куки не удаляются.
     
  6. S.t.A.M.

    S.t.A.M. Активный пользователь

    С нами с:
    10 сен 2007
    Сообщения:
    1.041
    Симпатии:
    0
    Попробуй так удалить:
    PHP:
    1. unset($_COOKIE['user']);
     
  7. Игорь_Vasinsky

    Игорь_Vasinsky Активный пользователь

    С нами с:
    13 ноя 2008
    Сообщения:
    203
    Симпатии:
    0
    Адрес:
    Уфа
    :))) Спасиб - в мануале только для сессий unset() указывают

    Код (Text):
    1. unset($_SESSION["username"]);
    Лан. Если не трудно послеживай за темой.
     
  8. S.t.A.M.

    S.t.A.M. Активный пользователь

    С нами с:
    10 сен 2007
    Сообщения:
    1.041
    Симпатии:
    0
    Кстати, в мануале правильный способ удаления:
    PHP:
    1. setcookie ("TestCookie", "", time() - 3600);
    а unset($_COOKIE['user']); - удаляет только элемент массива...

    И для того что бы убедиться что кука удалена нужно дважды обновить страницу!
    т.е. при первом - он ее удаляет, но ты этого не увидишь! Что бы увидеть нужно еще раз обновить ее!
     
  9. Игорь_Vasinsky

    Игорь_Vasinsky Активный пользователь

    С нами с:
    13 ноя 2008
    Сообщения:
    203
    Симпатии:
    0
    Адрес:
    Уфа
    PHP:
    1. unset($_COOKIE['user']);
    у меня с первого раза удалил и удоляет.

    ... Как я то пропустил. он мне уже снится.
     
  10. Игорь_Vasinsky

    Игорь_Vasinsky Активный пользователь

    С нами с:
    13 ноя 2008
    Сообщения:
    203
    Симпатии:
    0
    Адрес:
    Уфа
    Скажите ка мне парни:

    Если я при регистрации пользователя создаю COOKIE и в дальнейшем хочу распознавать посетителя по ним - то нужно ли мне использывать SESSION ?

    задумано так:

    сразу после передачи переменных из формы (post) - данные - форматом

    $_POST['VAR'] -> setcookie ('name_cookie, $_POST['VAR'], time(), "path", "domen", 0);

    В общем напрямки из формы в куки.

    вот такой вот вопрос.
     
  11. Игорь_Vasinsky

    Игорь_Vasinsky Активный пользователь

    С нами с:
    13 ноя 2008
    Сообщения:
    203
    Симпатии:
    0
    Адрес:
    Уфа
    Кстати (для других как я - бот поисковиков - съеште меня) если поменять или перепутать местами (сменить порядок) параметры cookie (речь идёт о time(), "path", "domen", имя со значением то наврятли спутаешь) - то куки не создадутся - при этом выдаётся ошибка типа long... что то там... ХЕ ХЕ
     
  12. Игорь_Vasinsky

    Игорь_Vasinsky Активный пользователь

    С нами с:
    13 ноя 2008
    Сообщения:
    203
    Симпатии:
    0
    Адрес:
    Уфа
    Кстати.... а вот ещё одно не маловажное замечание:

    мануалы и другие ресурсы продлогают проверять наличие cookie вот так:

    PHP:
    1. <?php
    2. if (!isset($COOKIE['c_username'])) {echo "Cookie не найдены";}
    3. else {
    4. echo "Cookie найдены";
    5. }
    6. ?>
    Но вот мой браузер MYIE2 с этой функцией работает не правильно, т.е. не определяет true от false

    А вот так работает

    Код (Text):
    1. if (!isset([b]$[/b]$COOKIE['c_username']))
    Так что имейте ввиду. Мне это стоило 2 ночи + мешки под глазами.
     
  13. Игорь_Vasinsky

    Игорь_Vasinsky Активный пользователь

    С нами с:
    13 ноя 2008
    Сообщения:
    203
    Симпатии:
    0
    Адрес:
    Уфа

    вот

    PHP:
    1. if (!isset($$COOKIE['c_username']))  
     
  14. Frozen

    Frozen Активный пользователь

    С нами с:
    20 окт 2008
    Сообщения:
    540
    Симпатии:
    0
    Адрес:
    Москва
    вы прослушали монолог: Я и мои кривые руки.

    $_COOKIE. спать надо ночью
     
  15. Игорь_Vasinsky

    Игорь_Vasinsky Активный пользователь

    С нами с:
    13 ноя 2008
    Сообщения:
    203
    Симпатии:
    0
    Адрес:
    Уфа
    Расмешил.

    Монолог - потому что как мне не раз объясняли местные, когда я просил помочь мне - что надо думать своей головой - ни кто за меня ни чё делать не будет принципиально.

    А если спать ночью - руки не выпрямятся.

    Раз уж ты тут - раскрой тайну:



     
  16. Игорь_Vasinsky

    Игорь_Vasinsky Активный пользователь

    С нами с:
    13 ноя 2008
    Сообщения:
    203
    Симпатии:
    0
    Адрес:
    Уфа
    а есто и есть очепятка - результат 3ей безсонной ночи.
     
  17. Frozen

    Frozen Активный пользователь

    С нами с:
    20 окт 2008
    Сообщения:
    540
    Симпатии:
    0
    Адрес:
    Москва
    а я почем знаю нуно ли тебе использовать сессию? Если распознование пользователя - то куки. Если какие то данные во время его пребывания на сайте (которые не ажлко потом потерять) - то сессия.
     
  18. Игорь_Vasinsky

    Игорь_Vasinsky Активный пользователь

    С нами с:
    13 ноя 2008
    Сообщения:
    203
    Симпатии:
    0
    Адрес:
    Уфа
    ненене.

    Мне всего то узновать его и перенаправлять его надо в течении скажем 3x дней. Я вот и думаю - читать всё из куки.
     
  19. Игорь_Vasinsky

    Игорь_Vasinsky Активный пользователь

    С нами с:
    13 ноя 2008
    Сообщения:
    203
    Симпатии:
    0
    Адрес:
    Уфа
    Ну вообщем спасибо тебе Frozen Throne владыка WarCrafta....
     
  20. Игорь_Vasinsky

    Игорь_Vasinsky Активный пользователь

    С нами с:
    13 ноя 2008
    Сообщения:
    203
    Симпатии:
    0
    Адрес:
    Уфа
    Ага ....

    а mozilla та куки не может проверить

    PHP:
    1. if (!isset($_COOKIE['c_username']))
     
  21. Frozen

    Frozen Активный пользователь

    С нами с:
    20 окт 2008
    Сообщения:
    540
    Симпатии:
    0
    Адрес:
    Москва
    дело не в мозилле
     
  22. Игорь_Vasinsky

    Игорь_Vasinsky Активный пользователь

    С нами с:
    13 ноя 2008
    Сообщения:
    203
    Симпатии:
    0
    Адрес:
    Уфа
  23. S.t.A.M.

    S.t.A.M. Активный пользователь

    С нами с:
    10 сен 2007
    Сообщения:
    1.041
    Симпатии:
    0
    Игорь_Vasinsky
    Что то мне подсказывает, что Вам надо глубже копать в понимание принципа работы куков - в какой момент ставятся когда читаются и т.п.

    Вы пытаетесь удалить куку и тут же проверяете удалилась он или нет...
    А теперь подумайте - кука на клиенте, скрипт обрабатывается на сервере!
    т.е. когда вы удаляете куку - ОНА НЕ УДАЛЯЕТСЯ СРАЗУ просто в заголовк странице вставляется информация о том что ее нужно удалить! после того как весь скрипт обработан и сформирована вся страница - он отправляется на клиент - там выполняется удаление куки и только после того как клиент пошлет очередной запрос, в скрипте который будет обрабатывать этот запрос будет информация об отсутствии этой куки т.е. не будет информации о наличии... а теперь все это переваривайте и думайте!
     
  24. Игорь_Vasinsky

    Игорь_Vasinsky Активный пользователь

    С нами с:
    13 ноя 2008
    Сообщения:
    203
    Симпатии:
    0
    Адрес:
    Уфа
    <?php
    if (!isset($_COOKIE['user'])){
    echo "Cookie не найдены";
    }
    else {
    setcookie('user', time()-3600);
    setcookie('password', time()-3600);
    setcookie('live', time()-3600);
    setcookie('dead', time()-3600);
    echo "Cookie, найденные у клиента - стёрты!";
    }
    ?>

    .... Вот здесь.
    Ищем куки
    - если нету - то пишем что нету
    - если есть то указываем им мертвый срок (час назад) - тем самым убивая их

    Раз уж формирование куки на стороне клиента происходит сразу же - то следовательно и куки стераются моментально.
     
  25. Игорь_Vasinsky

    Игорь_Vasinsky Активный пользователь

    С нами с:
    13 ноя 2008
    Сообщения:
    203
    Симпатии:
    0
    Адрес:
    Уфа
    т.е. по факту мы удаляем куки путём преднамеренного просрочивания срока их жизни - и в этом случае - мы не тупо передаём в заголовок сообщение о выполнении функции удаления - и умертвляем их.