Cookie не устанавливается в браузере [PHP] - PullRequest
0 голосов
/ 04 марта 2019

У меня есть простая логика PHP статического входа и пытается сохранить имя пользователя в cookie.К сожалению, он ничего не сохраняет, а также не возвращает ошибок, поэтому я не совсем уверен, что не так.Может быть, вы можете заметить что-то в коде, который я делаю неправильно.

$users = array('allan'=>'allanpass');

$username = $_POST["username"];
$enterpass = $_POST["password"];

if(isset($_POST["username"])) {
    if (array_key_exists($username, $users)) {
        $pass = $users["allanpass"];
        if($enterpass == $pass) {
            setcookie("heyhey", 'user2', time() + 60 * 60 * 24 * 7, '/');
            echo "Welcome back! <br />";
            echo '<a href="login.php?link=link1">Link1</a><br />';
            echo '<a href="login.php?link=link2">Link2</a><br />';
            echo '<a href="login.php?link=link3">Link3</a><br />';

        } else {
            echo "pass does not exist";
        }
    } else {
        array_push($users, $username);
        echo "hello new user <br />";
        echo '<a href="#">Link1</a><br />';
        echo '<a href="#">Link2</a><br />';
        echo '<a href="#">Link3</a><br />';
    }
} else {
    echo "Please fill in the form";
};

РЕДАКТИРОВАТЬ: У меня нет предыдущих сохраненных куки.Все разрушено.

1 Ответ

0 голосов
/ 04 марта 2019

Спасибо всем за ваш вклад, но проблема была в другом.Это было то, что я устанавливал печенье после того, как мои заголовки были отправлены.Теперь это не означает, что мне нужно было установить cookie в верхней части моего файла, но у меня были некоторые комментарии и пробелы в верхней части моего файла, и удаление этих избавило от заголовков отправленных ошибок.Если удаление пробелов не исправляет ошибку заголовков, попробуйте использовать ob_start() перед настройкой cookie и ob_end_flush(); после.Но это не лучшая практика.

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

$username = isset($_POST['username']) ? $_POST['username'] : '';
$enterpass = isset($_POST['password']) ? $_POST['password'] : '';
...