2011-08-04 96 views
-2

我有一個現有的PHP MYSQL登錄系統的網站。我想記錄每個用戶登錄的歷史記錄,包括失敗的嘗試。PHP MySQL存儲登錄歷史

我想捕捉的歷史以下數據:

  1. 用戶名使用
  2. 時登錄
  3. 登錄日期
  4. 成功 - (聽命的是或否)

如何在不更改現有的全部登錄系統的情況下執行此操作?

+1

你到目前爲止做了什麼? – Subdigger

+0

請參閱http://stackoverflow.com/questions/580534/best-way-to-limit-and-record-login-attempts和http://stackoverflow.com/questions/6357609/limiting-the-number-of-失敗登錄嘗試 – Sukumar

回答

6

與信息創建一個新表並插入當用戶登錄...

CREATE TABLE `login_info` (
    `id` INT NOT NULL AUTO_INCREMENT PRIMARY KEY , 
    `username` VARCHAR(50) NOT NULL , 
    `date` TIMESTAMP NOT NULL DEFAULT CURRENT_TIMESTAMP , 
    `success` ENUM('yes', 'no') NOT NULL 
); 

我不明白爲什麼你需要時間和日期分別...

+0

我建議索引'日期'和'用戶名'字段。 – Johan

+0

我認爲他的意思是登錄時間由「登錄時間」。例如,用戶A從下午2:11開始登錄4小時12分鐘 – Kristian

1

看起來像你需要一個對OO代碼的基本瞭解...創建一個名爲login_info的新表,其中字段爲Mihai的答案,然後假設您的登錄方法是用戶類的一部分 - 創建一個方法,每次登錄時都會向此表中插入一行嘗試。例如:

class user { 
    function login() { 
     $this->login_attempt(); 
     // your login code 
    } 
    function login_attempt() { 
     // insert into your login_info table 
    } 
} 

這使您的日誌與您的登錄代碼分開。