Я новичок в php, и я делаю основной сценарий входа. Все, что я хочу сделать, это войти в систему и сохранить файл cookie для моего user_id. Он работает на всех моих других страницах, кроме моей индексной страницы, которая представляет собой один каталог вверх.Страница PHP не хранит файлы cookie
Так что на моей странице индекса, у меня есть это, если заявление:
<?php
if (!isset($_COOKIE['user_id'])) {
sign_in();
} else {
echo "You're already logged in!";
}
?>
Независимо от того, что я делаю, то sign_(); функция всегда показывает.
Но вот парадокс: На мой сценарий входа, все это проходит, как если бы я успешно вошел в я отправить его обратно на эту страницу с помощью:.
header("Location: ../index.php");
(Это до одной директории) Однако, когда я делаю ссылку на страницу в том же каталоге, она регистрирует файл cookie, и все в порядке.
header("Location: show_user.php");
Если вы хотите руки на виду, вы можете пойти в http://patti-bee2.dcccd.edu/coleman/wonder%20penguin/php/signup.php сделать свой счет. И http://patti-bee2.dcccd.edu/coleman/wonder%20penguin/php/show_user.php для его просмотра. И обратите внимание, как страница индекса не регистрирует файл cookie.
Как я пытался установить печенье:
if (isset($_POST['usernamelogin'])) {
$user_login = $_REQUEST['usernamelogin'];
$pass_login = $_REQUEST['passwordlogin'];
$pass_login = trim(crypt($pass_login, $user_login));
$login_query = sprintf("SELECT username, user_id FROM user WHERE username = '%s' and password = '%s';", mysql_real_escape_string($user_login), mysql_real_escape_string($pass_login));
$loginresult = mysql_query($login_query, $dbConn);
echo $login_query;
if (mysql_num_rows($loginresult) == 1) {
$userinfo = mysql_fetch_array($loginresult);
$username = $userinfo['username'];
$userid = $userinfo['user_id'];
setcookie('username', $username);
setcookie('user_id', $userid);
header("Location: show_user.php");
exit();
} else {
echo "Couldn't find your account!";
}
}
Пожалуйста, простите мою нерафинированное страницу и любительские ошибки. У меня есть чему поучиться.
Любые идеи?
Спасибо за ваше время.
нужно больше кода - то, что в 'sign_in()' или более конкретно, как вы пытаетесь установить/определить печенье 'user_id'? – zamnuts
@zamnuts, sign_in() просто показывает ссылку на страницу входа ... и позвольте мне опубликовать код, как я установил cookie. –
похоже, что вы правильно настраиваете файл cookie с поверхности. убедитесь, что вы действительно добираетесь до точки, в которой вызывается 'setcookie'. также проверьте, что ваш браузер хранит файл cookie после входа в систему: откройте инструменты разработки и проверьте заголовок «Cookie» HTTP-запроса. http://stackoverflow.com/questions/3467114/how-are-cookies-passed-in-the-http-protocol – zamnuts