Версия для печати темы
Нажмите сюда для просмотра этой темы в оригинальном формате
Форум программистов > PHP: Общие вопросы > cookie


Автор: w03zd8rc 24.6.2016, 16:11
День добрый!
Возникла такая проблема: устанавливаются две куки сразу, для / и для // с одинаковыми именами, с чем связанно - непонятно.
на всех страницах подключается файл cookie.php такого содержания:
Код

        $address = $_COOKIE['address'];
        $login = $_COOKIE['login'];
        $phone = $_COOKIE['phone'];
        setcookie("address",$address,time()+31536000);
        setcookie("login",$login,time()+31536000);
        setcookie("phone",$phone,time()+31536000);
        if (isset($_COOKIE['Phonebook']))
        {
                $Phonebook = $_COOKIE['Phonebook'];
                setcookie("Phonebook",$Phonebook,time()+31536000);
        } else
        {
                $Phonebook = 1;
                setcookie("Phonebook",$Phonebook,time()+31536000);        
        }

далее делаем
Код

    if (isset($_GET['phonebook']))
    {
        setcookie("Phonebook",$_GET['phonebook'],time()+31536000);
        $Phonebook = $_GET['phonebook'];
    }

кука для / устанавливается в нужную (для // остается прежней), всё на страницу относительно этой куки выводится. Однако при перезагрузке (переходе, например, на index.php) кука из // записывается в / - что, собственно, возращает все на изначальное положение. 
Кто может сталкивался? Замечено, к-стати, пока только в фаерфоксе.

Автор: ksnk 24.6.2016, 16:26
Для кук обязательна явная установка параметра path. Куки без явного path - это грабли.

Автор: w03zd8rc 24.6.2016, 16:46
Цитата(ksnk @ 24.6.2016,  14:26)
Для кук обязательна явная установка параметра path. Куки без явного path - это грабли.

Ага, взял на заметку, исправил, спасибо! После этого вставил небольшой код по очищению всех кук что выписаны на // и настало счастье! =)

Powered by Invision Power Board (http://www.invisionboard.com)
© Invision Power Services (http://www.invisionpower.com)