Я надеялся, что кто-то сможет помочь с этой небольшой проблемой, с которой я работаю. Пожалуйста, имейте в виду, это просто место для хобби, я знаю, что есть дыры в безопасности. Я написал функцию set_remember_cookies, которая вызывается из моего сценария входа и страницы регистрации, когда пользователь проверяет флажок «запомнить меня».Функция setcookie PHP не сохраняет файлы cookie?
Функция на каждой защищенной странице, то происходит следующее:
- Проверяет, если помнить печенье установлены
- Запросы к базе данных, чтобы найти user_id, связанного с хеширован пользователя в куки
- Получает пароль для этого User_ID из таблицы пользователя
- Получает соль из таблицы remember_cookies
- Хэширует пароль + соль и сопоставляет его с хэшей p совпадение в файле cookie
Опять же, я знаю, что хранить cookie-файл даже в хэшированном пароле небезопасно, но я не беспокоюсь об этом сейчас.
Моя проблема в том, что функция set_remember_cookies, которую я включил ниже, фактически не устанавливает файлы cookie. На защищенных страницах первый шаг (проверка наличия файлов cookie) завершается с ошибкой. Я также проверял в браузере файлы cookie, и они не сохраняются.
Может ли кто-нибудь объяснить мне, почему эта функция не устанавливает файлы cookie? Я не могу найти никаких ошибок, но, надеюсь, кто-то может! Благодаря!
<?php
function set_remember_cookies($uid, $identifier, $password) {
mysql_query("DELETE FROM remember_cookies WHERE User_ID = '$uid'"); //Delete old cookie records
$salt = sha1(uniqid(time() . $_SERVER['HTTP_REFERER']));
$username_hash = hash("sha256", $identifier . $salt); //Hash the username
if (mysql_query("INSERT INTO remember_cookies (User_ID, Username_Hash, Salt) VALUES ('$uid', '$username_hash', '$salt')")) {
setcookie("Username", $username_hash, 60*60*24*365);
setcookie("Password", hash("sha512", $password . $salt), 60*60*24*365);
}
}
?>
Ну ... У меня было ощущение, что я пропустил что-то простое! Я использовал файлы cookie раньше и должен перечитать эти документы примерно 3 раза сегодня. Ну, иногда вам нужно, чтобы кто-то еще что-то указывал, я думаю, lol! Спасибо! – HockeyRef45