www.example.com/index.html
是一个要求输入密码的页面,输入后会运行www.example.com/login.php
。
<?php
if (isset($_POST['pw']) && ($_POST['pw'] == "mypassword"))
{
// Location after Logged in
header('Location: http://example.com/kareha/index.html');
}
else
{
// If not Logged in
header('Location: http://example.com/index.html');
}
?>
然后被重定向到www.example.com/kareha/
。
问题是,任何人都可以输入并直接导航到www.example.com/kareha/
。
我有什么办法可以保护这个索引文件(或网站上的其他任何地方),以便任何未登录的人都被重定向到主登录页面?
另外,如果它通过.htaccess
受到保护会有帮助吗? (/kareha/index.html
会根据模板自动更新,每次我搞乱时都会破坏模板)
编辑:也许就是开始与/login.php
的会话,然后在.htaccess
文件夹中/kareha/
检查会话的内容?
答案 0 :(得分:1)
您需要使用会话或.htpasswd。要使用会话,请将您的html文件更改为php
这是登录脚本的顶部
<?php
session_start();
// see if the form has been posted
if($_SERVER['REQUEST_METHOD'] == 'POST') {
// check for the password
if($_POST['pw'] == "mypassword") {
// set a session
$_SESSION['loggedin'] = true;
// redirect to kareha/
header('Location: http://example.com/kareha/index.php');
}
} else {
header('Location: http://example.com/index.html');
}
// put HTML and login form here...
kareha / index.php
的最顶端<?php
session_start();
if(!isset($_SESSION['loggedin'])) {
// redirect to login page
header('Location: http://example.com/index.html');
}
// put rest of page here
您可以在此处阅读有关会话的信息:http://www.php.net/manual/en/book.session.php
编辑:我误读了原来的问题。订正...