CFSDN nhấn mạnh vào giá trị tạo ra nguồn mở và chúng tôi cam kết xây dựng nền tảng chia sẻ tài nguyên để mọi nhân viên CNTT có thể tìm thấy thế giới tuyệt vời của bạn tại đây.
Bài blog CFSDN này phân tích phương pháp php nhận biết các tài khoản không thể đăng nhập cùng lúc [Khi đăng nhập từ nơi khác, tài khoản hiện tại trở nên không hợp lệ] được tác giả sưu tầm và biên soạn nếu bạn quan tâm đến bài viết này. các bạn nhớ like nhé.
Ví dụ trong bài viết này mô tả cách sử dụng PHP để ngăn chặn việc đăng nhập các tài khoản cùng một lúc. Share cho mọi người tham khảo nhé, chi tiết như sau:
Giải pháp là mỗi khi người dùng đăng nhập, chúng tôi phải ghi lại ID người dùng hiện tại và session_id. Nếu ai đó đăng nhập bằng tài khoản này ở nơi khác, chúng tôi sẽ xóa tệp session của session_id tương ứng với ID người dùng và ghi lại session_id hiện tại. . Khi đó người dùng trước sẽ không hợp lệ.
Mã login.php như sau:
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
|
phiên_bắt_đầu();
yêu cầu
'db.php'
;
nếu như
(!
trống
(
$_POST
[
'nộp'
])) {
$uname
= !
trống
(
$_POST
[
'tên'
]) ? cắt(
$_POST
[
'tên'
]):
''
;
$lên
= !
trống
(
$_POST
[
'lên'
]) ? cắt(
$_POST
[
'lên'
]):
''
;
// Đây chỉ là minh họa, tình hình thực tế là truy vấn và phán đoán trong cơ sở dữ liệu
nếu như
(
$uname
==
'Bài kiểm tra'
&&
$lên
==
'Bài kiểm tra'
) {
// Ở đây giả định rằng id người dùng thử nghiệm là 1
$uid
= 1;
$phiên_mã_phiên
= id_phiên();
//Xác định xem đã có người dùng đăng nhập chưa
$res
= truy vấn mysql(
"CHỌN session_id TỪ tb_login_state NƠI uid={$uid}"
);
$dữ liệu
= mysql_fetch_assoc(
$res
);
nếu như
(!
trống
(
$dữ liệu
)) {
$sessionId
=
$dữ liệu
[
'phiên_id'
];
$sessionFilePath
= session_save_path() . PHÂN_GIẢI_THƯ MỤC .
'phiên_'
.
$sessionId
;
// Xóa tệp phiên của lần đăng nhập cuối cùng của người dùng
nếu như
(
file_tồn tại
(
$sessionFilePath
) &&
có thể ghi được
(
$sessionFilePath
)) {
@bỏ liên kết(
$sessionFilePath
);
}
//Xóa thông tin đăng nhập của người dùng
truy vấn mysql
"XÓA TỪ tb_login_state NƠI uid={$uid}"
);
}
//Thêm thông tin đăng nhập người dùng mới
truy vấn mysql
"CHÈN VÀO tb_login_state GIÁ TRỊ({$uid}, '{$session_id}')"
);
$_PHIÊN
[
'Thông tin người dùng'
] =
mảng
(
'tên'
=>
$uname
);
tiếng vọng
''
;
tiếng vọng
''
;
}
}
?>
<>
"zh-CN"
>
<đầu>đầu>
"UTF-8"
>
""
phương pháp=
"bưu kiện"
>
Tên người dùng:
"chữ"
tên=
"không có tên"
giá trị=
""
/>
Mật khẩu:
"mật khẩu"
tên=
"lên"
giá trị=
""
/>
"nộp"
tên=
"nộp"
giá trị=
"Đăng nhập"
/>
|