Система авторизации для админа DW ADMIN v1.1.
Т.е. был какой-то полуфабрикат, в котором было фиг разобраться!
Сейчас - это просто и понятно! В чем смысл!?
Просто берем скрипт и бросаем в папку, после чего - просто входим в админку!
Где скачать систему авторизации для админа DW ADMIN v1.1.
После текста есть ссылка на скачивание данного архива! + отдельная кнопка в списке всех скриптов- Видео:
- Состав архива:
- Как работает система авторизации DW ADMIN v1.1
- Файл с данными системы авторизации config.php
- Файл входа системы авторизации index.php
- Файл выхода из системы авторизации админа logout.php
- Файл для хранения данных админа lp.dat
- Файл стилей style.css
- Тестовая страница test.php
- Файл для шифрования данных translit_1_4.php
- Скачать можно здесь
Тестирование DW ADMIN v1.1.
Состав архива:
Состав архива показывается вживую из папки... с помощью функции ScandirJura-Light.ttf
back.png
config.php
index.php
logout.php
lp.dat
style.css
test.php
translit_1_4.php
Как работает система авторизации DW ADMIN v1.1
О каких нюансах нужно сказать, кроме того, что сказано в видео!?
DW ADMIN
Если вам требуется перевести права админа на стороннюю страницу, то:
Сверху страницы запускаем сессиюsession_start();
if($_SESSION[$name_login])
{
}
else
{
}
session_start();
if($_SESSION[$name_login])
{
}
Файл с данными системы авторизации config.php
Если по какими-то причинам вам нужно изменить имя сессии админа, то вам нужна переменная $name_login,
по умолчанию $name_login = dw_login, другими словами сессия админа выглядит таким образом:
Вся страница
<? session_start ();
$name_login = 'dw_login';
$DIR = __DIR__;
$DIR_LP = $DIR.'/lp.dat';
include($DIR.'/translit_1_4.php');
$lp = @file_get_contents($DIR_LP);
$name_site = $_SERVER["HTTP_HOST"];
$domen = $_SERVER["HTTP_X_FORWARDED_PROTO"].'://'.$_SERVER["HTTP_HOST"];
$real_page = $domen. parse_url( strip_tags($_SERVER['REQUEST_URI']) , PHP_URL_PATH);
$dirname = dirname($_SERVER['REQUEST_URI']);
$test = $domen . $dirname.'/test.php';
$logout = $domen . $dirname.'/logout.php';
$index = $domen . $dirname.'/index.php';
Файл входа системы авторизации index.php
Живой пример работы входа в админку DW ADMIN v1.1 - поскольку данные уже записаны, то данные для входа:Если по какими-то причинам вам нужно изменить значение передаваемое в сессию админа, то вам нужна переменная
$login в строке(если выбрано секретное слово) номерПо умолчанию будет передавать значение, которое есть в переменной $login - это зашифрованные(файл translit_1_4.php) данные из поля login
Весь файл
<?
include(__DIR__.'/config.php');
if($lp)
{
$get_lp = explode('::', $lp);
$salt = $get_lp[0];
$login_get = $get_lp[1];
$pass_get = $get_lp[2];
}
else
{
$salt = md5 ( date('d.m.Y')); // $salt = md5 ( date('01.10.2019'));
}
$login = ahead( trim( strip_tags( $_POST ['login'])));
$pas = md5 ( trim( strip_tags( $_POST ['pas'])) .$salt);
$pas2 = md5 ( trim( strip_tags( $_POST ['pas2'])) .$salt);
$sekretnoe_slovo = trim ( strip_tags( $_POST ['sekretnoe_slovo']));
$sekretnoe_slovo_2 = trim ( strip_tags( $_POST ['sekretnoe_slovo_2']));
if($_POST['SECRET_OR_hide_form'])
{
$hide_form = strip_tags( $_POST['hide_form'] );
if(($sekretnoe_slovo and $hide_form) or (!$sekretnoe_slovo and !$hide_form))
{
$rezult = 'Нужно выбрать одно поле!';
}
else
{
if($sekretnoe_slovo != $sekretnoe_slovo_2)
{
$rezult = 'Слова не равны!';
}
else
{
if($sekretnoe_slovo){$word = ahead($sekretnoe_slovo).'::secret_word';}else{$word = 'close_form';}
$_SESSION['SECRET_OR_hide_form'] = $word;header("Refresh: 0");
}
}
}
if($_POST['do_lp'])
{
if($pas != $pas2 )
{
$rezult = 'пароли не равны!';
}
else
{
$data = $salt.'::'. $login.'::'.$pas.'::'.$_SESSION['SECRET_OR_hide_form'] ;
$lp = @file_put_contents($DIR_LP, $data);
if($lp){$rezult = 'данные записаны';header("Refresh: 1");}
else{$rezult = 'не получилось записать -повторите опреацию!'; }
}
}
if($_POST['avtorization'] and $lp)
{
if(substr_count($lp, 'secret_word')) { $get_secret = $get_lp[3];}
if($get_secret)
{
if($pass_get == $pas and $login_get == $login and ahead($sekretnoe_slovo) == $get_secret)
{
$_SESSION[$name_login] = $login; //первый вариант сессии
@SetCookie( $name_login , $login_get .'_'. $pass_get ,time()+(365*24*60*60), "/", $name_site , 0) ;
}
else
{
$rezult = 'Либо: 1.логин, 2.пароль, 3.секретное слово - не верно!';
}
}
else
{
if($pass_get == $pas and $login_get == $login)
{
$_SESSION[$name_login] = $login; //второй вариант сессии
@SetCookie( $name_login , $login_get .'_'. $pass_get ,time()+(365*24*60*60), "/", $name_site , 0) ;
}
else
{
$rezult = 'Либо: 1.логин, 2.пароль не верно!';
}
}
}
if(substr_count($lp, 'secret_word')) { $_SESSION['SECRET_OR_hide_form']= 1;}
if(!$_SESSION['SECRET_OR_hide_form'])
{
$title = 'Нужно выбрать или или'; $var = 'SECRET_OR_hide_form';
$ad_form = '<input type="password" name="sekretnoe_slovo" placeholder="cекретное слово">
<input type="password" name="sekretnoe_slovo_2" placeholder="слово второй раз">
<flex><input type="checkbox" name="hide_form" value="hide_form"> Скрыть форму</flex>';
$height=300;
}
elseif(!$lp and $_SESSION['SECRET_OR_hide_form'])
{
$title = 'Создать пароль и логин'; $var = 'do_lp';
$ad_form = '<input type="text" name="login" placeholder="логин" required>
<input type="password" name="pas" placeholder="пароль" required>
<input type="password" name="pas2" placeholder="повторите пароль" required> ';
$height=300;
}
elseif($lp and !$_SESSION[$name_login])
{
$title = 'Авторизация'; $var = 'avtorization';
$ad_form = '<input type="text" name="login" placeholder="логин" required>
<input type="password" name="pas" placeholder="пароль" required> ';
$height =220;
if(!substr_count($lp, 'close_form')) { $ad_form .= '<input type="password" name="sekretnoe_slovo" placeholder="cекретное слово" required>'; $height=300;}
}
elseif($lp and $_SESSION[$name_login])
{
$rezult = 'вы авторизованы';
header("Location: $test ");// header("Location: $domen ");
}
else
{
die('какого?');
}
if($_SESSION[$name_login] and !$_COOKIE[$name_login])
{
$get_lp = explode('::', $lp);
$salt = $get_lp[0];
$login_get = $get_lp[1];
$pass_get = $get_lp[2];
$do_COOK = @SetCookie($name_login,$login_get.'_'.$pass_get,time()+(365*24*60*60),"/",$name_site,0);
if($do_COOK){header("Location: $test ");}
}
if($_COOKIE[$name_login] and !$_SESSION[$name_login])
{
$del_COOK = explode('_', $_COOKIE[$name_login]);
$get_lp = explode('::', $lp);
$salt = $get_lp[0];
$login_get = $get_lp[1];
$pass_get = $get_lp[2];
if($login_get == $del_COOK[0] and $pass_get == $del_COOK[1]){$_SESSION[$name_login] = $login_get; header("Location: $test ");}
}
if(substr_count($lp, 'close_form') and $real_page == $index and !$_SESSION[$name_login] and !$_SESSION['SECRET_OR_hide_form']){ header("Location: $domen "); exit;}
if($rezult){ $hideMe = ' style="display: block;" id="hideMe"';}
?>
<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="UTF-8">
<title><? echo $title; ?></title>
<link rel="stylesheet" type="text/css" href="<? echo $domen . $dirname;?>/style.css">
</head>
<body>
<rezult<? echo $hideMe; ?>><? echo $rezult; ?></rezult>
<block>
<form method="post" style="height:<?echo $height;?>px">
<h2><? echo $title ; ?></h2>
<? echo $ad_form ; ?>
<button type="submit" name="<? echo $var;?>" value="<? echo $var;?>">отправить</button>
</form>
</block>
</body>
</html>
Файл выхода из системы авторизации админа logout.php
Файл logout.php предназначен для ликвидации всех сессий и кук, которые установлены.
<? include(__DIR__.'/config.php');
if(!$_SESSION[$name_login])
{
$info = 'Для того, чтобы выйти – надо сперва войти!';
}
else
{
session_destroy ();
@SetCookie( $name_login , '' , time()+(365*24*60*60), "/", $name_site , 0) ;
$info = 'Вы вышли';
}
?>
<html>
<head>
<title>Выход</title>
<meta http-equiv='Refresh' content='3; URL=<? echo $index ;?>'>
<meta charset="utf-8">
<? echo $info;?>
</body>
</html>
Файл для хранения данных админа lp.dat
Файл lp.dat - создается в момент отправки данных на сервер. Сейчас данные отображаются. потому, что данные были созданы для того, чтобы вы смоли протестировать вход!
Если вы выбирает не показывать форму при первом вводе данных, то если куки и сессия умрут, то вы никак войти не сможете... это сделано для безопасности! И... заходим на сревре удаляем данный файл lp.dat и возвращаемся на страницу авторизации!
4aac041f8c05df149eb31f774a5c746a::ᵩᵚᵨᵩ::63f854dd4f76f09fb0907cfa52d95561::ᶾᶞᶑᶛᶎᶞ::secret_word
Файл стилей style.css
Файл стилей системы авторизации для админа нужны для отображения в браузере
raund {
display: block;
border: 1px solid darkgrey;
padding: 12px 0;
margin: 10px 0;text-align: center;
}input[type="checkbox"] {
width: 33px;
}raund span {
border-bottom: 1px solid #bbbbbb;
display: block;
padding-bottom: 7px;
margin-bottom: 10px;
}flex {
display: flex;
TEXT-TRANSFORM: lowercase;
PADDING-TOP: 10PX;
}
@font-face {
font-family: Jura Light;
src: url(Jura-Light.ttf);
}
body, input,button {
font-family: 'Jura Light';
font-size: 16px;
}
body::before {
content: "";
position: fixed;
left: -50px;
right: -50px;
top: -10px;
bottom: 0px;
z-index: -1;
background: url(back.png)center/cover no-repeat;
filter: blur(10px);
height: 110%;
opacity: 0.5;
}
block {
text-transform: uppercase;
font-weight: 100;
}
form {
position: absolute;
display: inline-grid;
top: 50%;
left: 50%;
width: 320px;
border: 1px solid #cecece;
padding: 50px;
transform: translate(-50%,-50%); background-color: #fafafa;
opacity: 0.7;
}input {
width: 319px;
border-bottom: 1px solid #d6d6d6;
border-top: 0px;
border-left: 0px;
border-right: 0px;
outline: none; text-indent: 13px;
}form h2 {
font-family: 'Jura Light';
font-size: 26px;
text-align: center;
border-bottom: 1px solid #d4d4d4;
color: #7e7e7e;
font-weight: 100;
text-shadow: 4px 4px 4px #aaa;
margin: 21px 0 10px 0;
}button#submit {
height: 46px;
margin-top: 10px;
cursor: pointer;
padding: 10px;
color: rgb(68,68,68);
text-decoration: none;
outline: none;
border: 1px solid rgba(0,0,0,.1);
border-radius: 2px;
background: rgb(245,245,245) linear-gradient(#f4f4f4, #f1f1f1);
transition: all .218s ease 0s;
}button#submit:hover{
color: rgb(24,24,24);
border: 1px solid rgb(198,198,198);
background: #f7f7f7 linear-gradient(#f7f7f7, #f1f1f1);
box-shadow: 0 1px 2px rgba(0,0,0,.1);
}
rezult {
z-index: 10000;
display: none ;
position: absolute;
left: 50%;
transform: translate(-50%);
border: 1px solid #a9a9a9;
padding: 17px;
background: #fbfbfb;
font-size: 15px;
color: #868686;
font-family: monospace;
box-shadow: 0 0 10px rgba(194, 160, 195, 0.5);
}
#hideMe {
-moz-animation: cssAnimation 0s ease-in 3s forwards;
-webkit-animation: cssAnimation 0s ease-in 3s forwards;
-o-animation: cssAnimation 0s ease-in 3s forwards;
animation: cssAnimation 0s ease-in 3s forwards;
-webkit-animation-fill-mode: forwards;
animation-fill-mode: forwards;
}
@keyframes cssAnimation { to {top: -60px; }}@-webkit-keyframes cssAnimation { to {top: -40px; }}
red{color:red;}fio{color:violet;}block {
display: block;
margin: auto;
width: 600px;
}login {
display: block;
padding: 17px;
border: 1px solid #bfbfbf;
margin: 10px 0;
}a {
color: #9e9e9e;
text-decoration: none;
border-bottom: 1px solid #7d7d7d;
}a:hover {
text-decoration: none;
border-bottom: 1px solid #7d7d7d00;
}about {
background: #f9f9f9;
display: block;
padding: 20px;
transform: translate(-50%,-50%);
top: 50%;
left: 50%;
width: 600px;
height: 450px;
position: absolute;
opacity: 0.8;
}about2 {
background: #f9f9f9;
display: block;
padding: 20px;
transform: translate(-50%,-50%);
top: 50%;
left: 50%;
width: 600px;
height: 23px;
position: absolute;
opacity: 0.8;
text-align: center;
}h2 {
font-family: 'Jura Light', sans-serif;
text-shadow: 4px 4px 4px #aaa;
text-align: center;
color: #828282;
text-transform: uppercase;
border-bottom: 1px solid #d3d3d3;
padding-bottom: 10px;
}
Тестовый файл test.php
После авторизации вы попадете на эту страницу<? include(__DIR__.'/config.php');
if($_SESSION[$name_login])
{
$info = '<h2>Здравствуйте '.back($_SESSION[$name_login]).'</h2>
Эта страница - пример!<br>
Если вы видите это текст, значит у вас активирована сессия $_SESSION['.$name_login.'] <br>
Список существующих данных<br>
имя <fio>$name_login</fio> = <red>'.$name_login.'</red> - файл config.php<br>
сессия <fio>$_SESSION['.$name_login.']</fio> = <red>'.$_SESSION[$name_login].'</red><br>
Данные в сесии зашифрованы файлом <fio>translit_1_4.php</fio><br>
Расшифровка - <fio>back($_SESSION['.$name_login.'])</fio> = <red>'.back($_SESSION[$name_login]).'</red><br>
куки <fio>$_COOKIE['.$name_login.']</fio> = <red>'.$_COOKIE[$name_login].'</red><br>
Файл данных перменная <fio>$lp</fio> - файл config.php<br>
Сейчас в нём записано = <red>'. str_replace('::', "::\n<br>", $lp) .'</red>
';
}
else
{
echo '<html> <head><link rel="stylesheet" type="text/css" href="'.$domen . $dirname.'/style.css"> <meta http-equiv="Refresh" content="2; URL='.$index .'"> </head> <body><about2>У вас недостаточно прав для просмотра данной информации!</about2></body> </html>';
exit;
}
?>
<!DOCTYPE html>
<html>
<head>
<meta charset="UTF-8">
<title>тестовая страница</title>
<link rel="stylesheet" type="text/css" href="<? echo $domen . $dirname;?>/style.css">
</head>
<body>
<about>
<login><? if($_SESSION[$name_login]){?>
<a href="<? echo $logout; ?>" target="_blank">Выйти</a> <?}else{?>
<a href="<? echo $index; ?>" target="_blank">Войти</a><?}?>
</login>
<? echo $info; ?>
<br>
</about>
</body>
</html>
Файл стилей translit_1_4.php
Чтобы файлы не лежали в открытом виде мы их немного зашифровали - еще о шифровании<?
$letters = array_unique(array('Ɇ','Ø','%','æ','ā','ɡ','ɸ','Ý','Þ','ʥ','ɤ','﬩','ɶ','Ȼ','ȵ','Ϣ','Ϡ','ŀ','ō','ä',
'ƺ','Ħ','fi','╦','®','ǽ','≡','ȡ','Ȿ','ȣ','ɮ','ⱥ','ʁ','ʄ','ʆ','ʇ','ウ','¢','œ','ư','ƶ', 'ᖠ','ᖡ','ᖢ','ᖣ','ᚕ','ᚖ','ᚗ','ᚘ','ᚙ','ᚚ','᚛','᚜','ᴀ','ᴁ','ᴂ','ᴃ','ᴄ','ᴅ','ᴆ','ᴇ','ᴈ','ᴉ','ᴊ','ᴋ','ᴌ','ᴍ','ᴎ','ᴏ','ᴐ','ᴑ','ᴒ','ᴓ','ᴔ','ᴕ','ᴖ','ᴗ','ᴘ','ᴙ','ᴚ','ᴛ','ᴜ','ᴝ','ᴞ','ᴟ','ᴠ','ᴡ','ᴢ','ᴣ','ᴤ','ᴥ','ᴦ','ᴧ','ᴨ','ᴩ','ᴪ','ᴫ','ᴬ','ᴭ','ᴮ','ᴯ','ᴰ','ᴱ','ᴲ','ᴳ','ᴴ','ᴵ','ᴶ','ᴷ','ᴸ','ᴹ','ᴺ','ᴻ','ᴼ','ᴽ','ᴾ','ᴿ','ᵀ','ᵁ','ᵂ','ᵃ','ᵄ','ᵅ','ᵆ','ᵇ','ᵈ','ᵉ','ᵊ','ᵋ','ᵌ','ᵍ','ᵎ','ᵏ','ᵐ','ᵑ','ᵒ','ᵓ','ᵔ','ᵕ','ᵖ','ᵗ','ᵘ','ᵙ','ᵚ','ᵛ','ᵜ','ᵝ','ᵞ','ᵟ','ᵠ','ᵡ','ᵢ','ᵣ','ᵤ','ᵥ','ᵦ','ᵧ','ᵨ','ᵩ','ᵪ','ᵫ','ᵬ','ᵭ','ᵮ','ᵯ','ᵰ','ᵱ','ᵲ','ᵳ','ᵴ','ᵵ','ᵶ','ᵷ','ᵸ','ᵹ','ᵺ','ᵻ','ᵼ','ᵽ','ᵾ','ᵿ','ᶀ','ᶁ','ᶂ','ᶃ','ᶄ','ᶅ','ᶆ','ᶇ','ᶈ','ᶉ','ᶊ','ᶋ','ᶌ','ᶍ','ᶎ','ᶏ','ᶐ','ᶑ','ᶒ','ᶓ','ᶔ','ᶕ','ᶖ','ᶗ','ᶘ','ᶙ','ᶚ','ᶛ','ᶜ','ᶝ','ᶞ','ᶟ','ᶠ','ᶡ','ᶢ','ᶣ','ᶤ','ᶥ','ᶦ','ᶧ','ᶨ','ᶩ','ᶪ','ᶫ','ᶬ','ᶭ','ᶮ','ᶯ','ᶰ','ᶱ','ᶲ','ᶳ','ᶴ','ᶵ','ᶶ','ᶷ','ᶸ','ᶹ','ᶺ','ᶻ','ᶼ','ᶽ','ᶾ','ᶿ','ῲ','ῳ','ῴ','ῶ','ῷ','Ὸ','Ό','Ὼ','Ώ','ῼ'));
$all_letter = array_unique(array('a','b','c','d','e','f','g','h','i','j','k','l','m','n','o','p','q','r','s','t','A','B','C','D','E','F','G','H','I','J','K','L','M','N','O','P','Q','R','S','T','U','V','W','X','Y','Z', 'u','v','w','x','y','z','1','2','3','4','5','6','7','8','9','0','@','_','-','.','<','>','/',',','а','о','у','ы','э','я','е','ё','ю','и','б','в','г','д','й','ж','з','к','л','м','н','п','р','с','т','ф','х','ц','ч','ш','щ','ь','ъ','А','О','У','Ы','Э','Я','Е','Ё','Ю','И','Б','В','Г','Д','Й','Ж','З','К','Л','М','Н','П','Р','С','Т','Ф','Х','Ц','Ч','Ш','Щ','Ь','Ъ'));
$count_letters = count($letters);
$count_all_letter = count($all_letter);
if($count_letters == $count_all_letter)
{
$new_massiv = array_combine($all_letter, $letters);
}
else
{
if($count_letters > count($all_letter))
{
$letters = array_splice($letters, $count_letters - $count_all_letter);
}
else
{
$all_letter = array_splice($all_letter, $count_all_letter - $count_letters);
}
}
function ahead($str)
{
global $letters; global $all_letter;
$tr = array_combine($all_letter, $letters);
return strtr($str,$tr);
}
function back($str)
{ global $letters; global $all_letter;
$tr = array_combine($letters, $all_letter);
return strtr($str,$tr);
}
?>