проблема с cookie в PHP и AJAX

Я сталкиваюсь с некоторыми проблемами на моем скрипте, что я использую PHP и jquery для создания системы входа в систему.

Сначала у меня есть страница PHP, содержащая форму для входа. когда пользователь нажимает кнопку отправки, я использую jquery для отправки данных на сервер

$.post('server_login.php', {username:username.val(), password:password.val()}, function(data){ alert(data); }); 

in server_login.php У меня есть функция для входа в систему.

 if($_POST['username']=='username' && $_POST['password']=='1234'){ $expire = time() + 60*60*24*30; //1 month expired. setcookie("user_id", $_POST['username'], $expire); echo true; } 

и jquery alert "1" на моей странице входа.

проблема в том, когда я обновляю свой сайт и удаляю cookie, это не показывает мне.

 print_r($_COOKIE); 

ничего плохого?

Если скрипт, который вы вызываете, находится в другой папке на сервере (или с помощью перезаписи URL-адреса он выглядит так, как если бы он находился под другим путем), убедитесь, что задан параметр пути к файлу cookie.

По умолчанию setcookie() устанавливает cookie только для текущего пути.

Если ваша страница www.domain.com и вы делаете ajax-вызов на www.domain.com/auth/login.php cookie будет установлен в /auth и не будет доступен за пределами /auth .

Поэтому попробуйте изменить на это:

 setcookie("user_id", $_POST['username'], $expire, '/'); 

Я пытаюсь использовать код ниже в моем скрипте. Пожалуйста, попробуйте этот код, если вы получите значение cookie, чем что-то не так с вашим кодом, но если этот код также не работает, проверьте или включите опцию cookie браузера. если cookie отключен браузером, а также вы не можете получить значение cookie.

Для включения браузера cookie следуйте ссылке http://www.blogpatrol.com/enable-cookies.php .

Тестовый код 1:

 $expire = time() + 60*60*24*30; //1 month expired. setcookie("TestCookie", "shashank patel here", $expire); print_r($_COOKIE); 

Тестовый код 2:

Также проверьте этот код со своим скриптом, этот код сказал вам, что ваш cookie-браузер включен или нет.

 error_reporting (E_ALL ^ E_WARNING ^ E_NOTICE); // Check if cookie has been set or not if ($_GET['set'] != 'yes') { // Set cookie setcookie ('test', 'test', time() + 60); // Reload page header ("Location: test.php?set=yes"); } else { // Check if cookie exists if (!empty($_COOKIE['test'])) { echo "Cookies are enabled on your browser"; } else { echo "Cookies are NOT enabled on your browser"; } }