【发布时间】:2017-06-28 08:01:09
【问题描述】:
所以我希望有人能给我一个简单的功能或解决方案,在我的网站上放置一个默认页面。这意味着如果用户试图访问我网站的另一个页面,他就无法访问。他需要通过这个默认页面。因为在我的站点中,我有一个管理页面,我不想让一个简单的用户访问它。我在互联网上做了一些研究,但我没有找到一个很好的答案来解决我的问题。有没有办法简单地通过代码而不更改索引文件来做到这一点?更具体地说,我希望它仅适用于我的一个网站,而不适用于所有网站。我有一个管理员登录系统,但是由于您可以通过输入地址而不使用登录系统直接访问管理页面,所以这是一个问题。我确实尝试过建立索引,但问题是当我尝试登录时,它会将我重定向到默认页面而不是管理页面。我将不胜感激。最好的问候一个年轻的程序员。
这里是 index.php
<?php
header('Location: Foredeckmain.php');
exit;
?>
这里是登录页面
<?php
ob_start();
session_start();
?>
<html lang = "en">
<head>
<title>Foredeck Login.com</title>
<link href = "css/bootstrap.min.css" rel = "stylesheet">
<style>
body {
padding-top: 40px;
padding-bottom: 40px;
background-color: #6495ED;
}
.form-signin {
max-width: 330px;
padding: 15px;
margin: 0 auto;
color: #000000;
}
.form-signin .form-signin-heading,
.form-signin .checkbox {
margin-bottom: 10px;
}
.form-signin .checkbox {
font-weight: normal;
}
.form-signin .form-control {
position: relative;
height: auto;
-webkit-box-sizing: border-box;
-moz-box-sizing: border-box;
box-sizing: border-box;
padding: 10px;
font-size: 16px;
}
.form-signin .form-control:focus {
z-index: 2;
}
.form-signin input[type="text"] {
margin-bottom: 0 px;
border-bottom-right-radius: 0;
border-bottom-left-radius: 0;
border-color:#000000;
}
.form-signin input[type="password"] {
margin-bottom: 10px;
border-top-left-radius: 0;
border-top-right-radius: 0;
border-color:#000000;
}
h3{
text-align: ;
color: #000000;
}
h1{
text-align: ;
color: #000000;
}
</style>
</head>
<?php
$msg = '';
if (isset($_POST['login']) && !empty($_POST['username'])
&& !empty($_POST['password'])) {
if ($_POST['username'] == 'foredeck' &&
$_POST['password'] == 'foredeck1') {
$_SESSION['valid'] = true;
$_SESSION['timeout'] = time();
$_SESSION['username'] = 'foredeck';
$msg ='Connexion Réussite';
echo "<script type='text/javascript'>alert('Connexion Réussite');
window.location='foredeck.php'; </script>";
header("refresh:3 location: foredeck.php");
}else {
$msg='Identifiant ou Mot de Passe incorrecte';
$msg = "<script type='text/javascript'>alert('$msg')</script>";
}
}
?>
</div> <!-- /container -->
<div class = "container">
<form class = "form-signin" role = "form"
action = "<?php echo htmlspecialchars($_SERVER['PHP_SELF']);
?>" method = "post">
<h4 class = "form-signin-heading"><?php echo $msg; ?></h4>
<h1>Foredeck@Admin</h1>
<h3>Entrer l'identifant et le mot de passe:</h3>
<input type = "text" class = "form-control"
name = "username" placeholder = "Identifiant "
required autofocus></br>
<input type = "password" class = "form-control"
name = "password" placeholder = "Mot de passe " required>
<br>
<button class = "btn btn-lg btn-primary btn-block" type = "submit"
name = "login">Se connecter</button>
</form>
</div>
</body>
这里是注销部分
<?php
session_start();
unset($_SESSION["username"]);
unset($_SESSION["password"]);
echo 'Déconnexion en cours...';
header('Refresh: 2; URL = foredeckmain.php');
?>
【问题讨论】:
-
不确定你想做什么。仅使用代码(例如 index.php),您无法阻止其他用户使用完整 url 访问管理页面。此外,您有一个管理员登录系统,如果普通用户访问管理页面,这应该不是问题。也许你可以解释更多你想做什么
-
好吧,如果我在地址栏中输入您以管理员身份登录后正常获得的网页的确切地址,我可以访问该页面,但我不希望那样。您必须登录才能访问此页面,否则它会将您重定向到我的主页。登录页面 => 管理页面。如果我输入管理页面的地址,我可以访问它,这就是没有登录的问题。
-
您应该更改“登录系统”而不是 index 文件。您无需登录即可访问管理页面,可能您的登录系统已存储会话以记住您。您可以重新访问并不意味着其他人可以。
标签: php indexing directory default