ФорумПрограммированиеPHP для идиотов → Траблы с логаутом

Траблы с логаутом

  • Cheese

    Сообщения: 74 Репутация: N Группа: Кто попало

    Spritz 16 декабря 2008 г. 0:05

    Для логаута использую следующий код:


    $_SESSION=array();
    unset($_COOKIE['имя сессии']);
    session_destroy();
    header('Location:'на страницу с логином');


    Вроде бы все в порядке выкидывает окошко с логином, но остается одна беда в ИЕ6(и только в нем) если в браузере набрать адрес страницы с которой был осуществлен логаут мы на эту страницу вернемся, при этом дальше никуда пойти не сможем ибо будет хотеть логин…
    У мну один вопрос - это штатная бага или я нашел что-то новое?
  • disc

    Сообщения: 843 Репутация: N Группа: Джедаи

    Spritz 16 декабря 2008 г. 0:39, спустя 33 минуты 5 секунд

    Cheese, показ ошибок включен? Мне кажется что session_destroy(); не уничтожает сессию, т.к. ее нет и дает ошибку
    <b>Warning</b>:  session_destroy() [<a href='function.session-destroy'>function.session-destroy</a>]: Trying to destroy uninitialized session in …

    после чего редирект не возможно сделать.
    <b>Warning</b>:  Cannot modify header information - headers already sent by …


    Но тогда бы не работало во всех браузерах.
    Иначе второй вариант что IE6 просто закэшировал эту страницу и показывает ее контент просто. Вывод IE6 на свалку.
  • Cheese

    Сообщения: 74 Репутация: N Группа: Кто попало

    Spritz 16 декабря 2008 г. 0:41, спустя 2 минуты 8 секунд

    Warning-ов нету, показ ошибок включен, редирект работает….
    Похоже вариант 2… Отправить всеми любимый недобраузер на свалку еще долго не выйдет…. увы… попробую что-то изобрести….
  • phpdude

    Сообщения: 26624 Репутация: N Группа: в ухо

    Spritz 16 декабря 2008 г. 0:42, спустя 1 минуту 46 секунд

    $_SESSION=array();
    unset($_COOKIE['имя сессии']);
    session_destroy();
    header('Location:'на страницу с логином');


    адски жжете :)

    unset($_COOKIE['имя сессии']);думаю что хватит

    setcookie('имя сессии',"");
    header("location: …");
    Сапожник без сапог
  • sap

    Сообщения: 2701 Репутация: N Группа: Кто попало

    Spritz 16 декабря 2008 г. 7:53, спустя 7 часов 10 минут 27 секунд


    $_SESSION=array();
    unset($_COOKIE['имя сессии']);
    session_destroy();
    header('Location:'на страницу с логином');


    адски жжете :)

    unset($_COOKIE['имя сессии']);думаю что хватит

    setcookie('имя сессии',"");
    header("location: …");

    session_destroy(); думаю что хватит. Нахуй куки еще тереть? Тем более может юз_транс_сид включен…
  • Josh

    Сообщения: 2008 Репутация: N Группа: Кто попало

    Spritz 16 декабря 2008 г. 7:59, спустя 5 минут 39 секунд



    $_SESSION=array();
    unset($_COOKIE['имя сессии']);
    session_destroy();
    header('Location:'на страницу с логином');


    адски жжете :)

    unset($_COOKIE['имя сессии']);думаю что хватит

    setcookie('имя сессии',"");
    header("location: …");

    session_destroy(); думаю что хватит. Нахуй куки еще тереть? Тем более может юз_транс_сид включен…
    Нахуй их вообще тогда юзать если тереть :)
  • phpdude

    Сообщения: 26624 Репутация: N Группа: в ухо

    Spritz 16 декабря 2008 г. 10:14, спустя 2 часа 15 минут 8 секунд

    на самом деле, я всегда в сессии храню галку $_SESSION['user'] => array …
    и при логауте просто unset($_SESSION['user']); и нихуя тереь не приходится.
    Сапожник без сапог
  • sap

    Сообщения: 2701 Репутация: N Группа: Кто попало

    Spritz 17 декабря 2008 г. 1:35, спустя 15 часов 20 минут 51 секунду

    $_SESSION['user'] => array …

    Пиздец, зачем там массив, айди по-моему вполне достаточно.
  • phpdude

    Сообщения: 26624 Репутация: N Группа: в ухо

    Spritz 17 декабря 2008 г. 2:30, спустя 55 минут 13 секунд


    $_SESSION['user'] => array …

    Пиздец, зачем там массив, айди по-моему вполне достаточно.
    а если надо к примеру баланс вывести или имя и фамилия? запрос снова делать? :)
    Сапожник без сапог
  • sap

    Сообщения: 2701 Репутация: N Группа: Кто попало

    Spritz 17 декабря 2008 г. 3:04, спустя 33 минуты 55 секунд

    Нет, бля, в сессии тягать =))) Лично я в сессии храню айди, и каждый раз у меня создается объект $user.
  • kendo

    Сообщения: 446 Репутация: N Группа: Адекваты

    Spritz 17 декабря 2008 г. 3:22, спустя 18 минут 9 секунд

    Простите, но вроде уже обсуждалось про unset($_COOKIE['smth'])? Она же вроде только временем действия убивается…
  • adw0rd

    Сообщения: 22905 Репутация: N Группа: в ухо

    Spritz 17 декабря 2008 г. 3:33, спустя 10 минут 56 секунд

    KENDO, временем действия в браузере…
    adw/0
  • phpdude

    Сообщения: 26624 Репутация: N Группа: в ухо

    Spritz 17 декабря 2008 г. 5:59, спустя 2 часа 26 минут 6 секунд


    Простите, но вроде уже обсуждалось про unset($_COOKIE['smth'])? Она же вроде только временем действия убивается…
    $_COOKIE - этот массив формируется при запуске скрипта из заголовка cookie: … от клиента(веб браузера) и если убивать в нем элементы - убиваются всего лишь до конца этого скрипта, при следующем запросе от клиента кукисы останутся, ибо они в браузере то остались ;)
    Сапожник без сапог
  • md5

    Сообщения: 11948 Репутация: N Группа: в ухо

    Spritz 17 декабря 2008 г. 6:09, спустя 10 минут 7 секунд

    а в чем проблемы-то?
    в мане же написано: убить куку — setcookie с 0 временем
    убить сессию — $_SESSION = array();

    всё
    все умрут, а я изумруд
  • phpdude

    Сообщения: 26624 Репутация: N Группа: в ухо

    Spritz 17 декабря 2008 г. 6:11, спустя 2 минуты 5 секунд


    а в чем проблемы-то?
    в мане же написано: убить куку — setcookie с 0 временем
    убить сессию — $_SESSION = array();

    всё
    можно и так) проблемы видимо в руках чуток.
    Сапожник без сапог

Пожалуйста, авторизуйтесь, чтобы написать комментарий!