我正在尝试创建一个受密码保护的网站。在这里我想做的是,如果用户第一次访问我的网站然后需要插入密码来访问我的网站。他们第一次输入密码时可以自由访问我的网站。
我就是这样做的javascript
和php
:
<?php if($page == 'index'): ?>
<script language="Javascript">
//prompt.
var password;
var correctPass = "123456";
password = prompt("Enter in the password:","");
if(password == correctPass) {
alert('click OK to view this site');
} else {
window.location = "http://google.com"
}
//->
</script>
<?php endif; ?>
这是有效但我的问题是如果用户再次进入索引页面,他们需要插入密码。
任何人都可以告诉我如何解决这个问题。 谢谢。
答案 0 :(得分:6)
不要在JavaScript中执行此操作。任何人都可以查看您的源代码并查看密码。用PHP检查密码。然后使用$_SESSION
变量来保存您网站上的状态。您可能还希望使用$_COOKIE
变量进行长期访问,但在大多数情况下,密码访问通常只需$_SESSION
本身。{/ p>
另一种方法是使用您的Web服务器。例如,如果您使用的是Apache,则可以在网站的根目录下创建.htaccess
文件,以获取名称和密码。这样你甚至不需要编码任何东西。
要执行第二个选项,请在Web目录的根目录中创建名为.htaccess的文件。在文件中将其放入:
AuthType Basic
AuthName "Password Protected Area"
AuthUserFile /opt/passwords/.htpasswd
Require valid-user
(其中/ opt / passwords是您的网络目录之外的目录位置。它可以在您想要的任何地方,您只是想确保它不在您的网络目录中的任何位置(否则它将可供公众查看) )。
在该目录中,创建一个名为.htpasswd的文件。此文件将只使用用户名和加密密码。此页面允许您使用密码加密创建您的姓名:http://www.htaccesstools.com/htpasswd-generator/。只需将其粘贴到.htpasswd文件中即可。
话虽如此,如果您只使用http而不是https,则可以拦截您使用的任何密码,但如果您之前没有使用https设置https有点困难。
答案 1 :(得分:1)
这不安全。用户可以禁用JS。
正确的方法之一是使用http auth。
答案 2 :(得分:0)
首先是你把普通密码放在java脚本本身? 从来没有那样做也
if($ page ==&#39; index&#39;)
始终构造为true,因此逻辑无法使用cookie或会话