10/10/2018, 10:36

[Hỏi PHP] Trường hợp login 1acc trên 2 client

Em đang tập tành code PHP
Nhưng đang vướng mắc fải tình trạng khi người dung login 1 acc trên 2 client 1 lúc
vậy có cách nào kiểm tra xem người đó onl ko để khi có 1 client khác login với tài khoản đó để in ra thông báo
honnhienh viết 12:37 ngày 10/10/2018
cái này thì bạn check session thôi. nếu nó tồn tại thì thông báo ra làm gì tiếp thì tùy bạn.
tabvn viết 12:52 ngày 10/10/2018
mình có ý kiến thế này:
bạn tạo thêm một tables sessions khi người dùng login thì bạn bắt session và IP (Session_id() và IP, time) rồi save vào table sessions . cứ khoảng 10 phút bạn lại update tables session 1 lần, check một lần nếu trùng thì update thời gian(time) còn không trùng thì thêm mới. vậy là bạn sẽ có được những ai đã và đang login trong table sessions. Hy vọng giúp ích cho bạn.
langtusitinh225 viết 12:45 ngày 10/10/2018
Được gửi bởi honnhienh
cái này thì bạn check session thôi. nếu nó tồn tại thì thông báo ra làm gì tiếp thì tùy bạn.
Theo mình thì session làm không được, làm sao để biết là session đó đã tồn tại ở client khác hay chưa hả bạn?
lins viết 12:40 ngày 10/10/2018
Bạn chỉ cân một trường nứa trong bảng user trong CSDL lưu trang thai online hay offline,khi một người login vào hệ thống thì update vào CSDL ấy là online(mặc định khi chưa login la offline),khi kiểm tra quá trình đăng nhập thấy trường trạng thái là online thi in ra man hình câu thông báo.
chesterben viết 12:40 ngày 10/10/2018
Theo mình thì ko cần thiết phải làm điều đó. Trừ khi việc tài khoản có mức độ nghiêm trọng cao. Như Google Account vẫn cho login cùng lúc nhiều client mà.
rootkit viết 12:37 ngày 10/10/2018
theo mình thì trong table user bạn thêm một trường logging ,bằng 1 thì đã login bằng ko thì chưa login
thuyduongcd viết 12:39 ngày 10/10/2018
Tạm thời đến giờ vẫn chưa có giải pháp nào hoàn hảo cho vấn đề này. Bởi vì web application (WA) không giống như desktop application (DA).
Với WA, server tương tác một cách bị động, nghĩa là khi có request từ client thì mới respone lại. Cho nên, không có cách gì biết được người dùng còn đăng nhập hay không (trừ khi họ logout). Chỉ có một cách tương đối là quy định 1 khoảng thời gian (1 giờ chẳng hạn), nếu không thấy người đó tương tác gì thì xem như đã logout. Theo cách này thì cứ thêm 1 field vào table user chứa thời điểm họ yêu cầu lần cuối cùng. Sau đó khi cần thì check nếu >1h thì xem như đã logout ngược lại thì không.
myShinichi viết 12:38 ngày 10/10/2018
Có nhất thiết phải làm chức năng này không bạn ?
Bài liên quan
0