使用.htaccess密码没有用户名只是密码和html表单的页面

时间:2013-01-12 21:30:33

标签: .htaccess password-protection

我是建立网站的新手,过去几个月一直在建设网站。我不想在我的网站上添加一个受密码保护的页面,其中包含要下载的文件库。我已经在我的主页上构建了一个简单的表单来输入登录详细信息,但我只想包含一个密码而不是用户名。我遇到的问题是所有当前的.htaccess教程都需要用户名和密码,你不能在网站上使用自己的登录框。如果有人能提供代码并告诉我把它放在哪里,我会很感激。

我的index.html上的登录框是一个简单的表单:

<form>
Member login:<input type="password" name="password" />
<input type="button" value="Login" />
</form>

感谢您看一下,

1 个答案:

答案 0 :(得分:3)

如果需要服务器端脚本来检查密码是否正确。

首先,您必须修改表单以调用脚本

<form action="login.php" method="post">
  Member login:<input type="password" name="password" />
  <input type="submit" value="Login" />
</form>

的变化:

  • action:定义用户单击提交按钮时调用的脚本
  • 输入类型=提交:导致表单将数据发送到服务器的提交按钮
  • 方法:定义数据传递到服务器的方式

“login.php”的一个简单示例就是这个PHP脚本:

<?php
  if($_POST["password"] == "Your password here.") {
?>
Your website here.
<?php
  }
  else
  {
?>
Error message here.
<?php
  }
?>

第2行检查表单发布的密码字段是否等于右侧的字符串(“您的密码在这里”)。

文字“你的网站在这里。”密码正确时显示。否则它将显示“此处出现错误消息”。您可以使用常规HTML代码替换该文本。

除了你的评论:

登录后永远不应重定向到HTML文件,因为该文件必须公开才能重定向到该文件。 相反,您应该使用.htaccess将其设为私有(只能通过localhost访问)并通过php脚本包含它。

.htacces将文件夹设为私有:

Order deny,allow
Deny from all
Allow from 127.0.0.1

更新的PHP脚本(secureFolder是私人文件夹):

<?php
  if($_POST["password"] == "Your password here.") {
    include("secureFolder/members.html");
  }
  else
  {
?>
Error message here.
<?php
  }
?>

请注意,您只能以这种方式访问​​单个网站。要允许用户在登录后打开多个站点,您将需要一个PHP会话来保存用户登录并提供页面。