2012-02-24 41 views
-2
我有一個網站,我要創建這樣一個問題

頁我想知道:PHP限制

我怎樣才能防止未經身份驗證的用戶可以通過做一些像存取權限的網站:

Website.com/content

它假設未經身份驗證的用戶無法訪問頁面內容,但如果他們直接在地址欄中寫入,他們可以看到內容。那麼如何防止這種情況發生呢?如何讓只有通過身份驗證的用戶在地址欄中輸入內容時才能看到內容?

我想這樣做使用cookie ...通過我已經實現了使用數據庫驗證的方式。

+0

那麼,在輸出它之前,檢查'website.com/content'頁面上的cookie和授權。 – deceze 2012-02-24 06:08:32

+0

你能更具體嗎? 'Website.com/content'包含什麼?它是另一個PHP腳本還是內容文件,如圖像? – 2012-02-24 06:13:09

回答

-1

我通常是一個asp.net開發人員。在asp.net中,我們有一個母版頁,它就像一個可以放入其他內容頁的模板。

如果PHP有類似的東西(包括?)那麼你可以創建一個函數來檢查用戶是否應該是他在哪裏,如果沒有將他重定向到登錄頁面。並將其包含在所有不可訪問的頁面上。

0

在頁面上放置一個檢查

<? 
if (!authorized()) { # substitite with your own authorize function 
    header('401 Unauthorized', 401); 
    die('You are not authorized!'); 
} 
?> 

UPDATE:將它放在開始輸出之前。如果您未使用ob_start,則表示位於頁面頂部。

0

比方說你有錯誤消息「website.com/unauthorize」

和inlcude文件,「check_auth.php」頁面,而用戶登錄,驗證用戶,並通過與創建cookie「USERLOGIN 「值爲0或1. 1表示成功登錄,0表示無效的id/pass。

並在您想要限制的每個文件中包含check_auth.php。

include "check_auth.php"; 

,並在該文件中寫:

<?php 
if (! isset($_COOKIE['userLogin']) && $_COOKIE['userLogin'] != 1) 
{ 
    header("Location: website.com/unauthorize"); 
} 

這將檢查登錄狀態並重定向取消授權用戶的錯誤頁面。將此文件包含在您需要限制的頂部的所有頁面中。