我正在尝试在我们的网站上创建一个相当简单但有效的维护设置。该功能应该起作用的方式是,如果用户登陆网站上的任何页面,
https://www.ourbusiness.org/assets/home2.do/unlock-maintenance
和https://www.ourbusiness.org/legal/all
除外header()
功能将启动并将用户重定向到{{1 }}。我已经看到了其他问题,特别是this one,但在这一个问题中我认为可以改进;通过添加这么少量的代码。
所以首先是我们的https://www.ourbusiness.org/error/offline/
文件:
Config.Run.php:
config.php
解锁-maintenance.php
<?php
define("URL", "https://www.ourbusiness.org");
define("MAINTENANCE", "1");
if(MAINTENANCE == 1) {
if(!isset($_SESSION['MAINTENANCE_UNLOCK'])) {
header("Location: ".URL."/error/offline/");
}
}
为什么这不起作用?我甚至无法访问该文件以解锁该站点,也无法访问目录<?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>
答案 0 :(得分:-1)
请注意,是否有人决定使用它不是最安全的身份验证系统
我在对我们的代码进行了一些修补之后解决了这个问题 - 我提出了一个解决方案,它非常有效。请参阅下面的结果:
在我们的 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>
我希望这能帮助那些一直在寻找相当好的维护系统的人。
请记住,您可以为此添加注销链接,更改页眉/页脚包含添加更多功能,具体取决于是否已登录等。