全國最多中醫師線上諮詢網站-台灣中醫網
發文 回覆 瀏覽次數:1189
推到 Plurk!
推到 Facebook!

使用者登入,登出後,如何判讀他登出,如何寫入資料庫

尚未結案
seedbcc
高階會員


發表:232
回覆:272
積分:105
註冊:2003-12-10

發送簡訊給我
#1 引用回覆 回覆 發表時間:2004-02-23 14:39:38 IP:61.59.xxx.xxx 未訂閱
使用者登入, 等它登出後,如何判讀他登出, 如何寫入資料庫--使用者登入的時間及登出的時間 另外有多個使用者同時登入 使用控管他們的使用情形呢?
seedbcc
高階會員


發表:232
回覆:272
積分:105
註冊:2003-12-10

發送簡訊給我
#2 引用回覆 回覆 發表時間:2004-02-24 08:46:28 IP:61.59.xxx.xxx 未訂閱
一個可以同時讓大家進入的系統 如何各別判別誰進誰出 如何監控 這需要如何技巧呢? help me
Fishman
尊榮會員


發表:120
回覆:1949
積分:2163
註冊:2006-10-28

發送簡訊給我
#3 引用回覆 回覆 發表時間:2004-02-24 09:17:33 IP:210.65.xxx.xxx 未訂閱
Hi:    我會先規劃一個 Table 用來做 Log 用,結構大致如下
login_id login_user_id osuser login_ip login_datetime logout_datetime status
======== ============= ====== ======== ============== =============== ======
其中,Login_ID 為該 Table 之主索引鍵,當使用者登入成功,即會在該 Table 中新增一筆資料,並將 Login_ID 回傳給程式,由程式中保留該值,並於程式在進行 Form.Show 時,以 Login_ID 去更新該筆記錄,如此即可知道,使用者目前狀態(也可得知目前使用者正在使用那一個 Form),主程式結束時,再更新 Status 與 Logout_DateTime,Login_DateTime 與 Logout_DateTime 最好以 DataBase 時間為準,如此方有準則 一點建議,供你參考 ---------------------------------- 小弟才疏學淺,若有謬誤尚請不吝指教 ----------------------------------
------
Fishman
seedbcc
高階會員


發表:232
回覆:272
積分:105
註冊:2003-12-10

發送簡訊給我
#4 引用回覆 回覆 發表時間:2004-02-24 09:37:36 IP:61.59.xxx.xxx 未訂閱
可否就下列幾點解疑一下 (1)osuser這個欄位的用途為何? (2)login_ip及 使用者本身的電腦名稱 如何抓取? (3) 「...並將 Login_ID 回傳給程式,由程式中保留該值...」 這句話的意思不太懂 (4)並於程式在進行 Form.Show 時,以 Login_ID 去更新該筆記錄----> 這一句也聽的茫茫的 (5)這個table要放在哪個位置,才能讓它跟著 進入程式的人 一起走,或是說 哪個動作可以讓使用者每次跳到另一個form時 能讓系統清楚了解使用者動態 並於結束時,順利記錄使用者的離開時間
Fishman
尊榮會員


發表:120
回覆:1949
積分:2163
註冊:2006-10-28

發送簡訊給我
#5 引用回覆 回覆 發表時間:2004-02-24 10:34:26 IP:210.65.xxx.xxx 未訂閱
Hi:    1. 登入網域所使用之帳號(可有可無) 2. 再 Indy Misc TAB 中,使用 TIdIPWatch 元件,以 IdIPWatch1.LocalIP 取的 Local 端 IP 3. 可以在 DataBase 中寫一個 Function,再將帳號、密碼傳入,當驗證成功時,傳回一大於 0 之正數,即為 Login_ID,若小於 0 則登入失敗須再重新 Login 4. Form.Show 事件中
procedure TQueryForm.FormShow(Sender: TObject);
begin
    Query1.Close;
    Query1.SQL.Clear;
    Query1.SQL.Add('update  table'   #13  
                   'set     program = '   QuotedStr(TForm(Sender).Name)   #13  
                   'where   login_id = '   IntToStr(Login_ID));
    Query1.ExecSQL;
end;
5. 放在 DataBase 中就好啦,在主 FORM 的 OnClose 事件中
procedure TQueryForm.FormClose(Sender: TObject; var Action: TCloseAction);
begin
    Query1.Close;
    Query1.SQL.Clear;
    Query1.SQL.Add('update  table'   #13  
                   'set     program = null,'   #13  
                   '        logout_datetime = getdate()'   #13  
                   'where   login_id = '   IntToStr(Login_ID));
    Query1.ExecSQL;
end;
---------------------------------- 小弟才疏學淺,若有謬誤尚請不吝指教 ----------------------------------
------
Fishman
系統時間:2024-06-02 1:06:32
聯絡我們 | Delphi K.Top討論版
本站聲明
1. 本論壇為無營利行為之開放平台,所有文章都是由網友自行張貼,如牽涉到法律糾紛一切與本站無關。
2. 假如網友發表之內容涉及侵權,而損及您的利益,請立即通知版主刪除。
3. 請勿批評中華民國元首及政府或批評各政黨,是藍是綠本站無權干涉,但這裡不是政治性論壇!