2011-03-14 24 views
0

我有一種形式......每一類都有不同的ID ...如何防止用戶使用的每個* .PHP貓=」

例子: -

http://localhost/control/newdpppage/...bank.php?cat=3

http://localhost/control/newdpppage/...bank.php?cat=4

登錄後,每個用戶自己去分配他們的網頁...

-The問題.. 如何防止我們可以看到cat = 3的er1查看分配給User2的cat = 4上的數據。

謝謝

我使用了JavaScript

JavaScript代碼:

<SCRIPT language=JavaScript> 
function reload(form){ 
var val=form.cat.options[form.cat.options.selectedIndex].valueself.location='dpp_add_lorthbankphp?cat=' + val; 
} 
</script> 
+1

你應該做的是在服務器端...從什麼禁用您對權限的javascript檢查站的用戶? – n00b 2011-03-14 08:03:01

+0

用戶和貓之間的關係是什麼? – 2011-03-14 08:24:13

+1

一個人餵食另一個,清理垃圾,併爲他們打開門,如果他們想出去。 – 2011-03-14 10:49:52

回答

3

您不能防止有人改變URL。您只能使用一些授權機制來檢查用戶是否被允許訪問該類別,如果他/她沒有被授權,則拒絕該訪問。但在服務器端執行此操作,因爲您無法控制客戶端。

0

是更好的選擇是,如果您更改服務器端代碼以顯示限制或在無效的cat id觸發時重定向到用戶指定的頁面。

+0

$ sql = mysql_query(「select * from usercategory where uid =」。$ _ SESSION ['uid']。「AND catid =」。$ _ GET ['cat']。「」); 如果(mysql_num_rows($ SQL)){// 讓用戶做的東西 }其他{// 重定向到錯誤頁面或死亡(「你也無權進行這一類」) } – shakur 2011-03-14 10:25:25

1

從您的要求,用戶和類別之間有一些關係。這應該在數據庫中實現。使用會話變量來存儲用戶標識符(和允許的類別的maby數組),那麼你將不會依賴於請求的查詢字符串。

0

我想這和它工作得很好:)

$sql=mysql_query("select * from usercategory where uid=".$_SESSION['uid']." AND catid=".$_GET['cat']."");if(mysql_num_rows($sql)){//let the user do stuffs}else{//redirect to error page or die("you dont have permission to this category")}