[英]Prevent direct access to a webpage by typing the URL
因此,我在goDaddy上托管了我的網站(我們的電話為abc.com )。
我有一個登錄頁面( abc.com/login.html )。
驗證登錄憑據后,將轉到第二個頁面,稱為預訂( abc.com/booking.html )。
因此,我不希望人們能夠輸入abc.com/booking.html並進行訪問。 我希望他們去abc.com/login.html ,然后去abc.com/booking.html
所以我遇到了2種解決方法-
因此您的登錄屏幕上應該已經實現了會話代碼,該會話代碼具有一個變量,該變量指定用戶是否登錄。 如果尚未實現,則代碼將類似於:
<?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
}
例如。
if (!isset($_POST['auth'])) {
// redirect user back to login page
} else {
// successful login
}
你可以像
重命名您要進行身份驗證的所有頁面的擴展名
例如
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');
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.