2012-09-15 137 views
3

我有一個頁面,我想密碼保護。如果用戶點擊URL www.webpage.com/page.php,則該頁面應該可訪問,並且將通過電子郵件發送給用戶以及驗證碼。需要密碼才能查看網頁[jQuery,js或php]

我有用jquery編寫的大部分頁面。我想知道如何在沒有正確密碼的情況下阻止訪問頁面。用戶輸入正確的密碼並驗證後會顯示內容。

我試着用jQuery對話做一些事情,隱藏內容然後在驗證後顯示它,但是如果用戶查看頁面的源代碼,用戶可以查看內容。

我應該如何去做?先謝謝了!

更新:謝謝大家!我只是想避免創建一個新的頁面。我想我將不得不使用會話。

回答

0

您需要驗證他們在PHP中使用(正確的)密碼,然後只有然後實際輸出內容給他們。如果他們沒有密碼,綁紮隱藏它的可見性是一個不成功的場景。

通常,Session變量用於此目的。驗證腳本檢查用戶登錄名/密碼並將其接受,併爲用戶分配一個會話變量。

然後在您的實際代碼中(針對祕密頁面),檢查該會話變量,如果它存在,則繼續向用戶顯示內容,如果它不匹配,則顯示錯誤消息或通過header()將用戶重定向到另一個頁面。

+0

所以在這種情況下,我需要創建一個登錄網站,我有一個,一旦他們驗證,然後將其保存到會話,然後如果會話進行身份驗證,然後給予訪問?有沒有其他方法? – Jareddlc

+0

@Jareddlc有很多方法可以保護用戶內容(因爲在編碼方面有很多方法可以做到),但這可能是最直接,最簡單和最可靠的方法。 – Fluffeh

1

是的,你可以做到這一點,但如果你保護頁面的密碼只有客戶端它不是一個好的甚至好主意,因爲用戶可以修改JavaScript/jQuery的,你可以通過ajax驗證密碼後加載內容。

,以防止沒有密碼的訪問不會加載它沒有密碼驗證數據(因爲我認爲你正在覈實阿賈克斯密碼)

+0

是的,即時通訊使用jquery.post()方法。我想沒有逃脫有一個前頁,驗證用戶和會議 – Jareddlc

1

如果你只是想快速和簡單的解決方案,您也可以考慮使用PHP進行HTTP身份驗證。它可以那麼容易,因爲下面

<? 
header("Content-type: text/html; charset=utf-8"); 
if(empty($_SERVER['PHP_AUTH_USER'])) { 
    header('WWW-Authenticate: Basic realm="Please input"'); 
    header('HTTP/1.0 401 Unauthorized'); 
    echo 'Please enter the correct username and password.'; 
    exit; 
} else { 
    echo "Username: ".$_SERVER['PHP_AUTH_USER']."<br>"; 
    echo "Password: ".$_SERVER['PHP_AUTH_PW']."<p>"; 
    $username = "demo"; 
    $password = "demo"; 
    if(($_SERVER['PHP_AUTH_USER'] != $username) || ($_SERVER['PHP_AUTH_PW'] != $password)) { 
     echo "Login Failed!"; 
    } else { 
     echo "You're in!"; 
    } 
} 
?> 

您還可以找到一個更詳細的實施here

相關問題