如何防止用户通过写入 URL 直接访问我的 html 页面?

zee*_*ali 5 php authorization

我想要一个硬编码的登录页面(login.html),没有数据库。如果一个人写了正确的用户名和密码,它会重定向到 ( page2.html )。

现在我的问题是,如果一个人直接为 page2.html 编写 URL,他将能够访问它,而无需任何登录。

理想案例=> www.example.com/login.html => 如果正确 => www.example.com/page2.html

问题案例=> www.example.com/page2.html => page2.html ,没有登录 :(

Lut*_*kwa 7

您可以使用这样的 php 会话来控制这一切

  //set the session on the login page
   $_SESSION['loggedIn'] = true;  

 //on the second page you check if that session is true, else redirect to the login page  
  if($_SESSION['loggedIn'])
      //allow
  else
      //redirect to the login page
      header('Location: /login.html');  
Run Code Online (Sandbox Code Playgroud)

一个会话是一种能够存储信息(变量)在多个页面中使用。默认情况下,会话变量持续到用户关闭浏览器。

为简单起见,您可以将页面更改为php(例如login.php)。

  • 第 1 行:在您的login.php页面中,您将首先检查用户名和密码是否正确,如果正确,请设置$_SESSION['loggedIn'] = true

  • 第 2 行:在您的第二页 ( page2.php) 中,您将首先通过检查会话是否具有值来检查用户是否登录if($_SESSION['loggedIn']) {//allow processing}

  • 第 3 行:如果该会话变量为空,则表示用户未登录,将其重定向到登录页面else { header('Location:/login.php');}


小智 0

使用 login.php 的完整路径更改网站的默认路径。下次当任何用户输入您的网址时,他们将被重定向到给定路径,即 yourpath>login.php

希望它会有所帮助。