Я сталкиваюсь с некоторыми проблемами на моем скрипте, что я использую 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 .
$expire = time() + 60*60*24*30; //1 month expired. setcookie("TestCookie", "shashank patel here", $expire); print_r($_COOKIE);
Также проверьте этот код со своим скриптом, этот код сказал вам, что ваш 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"; } }