2016-05-29 44 views
0

防止直接訪問網頁因此,我在我的網站上託管我們的網站(我們打電話是abc.com)上goDaddy。通過鍵入URL

我有一個登錄頁面(abc.com/login.html)。

一旦驗證了登錄憑證,我就可以進入第二個頁面(名爲booking)(abc.com/booking.html)。

所以我不希望人們只能輸入abc.com/booking.html並訪問它。我希望他們去abc.com/login.html,然後去abc.com/booking.html

所以我碰到2層的方法來解決這個問題 -

  1. 包括一個在booking.html中驗證php腳本並將擴展名從html更改爲phtml。 - >這對我不起作用
  2. 包含一個.htacess文件。 - >我真的不知道該怎麼做
+0

您可能需要用於預防'_SESSION' $。 –

+0

你需要做一些服務器端。 .htaccess文件可能會替代您的登錄頁面,我不認爲您需要這樣做。 因此,正如其他人所說的那樣,您需要使用PHP或其他服務器語言(node.js,Java,...我不知道他們哪些在goDaddy上可用)。 這個概念是在用戶登錄後給用戶一個會話ID。這個會話ID可以存儲在一個cookie或somwhere中。當用戶訪問頁面時,腳本檢查會話ID。只有該ID有效,用戶纔可以繼續。 – TuringTux

+0

記住'$ _SESSION'運行'PHP'而不是'HTML'。 –

回答

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腳本這是如果用戶是驗證超重要登錄),然後檢查用戶是否登錄。如果他這樣做了,則會加載其餘的頁面,如果他沒有登錄,則會將其重定向到登錄。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 
} 
+0

工程。謝謝 – kalpitha

+0

@kalpitha沒問題:)。哦,如果這個答案適合你,請接受它(帶有綠色的勾號),以便將來的用戶和讀者知道它適合你。 – Webeng

0
  1. 使用$ _SESSION或
  2. 從login.php中傳遞一個變量booking.php。然後根據使用$ _POST方法傳遞的變量驗證每個用戶。

例如,

if (!isset($_POST['auth'])) { 
// redirect user back to login page 
} else { 
// successful login 
} 
0

你可以不喜歡它

需要此認證

如所有頁面的命名擴展

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']; 

現在你可以添加auth.php在任何您想要登錄的php頁面中,如下所示:

include ('auth.php');