2013-11-04 211 views
0

嘿所以我有一個網站要求用戶輸入他們的用戶名和密碼,然後它會檢查我的MySQL數據庫以查看憑據是否正確。現在,如果是這樣,我希望它能讓用戶訪問網站的其他部分,但不讓他們內容地重新輸入他們的信息。基本上保持他們登錄到網站。登錄並保持登錄狀態

我從來沒有做過這樣的事情,我試圖去超越類項目的要求。我會如何去做這件事?

+2

會議呢? –

回答

0

有兩種可能的解決方案,但有不同的行爲:

1:是使用PHP sessions。 會話支持允許您在$_SESSION超全局數組中的請求之間存儲數據。當訪問者訪問您的站點時,PHP會自動檢查(如果session.auto_start設置爲1)或您的請求(顯式地通過session_start()或通過session_register())隱式檢查特定會話ID是否與請求一起發送。如果是這種情況,則重新創建之前保存的環境。例如,你可以,如果用戶使用這個記錄在存儲:

session_start(); 
$_SESSION['loged_in']="yes"; 

和檢索使用這個值:

session_start(); 
if($_SESSION['loged_in']=="yes"){ echo "logged in!"; } 

第二:PHP Cookies。 PHP透明地支持HTTP cookie。 Cookie是一種將數據存儲在遠程瀏覽器中並因此跟蹤或識別返回用戶的機制。您可以使用setcookie()或setrawcookie()函數來設置cookie。 Cookies是HTTP標題的一部分,因此必須在將任何輸出發送到瀏覽器之前調用setcookie()。這與header()具有相同的限制。您可以使用輸出緩衝功能來延遲腳本輸出,直到您決定是否設置任何cookie或發送任何標頭爲止。

Cookie在本地存儲憑據,並在用戶再次訪問相同的網頁時再次使用它。當您檢查「保持登錄狀態」複選框時,它就是您存儲登錄詳細信息的地方。與會話方式不同的是,即使瀏覽器關閉並且計算機被關閉,cookies也可以被再次訪問。

+0

@downvoter:請解釋爲什麼? –

0

有兩種方法可以做到這

  1. 會議
  2. 餅乾

如果使用會話,那麼用戶必須自己關閉瀏覽器後,每次登錄。如果您使用Cookie,那麼它會在用戶計算機上本地保存登錄信息(因爲您必須在各種網站上看到「記住我」),用戶將自動登錄。您可以同時使用這兩個選項,並根據用戶的判斷給予'記住我'選項

現在,存在與Cookie相關的安全問題(因爲在銀行網站等您永遠無法看到「記住我」,您可能會看到它用於記憶用戶名)。

此外,在這種設置中,您必須檢查每個頁面上的用戶憑據,只能由授權用戶訪問。

編寫SQL注入預防代碼非常簡單,如果沒有正確編碼,而且它不是火箭科學。

要開始這種設置,你可以按照一些YouTube教程。那裏有很多。這裏是一個教程鏈接http://www.developphp.com/list_php_video.php#How_to_Build_a_Social_Network_Website 這是一個很好的初學者教程。教程1-9將解決您的目的。一旦你是一個專家,你可以編寫自己的定製和乾淨的代碼。這些教程將幫助您瞭解您想要設計的一種系統的基礎知識,然後根據您的學習和知識進行設計。然後天空是極限:)