На нашем сайте мы используем cookie для сбора информации технического характера и обрабатываем IP-адрес вашего местоположения. Продолжая использовать этот сайт, вы даете согласие на использование файлов cookies. Здесь вы можете узнать, как мы пользуемся файлами cookies.
Я согласен
логотип upread.ru

Вход по паролю на PHP и авторизация через куки


Иногда мне приходится объяснять принцип работы с куками на разных языках программирования, и нередко это кажется сложным для новичков. На самом деле ничего сложного нет. В этой статье я приведу рабочий пример работы с куками на PHP и авторизации для сайта. Бонусом мы подключим защиту от взлома – рекапчу от гугла.

Итак, вам для чего-то понравилось закрыть доступ к некоторому содержимому на сайте, предположим странице админки. Самый простой способ – это его запаролить. Раньше я нередко использовал для решения данной задачи файл .htaccess – отлично работает для предотвращения несанкционированного доступа к целому сайту или определённой директории. Но у htaccess есть некоторые проблемы переносимости, а также не самая простая процедура смены пароля-логина. Не говоря уж о масштабируемости и мультдоступе.

Так что давайте создадим вход по логину и запоминание целиком на PHP и куках. Код:

if (isset($_COOKIE["pass"]) && $_COOKIE["pass"]==$pass){
Сначала проверяем, существует ли кука с названием “pass” и равна ли она некоему значению. Сразу скажу: хранить пароль в открытом виде небезопасно, используйте хотя бы md5 шифрование с солью. Далее, если все хорошо, то что-то делаем или показываем, а вот дальше подключаем рекапчу:

else {
?>
<script src='https://www.google.com/recaptcha/api.js'></script>
<form action="<?php echo $_SERVER["PHP_SELF"];?>" method="POST">
<input name="password" type="password" size="45"/>
<input class="submit" type="submit" value="Войти"/>
<div class="g-recaptcha" data-sitekey="публичный_ключ "></div>
</form>
Обработку формы ведем на той же странице, так что если есть пост-запрос:

if (isset($_POST["password"])) {
получаем ответ от капчи
$recaptcha=$_POST['g-recaptcha-response'];	
if(!empty($recaptcha)){
$google_url="https://www.google.com/recaptcha/api/siteverify";
$secret="секретный_ключ";
$ip=$_SERVER['REMOTE_ADDR'];
$url=$google_url."?secret=".$secret."&response=".$recaptcha."&remoteip=".$ip;
Инициализируем curl и выполняем исходящее соединение:

$curl = curl_init();
curl_setopt($curl,CURLOPT_URL, $url);
curl_setopt($curl,CURLOPT_RETURNTRANSFER,1);
$res = curl_exec($curl);
curl_close($curl);
$res = json_decode($res, true);
Если капча пройдена:

if ($res['success'])  {
Если пароль верен:

if ($_POST["password"] == "пароль") {	
Ставим куки на месяц

setcookie("pass", $pass, time()+60*60*24*30);
И обновляем страничку:

header ("Location: ".$_SERVER["PHP_SELF"]);
exit();
}
}
}
}
Просто, не правда ли?




тегизаметки, php, авторизация, куки, пароль





Отправляя сообщение я подтверждаю, что ознакомлен и согласен с политикой конфиденциальности данного сайта.




Утро
Пример парсинга сайта с помощью Java


© upread.ru 2013-2019
При перепечатке активная ссылка на сайт обязательна.
Задать вопрос
письмо
Здравствуйте! Вы можете задать мне любой вопрос. Если не получается отправить сообщение через эту форму, то пишите на почу up777up@yandex.ru
Отправляя сообщение я подтверждаю, что ознакомлен и согласен с политикой конфиденциальности данного сайта.