2015-06-10 305 views
-1

我想创建一个密码保护的网站。在这里,我想要如果用户第一次访问我的网站,然后需要插入密码来访问我的网站。他们第一次输入密码就可以自由访问我的网站。网站访问通过密码保护

这是它使用javascriptphp我该怎么办:

<?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

您需要的逻辑不会工作使用cookies或会话数据库中保存的用户IP地址并且每次请求将来自同一个IP时检查。如果相同,则允许其他验证。 – Deep

+1

对于匿名用户,考虑将信息存储在cookie中,因为您无法记住哪个用户输入了密码,但它将依赖于浏览器! – Rohit416

+0

@DeepKakkar,我可以在不使用数据库的情况下执行此操作吗?谢谢 – user3733831

回答

5

不要在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目录之外它可以是任何你想要的,你只是想确保它是不是你的网络内的任何地方。目录(否则它将可供公众查看))。

在该目录中,创建一个名为.htpasswd的文件。这个文件只需要一个用户名和加密的密码。此页面将允许您使用密码加密创建您的名字:http://www.htaccesstools.com/htpasswd-generator/。只需将其粘贴到您的.htpasswd文件中即可。

即便如此,如果您只使用http而不是https,但您使用的任何密码都可以被拦截,但如果您之前没有使用http,则设置https会有点困难。

+0

你能告诉我一个例子吗?谢谢。 – user3733831

+0

你更喜欢哪种选择? (我添加了一个替代我的答案)。 – kojow7

+0

第二种方法更好... – user3733831

1

这并不安全。用户可以禁用JS。

正确的方法之一是使用http auth

1

首先你把简单的密码在java脚本本身? 从来没有做到这一点,也

如果($页==“指数”)

始终构成为true,以便