通过键入URL阻止直接访问网页

时间:2016-05-29 12:35:50

标签: php html apache

所以我在goDaddy上托管我的网站(让我们的电话是 abc.com )。

我有一个登录页面( abc.com/login.html )。

一旦验证登录凭据,我就会转到第二页,称为预订( abc.com/booking.html )。

所以我不希望别人能够输入 abc.com/booking.html 并访问它。我希望他们转到 abc.com/login.html ,然后转到 abc.com/booking.html

所以我遇到了两种方法来解决这个问题 -

  1. 在booking.html中包含验证php脚本,并将扩展名从html更改为phtml。 - >这不适合我
  2. 包含.htacess文件。 - >我不确定该怎么做

3 个答案:

答案 0 :(得分:1)

所以你的登录界面应该已经实现了会话代码,其中有一个变量,用于指定用户是否登录。如果您还没有实现,代码看起来类似于:

<?php session_start();//at the very top of the page
?>
//... your own code
//if the user successfully logs in then:
$_SESSION['authenticated']=true;

然后在booking.php页面上(它应该是php允许php脚本,这对于验证用户是否登录非常重要),然后你会检查用户是否登录。如果他这样做了,那么其余的页面加载,如果他没有,你会将它们重定向到login.php:

在booking.php的最顶部:

<?php session_start();
if (!isset($_SESSION['authenticated']))
{
    //if the value was not set, you redirect the user to your login page
    header('Location https://www.example.com/login.php');
    exit;
}
else
{
   //if the user did login, then you load the page normally
}

答案 1 :(得分:0)

  1. 使用$ _SESSION或
  2. 将一个变量从login.php传递给booking.php。然后根据使用$ _POST方法传递的变量对每个用户进行身份验证。
  3. 例如。

    *

答案 2 :(得分:0)

你可以这样做

重命名要进行此身份验证的所有网页的扩展程序

e.g。

login.html >> login.php
booking.html >> booking.php
booking-suceess.html >> booking-success.php

使用以下代码

创建一个脚本,即 auth.php
<?php
session_start();
if(!isset($_SESSION['username'])){
    header("location:login.php");
}
?>

login.php 添加会话

$_SESSION['username'] = $_POST['username'];

现在您可以在任何需要登录的php页面中添加 auth.php ,如下所示:

include ('auth.php');