2013-01-18 76 views
0

我希望有人可以用外行的話來幫助解釋這個過程,因爲我還是「新」並且學習。如何讓多個用戶訪問後端和保存數據?

我已經構建了一個帶有後端的基本內容管理系統,並且我試圖創建一個系統,其中幾十個用戶可以訪問服務,將數據保存到他們的帳戶,並在稍後回憶該數據if他們選擇。

到目前爲止,我已經完成了登錄,註冊和表單(以保存數據)。我只是在一個我不知道如何將這些數據保存在MySQL中的點(順便使用PHP),以便幾十個用戶都可以保存數據而不僅僅是一個。

示例:許多用戶訪問WordPress並可以創建帖子,但無法查看其帳戶中的其他用戶帖子。

我明白如何設置一個帳戶來保存數據,而不是多個。

任何意見將不勝感激。

P.S.如果任何人有任何指南/教程/推薦文章閱讀,我會非常感激!

+0

你試過了什麼? – beerwin

+0

@beerwin我還沒有嘗試過任何東西,因爲我真的不知道從哪裏開始。如果有人能夠解釋我需要做的事情的過程,那麼我就會知道從哪裏去更多/更少。 – Moose

+1

http://www.elated.com/articles/cms-in-an-afternoon-php-mysql/ ... –

回答

0

我認爲你在PHP工作方式中缺少一個相當重要的部分。

每個單獨的用戶使用您的應用程序的不同實例。例如,如果我輸入並登錄到應用程序中,並且您也這樣做,那麼我們將有(例如)變量$ _SESSION集,但我將有$_SESSION['idUser'] = 3,並且您將擁有$_SESSION['idUser'] = 5。他們不會知道彼此的存在。

所以基本上,你需要考慮一個用戶的應用程序,並有適當的限制。這意味着,例如,如果您要創建編輯配置文件頁面,則可以在SQL查詢中使用$idUser = $_SESSION['idUser']來選擇/更新/插入適當的信息。

下面是一個示例查詢:

// view users profile page 
$idUser = intval($_SESSION['idUser']); 
$query = "SELECT * FROM `users` WHERE id = {$idUser}"; 

// edit profile checks/database update 
$idUser = intval($_SESSION['idUser']); 
$userData = $_POST['user']; // let's say all your inputs have a name="user[...]" 
// !!! validation for the user data !!! 
$query = "UPDATE `users` SET col1='{$userData[col1]}', col2='{$userData[col2]}' WHERE id = {$idUser}"; 

希望這會有所幫助,讓我知道,如果你需要進一步澄清。注意:在SQL查詢中使用它之前,不要忘記正確地轉義您的數據,並使用mysqli或PDO擴展名(不要使用mysql,因爲它已被棄用,並且將在未來版本的PHP中被刪除)。

+0

Vlad, 我確實有一個會話開始:<?php session_start();如果(isset($ _ SESSION ['user'])){?> 您可以展開我將如何溝通用戶ID到數據庫? 我在想一個簡單的「解決方法」是讓用戶登錄,然後填寫表單並提交他們的數據。該提交將有一個與它相關的ID(例如15),但我迷失的地方是我如何將該ID(15)與最初提交它的用戶(3)相關聯 - 同時確保該用戶(5 )在「編輯設置」頁面看不到3提交的內容。 我希望這是有道理的? – Moose

+0

你創建一個表'用戶' - 有幾列(id,用戶名,密碼,其他字段)。當用戶使用正確的用戶/傳球組合登錄時,您將會話ID設置爲與該用戶名相對應的ID。之後,您只需通過使用該用戶標識查看所有信息即可顯示所有信息。您不必擔心用戶看到來自其他用戶的信息,因爲他不會在會話中設置用戶ID變量 –

+0

我想我已經開始理解了。無論何時用戶註冊,它們都會被添加到我的數據庫(「用戶」表)中,並帶有5個字段(ID,用戶名,電子郵件,密碼,名稱)。當該用戶登錄時,我將根據他們的用戶ID在註冊時給他們一個會話ID。此時,他們將進入提交頁面並輸入他們的信息,然後保存到「global_settings」表中。根據會話ID,它還會保存一個關聯的值(用戶ID),然後將數據庫和保存的信息連接到提交它的用戶。到目前爲止我在正確的軌道上? – Moose

相關問題