PHP: Cookie не сбрасывается - PullRequest
0 голосов
/ 01 октября 2011
<?
if($_POST["Login"])
{
    if (GetRightPassword($_POST["emaillogin"],$_POST["passwordlogin"]))
    {
        $_SESSION["email"] = $_POST["emaillogin"];
        $_SESSION["password"] = $_POST["passwordlogin"];
        echo "Keeping logged in: ".$_POST["keeploggedin"];
        if ($_POST["keeploggedin"])
        {
            setcookie("email", $_POST["emaillogin"], time()+60*60*24*365); 
            setcookie("password", $_POST["passwordlogin"], time()+60*60*24*365);
        }
    }
    else
    {
        echo "Invalid username/password!";
    }
}

if($_POST["Logout"])
{
    $_SESSION["email"] = null;
    $_SESSION["password"] = null;
    setcookie("email", "", time()-900000); 
    setcookie("password", "", time()-900000);
}

echo $_COOKIE["email"];
?>

Это единственный код (насколько я могу найти, я закодировал его минимум 6 месяцев назад, но я уверен, что больше нет), который записывает файлы cookie или сеанс.

Когда я нажимаю кнопку выхода из системы, она обнуляет переменные сеанса, поэтому, когда страница загружается, я выхожу из системы - снова меняю страницу или обновляю, и я снова захожу в систему.

Есть идеи, почему? Когда я меняю страницу, логин не отправляется, поэтому я понятия не имею, почему.

Если это поможет, echo $ _COOKIE ["email"]; строка отображает вашу электронную почту, даже если для нее установлено значение "".

Редактировать

Я только что нашел больше кода, связанного с этим.

Этот код запускается до этого кода.

if(isset($_COOKIE["email"]))
{
$_SESSION["email"] = $_COOKIE["email"];
$_SESSION["password"] = $_COOKIE["password"];
}

1 Ответ

1 голос
/ 01 октября 2011

установите во всех ваших куки путь и домен. Это гарантирует, что это не что-то вроде с и без www.

Проверьте документацию, как это сделать: http://nl2.php.net/setcookie

Это может быть основной причиной вашей проблемы

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...