Если вам абсолютно не нужно использовать собственный файл cookie, я бы предложил использовать вместо него глобальную переменную $ _SESSION. Данные $ _SESSION доступны, как только вы их установите. Но его более важной особенностью является то, что данные не хранятся на клиенте. Это означает, что пользователь никогда не сможет получить доступ к своим данным. Так что сложнее взломать вашу систему входа в систему. Как указали другие, с помощью куки-файлов любой может читать и редактировать данные!
session_start();
if (isset($_GET['logout']))
{
unset($_SESSION['username']);
}
if ($_SESSION['username'] == 'admin')
{
echo "hello admin!";
}
else if (($_POST['username']=="admin")&&($_POST['password']=="admin"))
{
$_SESSION['username'] = $_POST['username'];
}
Чтобы использовать глобальные переменные $ _SESSION, вам нужно поставить session_start()
в начале вашего скрипта (перед отправкой любых данных). Это должно решить вашу проблему перенаправления одновременно. Обратите внимание, что за кулисами $ _SESSION использует небольшой файл cookie, но вам не нужно об этом думать. Он содержит только маленький идентификатор.
больше информации о сеансе
http://www.php.net/manual/en/book.session.php
PS: если честно, я все равно использовал бы здесь редирект. Когда вы отправляете форму и нажимаете кнопку «Назад», браузер просит вас отправить данные еще раз, и это раздражает. Используя перенаправление с header("Location: " . $newUrl);
, удалите это раздражение. Но только мои 2 цента.