cookie исчезает, когда я меняю страницу

(PHP) Я установил файл cookie на странице login.php следующим образом:

setcookie('cookie_id',$id); 

Я печатаю файл cookie, и я вижу правильное значение, но когда я меняю страницу с помощью:

 header($login_url); 

Я теряю все файлы cookie, и я не знаю, почему. Кто-нибудь может мне помочь?

Вы должны указать / как путь в функции setcookie() , поэтому cookie будет доступен по каждому пути вашего сайта. Сделать это:

 setcookie('cookie_id', $id, 0, '/'); 

Обратите внимание, что третьим аргументом является время истечения срока действия, которое по умолчанию установлено на 0. Согласно документации это означает, что:

Если установлено значение 0 или опущено, файл cookie истекает в конце сеанса (когда браузер закрывается).

Если у вас есть человеческие URL-адреса или подпапки (например, http://www.domain.com/path1/path2/), вы должны установить путь cookie к / для работы для всех путей, а не только для текущего.

 setcookie('cookie_id', $cookie_id, time() + 60*60*24*30, '/'); 

Из руководства по PHP:

Путь на сервере, на котором будет доступен cookie. Если установлено значение '/', файл cookie будет доступен во всем домене. Если установлено значение '/ foo /', cookie будет доступен только в каталоге / foo / и всех подкаталогах, таких как / foo / bar / домена. Значение по умолчанию – это текущий каталог, в который установлен файл cookie.