@vahan21

Как можно реализовать так чтобы не смогли зайти в админ панель через URL?

Здравствуйте!
http://arssus.loc/page/admin/
у меня вот такой простой код
<?php
// $url = admin_url( 'http://arssus.loc/page/admin/', 'https' );
// echo $url;
// die();
$email = $_POST['email'];
$password = $_POST['pass'];
$error = '';
$success = '';
if(isset($_POST['submit'])){
    if ($email == "xxxxxxxxxxxxxxx"){
        if ($password == "xxxxxxxxxxxxx") {
            $error = "";
            $success = "welcome Admin!";
            header('Location: ../../index.php');
        }
        else{
            header('Location: ../../page-login.php');
        }
    }
    else{
        header('Location: ../../page-login.php');
    }
}
else{
    header('Location: ../../page-login.php');
}
  • Вопрос задан
  • 117 просмотров
Пригласить эксперта
Ответы на вопрос 2
anton_reut
@anton_reut
Начинающий веб-разработчик
if($_SESSION['role'] != 'admin'){
header("Location:/");
}
else {
 // ...показываем админку
}
// Если юзер не админ то перенаправление на главную. Роль назначаем при авторизации.
Ответ написан
Комментировать
@NinjaNickName
Web разработчик
Можно использовать HTTP BASIC AUTH например.
https://www.php.net/manual/ru/features.http-auth.php

$login = 'admin';
$password = 'password';

if (!isset($_SERVER['PHP_AUTH_USER'])) {
	header('WWW-Authenticate: Basic realm="Administration"');
	header($_SERVER['SERVER_PROTOCOL'].' 401 Unauthorized');
	
	echo 'Доступ запрещен';
} else {
	if ($_SERVER['PHP_AUTH_USER'] == $login) {
		if ($_SERVER['PHP_AUTH_PW'] == $password) {
			// все ок, можно передать в шаблон логин например $_SERVER['PHP_AUTH_USER']
		} else {
			header('WWW-Authenticate: Basic realm="Админка"');
			header($_SERVER['SERVER_PROTOCOL'].' 401 Unauthorized');
		}
	}
	
}
Ответ написан
Комментировать
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Похожие вопросы