Closed DravenTJU closed 2 years ago
TJUPT 目前有没有记录密码修改记录的代码?如果有的话可能有记录日志的表,添加一下IP字段即可。不过我翻了翻我这边的测试环境和数据库,貌似是没有。
可以考虑添加一张 change_password_logs
表,包含:
$CURUSER["ip"]
,在修改密码成功那个页面时往这个表中添加一条数据。可以参考以下 SQL 语句(未优化):
CREATE TABLE user_event_logs (
log_id INT UNSIGNED auto_increment,
id INT UNSIGNED,
operation ENUM('change_password'),
ip_address VARCHAR(40),
time DATETIME DEFAULT getdate(),
primary key (log_id),
foreign key (id) references users(id) on delete cascade on update cascade
);
如果以后可能有记录用户其它操作的日志的需求,可以建立这样一个 user_event_log,枚举 operation
表面用户进行了何种操作。
另外,关于这个日志的界面,是在某个用户个人信息界面下面添加一个超链接 “显示密码更改记录”(或者操作记录),然后跳转到某个页面显示。还是说在管理控制面板中添加一个 “查看用户密码更改记录”(或者操作记录),跳转页面后有表单输入用户名或ID查询(是否需要默认显示所有记录?)
添加记录:
INSERT INTO user_event_logs VALUES (DEFAULT, <用户Id>, "change_password", <IP地址>, DEFAULT);
删除记录:
# 是否有删除的需求?
查询记录:
SELECT log.*,users.username FROM users JOIN user_event_logs AS log ON users.id = log.id WHERE <条件>
写了一个查询的 API
想问一下查询的界面是单独做一个界面,在管理组面板中加超链接,还是在已有的日志(log.php
) 中添加一个用户日志的 TAB?
另外,希望确认一下查询的权限等级是那一级
防范账号交易行为