我试图创建一个密码保护的网站。这里我想做,如果用户第一次访问我的网站,然后需要插入密码,以访问我的网站。第一次输入密码时,他们可以自由访问我的网站。
这就是我如何使用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; ?>这是可行的,但我的问题是,如果用户再次转到索引页,他们需要插入密码。
有人能告诉我怎么解决这个问题吗。谢谢。
发布于 2015-06-10 07:31:48
不要在JavaScript中这样做。任何人都可以查看您的源代码并查看密码。用PHP代替密码签入。然后使用$_SESSION变量在您的站点上保存状态。您还可能希望在长期访问中使用$_COOKIE变量,但在大多数情况下,通常倾向于只使用$_SESSION本身进行密码访问。
另一种方法是使用您的web服务器。例如,如果您正在使用Apache,您可以在您的网站根目录创建一个.htaccess文件来询问名称和密码。这样你甚至不需要编码任何东西。
要执行第二个选项,请在web目录的根目录中创建一个名为.htaccess的文件。在文件中放入以下内容:
AuthType Basic
AuthName "Password Protected Area"
AuthUserFile /opt/passwords/.htpasswd
Require valid-user(其中/opt/密码是web目录之外的目录位置。它可以在您想要的任何地方,您只想确保它不在您的web目录中(否则它将可供公众查看)。
在该目录中,创建一个名为.htpasswd的文件。该文件只需使用用户名和加密密码即可。此页面将允许您使用密码加密:http://www.htaccesstools.com/htpasswd-generator/创建您的名称。只需将其粘贴到.htpasswd文件中即可。
尽管如此,如果您只使用http而不是https,则可以拦截您使用的任何密码,但是如果您以前没有使用过https,那么设置https就有点困难了。
发布于 2015-06-10 07:32:05
首先,您是否将普通密码放入java脚本本身?永远不要那么做,而且
if($page == 'index')
总是将结构构造为true,这样逻辑就不能使用cookie或会话
https://stackoverflow.com/questions/30749768
复制相似问题