2012-07-13 63 views
0

我有一個基於Web的門戶,我們有兩種類型的登錄頁面,具體取決於最終用戶,管理員和員工。任何想要登錄網絡門戶的人都必須先輸入他的類型(即最終用戶,管理員,助理),然後他必須在下一頁提供他的ID和密碼。使用PHP和JSP在另一個網頁中獲取cookie值

現在有幾個用戶和同事。我希望任何用戶或員工都不應該能夠更改其他用戶或同事的數據庫值。所以我嘗試使用setcookie函數將用戶標識存儲在登錄頁面中。我想在其他頁面訪問該值,用戶可以在其中查看分配給其名稱的文件。

我想在另一個網頁中使用MySQL查詢從數據庫中顯示這些文件。

$result = mysql_query("select file_name from File where 
    user_name = '$user_name';"); 

但我沒有得到在 '$ user_ID的'

Cookie值我用這個代碼:

<?php 
//$mycookie = $_COOKIE["cookie_user_name"]; 
if (isset($mycookie)) 
    print "<p>The value in cookie - $mycookie</p>"; 
else 
    print "<p>There is no value in cookie.</p>"; 
?> 

請幫助我。謝謝。

+0

你能告訴我們你如何使用'setcookie'嗎? – Leri 2012-07-13 08:57:40

+0

將登錄信息存儲在cookie中不是一個好主意。用戶將能夠將其改變爲任何他想要的東西。你可以(應該)使用會話。 – germi 2012-07-13 09:04:20

+0

也許你正在不同的域名上提供頁面?這種方式cookies不起作用。 – 2012-07-13 09:05:29

回答

0

您正在做isset($mycookie) - 但$mycookie將始終設置,因爲您先前只設置了一行。

您需要檢查是否設置了$_COOKIE["cookie_user_name"]。 (我建議使用empty()函數代替isset()。)

有關更完整的答案,請附上代碼setcookie

只是一個溫柔的建議:你沒有資格編寫安全代碼,你仍然是一個新手。等到你有更多的經驗,然後再嘗試編寫安全代碼。

+0

謝謝@ariel現在我已經糾正它。我已刪除該行...現在它只在這裏登錄頁面$ result2 = mysql_query(「select user_name from associate where user_id ='$ user_id';」); setcookie(「cookie_user_name」,$ result2); – 2012-07-13 12:10:48

+0

它仍然顯示cookie中沒有值 – 2012-07-13 12:11:56

+0

感謝您的建議......但是如果我不嘗試寫這個安全代碼,我將如何獲得經驗...... – 2012-07-13 12:13:20

相關問題