2012-10-09 71 views
0

登錄時,我有一個登錄頁面,當你登錄成功,你將被重定向到一個名爲gallery.html頁面。但是,當你使用/gallery.html鍵入url時,它會將你帶到登錄時嘗試保護的頁面。使用條件語句防止打開頁面的最佳方式是通過鍵入確切的網址是什麼?像頁之前的檢查開始加載,加載頁面登錄時,只有在

回答

1

,如果你想不顯示gallery.html匿名用戶,在頁面頂部使用此代碼

if(!isset($_SESSION['your_user_login_id'])) 
{ 
    //redirect to home page 
} 

這個代碼將防止匿名用戶查看這一頁。

3

簡單,使用上登錄session變量,將用戶重定向到gallery.html如果會話ID設置,否則重定向到登錄頁面,這樣的事情

if($_SESSION['userid']){ 
    header('Location: gallery.html') ; 
    exit(); 
}elseif($_SESSION['userid'] == ''){ 
    header('Location: login.html') ; 
    exit(); 
} 
+0

像這樣的東西可以方便地放入一個包含文件,該文件可以很容易地包含在任何需要使用戶可見的頁面上。 –

+0

謝謝你的好答案。那是我在想什麼,但不知道是否有另一種方式。欣賞意見 – Beanno1116

0

沒有阻止他人的方式輸入URL並請求頁面。你唯一能做的就是檢查他們是否登錄在網頁上。在gallery.php

1

使用$ _SESSION變量,以檢查是否$ _SESSION設置。

雖然,我相信你將不得不從gallery.html更改文件名gallery.php

<?php 
    if (!isset($_SESSION['secret_variable']) 
    { 
     echo "<br/>Error Message<br/>"; 
     return; 
    } 
    ?> 

繼續與代碼的其餘部分。如果用戶通過指定URL訪問gallery.php,他/她將以Error Message結束。你搞清楚之後,用戶有一個有效的用戶名和密碼,以確保有效的登錄

$_SESSION['secret_variable']應設置。

謝謝.. :)

0

你必須設置Cookie或會話一旦用戶登錄。所以你會設置爲用戶會話或餅乾。而每次輸入特定的網址,你必須檢查會話用於顯示該網頁或者重定向到登錄頁面

1

您需要設置登錄狀態的會話,並在您將要保護的頁面檢查會議。

<?php 
     session_start(); 
     if (!isset($_SESSION['login_status'])) { 
       // Add permission denied message or redirect back to the login page 
     } 

    ?> 

然而,這可以在PHP頁面來完成,而不是在所有以.html extenstion頁面(除非您已明確指定Web服務器配置與「將AddType X的httpd - PHP的。html的」指令。)

1

最簡單的方法是使用php。將gallery.html保存爲gallery.php或在所有編碼之前在gallery.html頁面的頂部輸入以下代碼。然後在這裏使用SESSION變量($ _SESSION ['userID'])來存儲當前的登錄細節。

<?php if(! isset($_SESSION['userID'])){ //userID or something to identify the user header('Location:login.php'); //redirects to the login page }else{ header('Location:gallery.php'); //redirect to the gallery.php for valid login } ?>

2

我想創建一個函數來處理這種事情:使用三元操作

function loggedin() { 
    if (isset($_SESSION['user_id'])) { 
     return true; 
    } else { 
     return false; 
    } 
} 

或者其他更短:

function loggedin() { 
    return (isset($_SESSION['user_id'])) ? true : false; 
} 

我們做檢查,只需if語句調用函數中的:

if (loggedin()) { 
    // only logged in users can see this 
} 

OR

if (!logged_in()) { 
    // only users who aren't looged in can see this 
} 

比打字像每次if (!isset($_SESSION['user_id'])) {容易得多!

+1

我喜歡這種檢查方式。特別是更好,以免打字 – Beanno1116

相關問題