2013-04-11 70 views
0

我有MySQL數據庫中的表,我想能夠生成一個唯一的字符串,以便用戶可以輸入將運行適當的查詢並顯示結果的字符串。生成獨特的視圖ID

例)

id | text   | view_code <--this would be randomly generated 
1 | testing  | fsj2343lfs 
2 | another_test | fsdflj2dff 

會有一個頁面上的文本框,將採取view_code作爲輸入。如果文本輸入與表格中的某個view_codes相匹配,則相應的記錄將顯示給用戶。

編輯:這個想法是,我會給用戶#1 view_code'fsj2343lfs',這將只返回記錄'1 |文字「並將其顯示在網頁上。這是爲了確保該用戶只能看到該記錄,並且無法訪問數據庫中的任何其他記錄。

這是一個很好的方法來解決這個問題嗎?有沒有更好的工作方式?謝謝!

+0

你到底在問什麼? – 2013-04-11 00:38:41

+0

我想知道如果上面是一個很好的方式來生成代碼,我可以給用戶,輸入時,將拉出相應的記錄,並顯示給用戶。例如,我會爲用戶#1提供'fsj2343lfs'的ID,當用戶在網頁上輸入該ID時,他們將看到記錄'1 |測試'將從數據庫中提取。該表將包含一堆記錄,但用戶#1只需查看ID爲1的記錄並且不需要其他記錄。 – 2013-04-11 00:42:16

回答

1

正確的方式做你想要做的是讓用戶登錄後對您網站初次訪問什麼,然後存儲他們usernamepassword$_SESSION變量。然後,當您比較用戶輸入的唯一ID時,您會要求數據庫驗證用戶的唯一ID,該用戶的用戶名和密碼與存儲在SESSION中的價值相符。

+0

我在表(id列)中有自動遞增字段。我會給用戶自己增加的記錄感興趣嗎?這聽起來並不安全,因爲任何其他用戶都可以輸入數字並可能看到數據庫中的另一條記錄。 – 2013-04-11 00:44:48

+0

給用戶一個自動生成的號碼並沒有什麼不安全的地方。大多數系統都會在生成HTML表格時指定行,等等。 – 2013-04-11 00:47:56

+0

因此,如果我在頁面上有提示輸入自動生成號碼的文本框,那沒關係?沒有必要生成一個隨機字符串來給用戶呢?我覺得其他用戶可以在文本框中輸入一個隨機的低數字(即2),並有權訪問他們不應該看到的記錄。 – 2013-04-11 00:50:31