if($code != $prcode){
// Если пользователь не авторизованный
} else {
// Если пользователь авторизованный
}
Переменная $code
будет хранить в себе глобальные массивы $_POST
и $_SESSION
. В переменной $prcode
мы будем хранить наш пароль. Теперь, для не авторизованного пользователя между первым условием если
, мы поместим форму для входа на сайт.
echo'<form action="/" method="post">
<input type="text" placeholder="Введите ключ" name="code">
<button type="submit">Войти</button>
</form>';
Как видим, что поле под название code, которое мы будем посылать глобальному массиву $_POST
, затем получать ответ, обрабатывать его на ошибки: на пустоту, а также проверять его на совпадение с переменной нашего пароля $prcode
, после этого только, будем сохранять авторизованного пользователя в сессию. Но для начала, давайте инициализируем ее.
@session_start();
Теперь пропишем наши переменные, одна из которых с нашим придуманным паролем, другая с пустым значением текста для вывода информационных сообщений, к примеру об ошибке авторизации.
$prcode = 123;
$text = '';
Далее мы должны принять поле под названием code
в глобальный массив $_POST
и обработать. То же самое нужно проделать для глобального массива $_SESSION
.
if(isset($_POST['code'])){
$code = $_POST['code'];
}
if(isset($_SESSION['code'])){
$code = $_SESSION['code'];
}
После чего проверим скрипт на ошибки, а именно на пустоту, а также на правильность в совпадении поля под названием code
с нашим паролем $prcode
.
if(isset($_POST['code'])){
if(empty($_POST['code'])!=$prcode){
$text = 'Ошибка! Не правильный ключ';
}
else{
$text = 'Ошибка! Введите ключ';
}
}
Как вы можете заметить, что сначала я проверяю на существование глобального массива $_POST
при получении поля code
, если поле существует, то я создаю еще одно условие, которое проверяет на пустоту поля code, а затем сравниваю его с нашим паролем $prcode
, после чего только получаю ответ.
В переменную $text
записываю все допустимые ошибки и сообщения, это помогает мне понимать, как работает данный скрипт, какие ошибки он выводит, какие сообщения показывает. Не забудьте вывести текстовый блок ошибок в конце условия.
echo $text;
Теперь, когда наша первая часть с авторизацией готова, мы вставляем в авторизованную часть пользователя, к примеру, следующий код, который имеет, кнопку выход и приветствие для входа. Чтобы сессия при обновлении страницы не слетала, не забудьте ее установить.
$text = 'Вы зашли в секретный раздел! Выйти';
$_SESSION['code'] = $code;
Ну и напоследок, нам осталось сделать только выход. Перед тем, как Вы запишите все данные в сессию, можете поставить ее на уничтожение. Подчеркиваю - только перед этим, а не после! Для примера, я решил использовать уничтожение по ссылке, через $_GET
передачу, обращаясь напрямую к полю exit
со значением true
. Вы уж решите для себя сами, как стоит поступить. Можно, к примеру, за морочиться с формой.
if($_GET['exit']=='true'){
unset($_SESSION['code']);
}