Режим обслуживания сайта

Я пытаюсь создать довольно простую, но эффективную настройку обслуживания на нашем сайте. Функция должна работать, если пользователь попадает на любую страницу сайта, кроме https://www.ourbusiness.org/assets/home2.do/unlock-maintenance а также https://www.ourbusiness.org/legal/all header() Функция включит и перенаправит пользователя на https://www.ourbusiness.org/error/offline/, Я видел другие вопросы, особенно этот но в этом я думал, что это можно улучшить; добавив такое небольшое количество кода.

Итак, сначала наш config.php файл:

Config.Run.php:

<?php
define("URL", "https://www.ourbusiness.org");
define("MAINTENANCE", "1");

if(MAINTENANCE == 1) {
if(!isset($_SESSION['MAINTENANCE_UNLOCK'])) {
header("Location: ".URL."/error/offline/");
}
}

разблокировка maintenance.php

<?php
include "Config.Run.php";
session_start();

if(isset($_POST)) {
if($_POST['username'] == "admin" && $_POST['password'] == "admin") {
$_SESSION['MAINTENANCE_UNLOCK'] = md5($_POST['username'].$_POST['password']);
header("Location: ".URL."");
}
}
?>
<form action="" method="post">
<h1>You are not logged in</h1>
<b>Username: </b><input type="text" name="username" />
<b>Password: </b><input type="password" name="password" />
<input type="text" value="Unlock <?php echo TITLE; ?>" />
</form>

Почему это не работает? Я даже не могу получить доступ к файлу, чтобы разблокировать сайт или любую из страниц в каталоге legal

-1

Решение

Краткий ответ ….

session_start();

if(isset($_POST)) {
if($_POST['username'] == "admin" && $_POST['password'] == "admin") {
$_SESSION['MAINTENANCE_UNLOCK'] = md5($_POST['username'].$_POST['password']);
header("Location: ".URL."");
}
}

include "Config.Run.php";

ТАКЖЕ .. на другом скрипте делаю ..

if(MAINTENANCE == 1 && !isset($_SESSION['MAINTENANCE_UNLOCK'])) {
header("Location: ".URL."/error/offline/");
}
}

..включи их так. Я знаю, что я должен включить детали, но они в комментариях.

0

Другие решения

Знайте, если кто-то решит использовать это, что это не самый безопасный система аутентификации

Я решил проблему после некоторой обработки нашего кода — я нашел решение, и оно очень эффективно. Пожалуйста, смотрите наши результаты ниже:

Внутри нашего Config.Run.php:

define("URL", "https://www.ourbusiness.org");
define("MAINTENANCE", "1");

if(MAINTENANCE == 1) {
if(!isset($_SESSION['MAINTENANCE_UNLOCK'])) {
$current_file = explode('/', getcwd());
$current_file = end($current_file);
if ($current_file !== 'unlock-maintenance' && $current_file !== 'offline') {
header("Location: ".URL."/error/offline/");
exit();
}
}
}

И внутри нашего разблокировка обслуживание каталог (файл по умолчанию index.php)

<h2>Maintenance log in</h2>
<?php
if(isset($_POST) && !empty($_POST)) {
if($_POST['username'] == "admin" && $_POST['password'] == "admin") {
$_SESSION['MAINTENANCE_UNLOCK'] = md5($_POST['username'].$_POST['password']);
header("Location: ".URL."");
} else {
echo '<p class="err_msg">That login attempt failed, please try again.</p>';
}
} else {
echo '<p>You must login using your username and password.</p>';
}

?>
<form action="" method="post">
<div class="input_group">
<label>Username</label>
<input type="text" class="input" name="username" value="">
</div>
<div class="input_group">
<label>Password</label>
<input type="password" class="input" name="password" value="">
</div>
<input type="submit" value="Login" />
</form>

Я надеюсь, что это поможет любому, кто искал достаточно хорошую систему обслуживания.

Помните, что вы можете добавить дополнительные функции к этому добавить ссылку выхода, изменить верхний / нижний колонтитул в зависимости от того, вошли или нет и т. д.

-1

По вопросам рекламы [email protected]