Я запускаю скрипт, который устанавливает $ _COOKIE [‘menu_item_id’] для последнего идентификатора вставки. Я делаю это, используя jquery $ .post.
Когда отправка запроса с использованием $ .post, я не могу получить доступ к этому cookie в другой части моего приложения. Я могу получить к нему доступ только на той же странице php, где был сделан пост-запрос.
Я проверил это с помощью сессий, и это сработало хорошо, но я не использую сессии для такой простой вещи.
Почему я не могу получить доступ к значению cookie через мое приложение?
Ниже мой код.
index.php
$.post("inserNewItem.php", {menu_cat_id : cat_id }
inserNewItem.php
//Preform the insert statment. Get the last_id and assign it to the cookie value "menu_item_id"$last_id = $db->insert_id;
setcookie("menu_item_id", $last_id);index.php
//Check if the menu item id has been set after the $.post ajax has been completed
if(isset($_COOKIE['menu_item_id'])){
echo $_COOKIE['menu_item_id'];
} else {
echo "cookie is not set"; // I keep getting this
}
Посмотрите на руководство SetCookie (). Вы должны передать как 4-й параметр path как root /
, Тогда куки будут доступны на каждой части вашего сайта. Пример:
setcookie('YourCookie', $value, time()+3600, '/');
Не забудьте установить также время истечения. В приведенном выше примере он истекает через один час.
Других решений пока нет …