This repository has been archived on 2026-03-09. You can view files and clone it. You cannot open issues or pull requests or push a commit.
Files
kb-web/add_user.php
starmen1265 608d05cf5e 初始化知识库网页系统
功能:
- 用户登录/退出
- 文档列表展示(支持子目录)
- 关键词搜索
- Markdown 文档在线查看
- 管理员添加用户脚本
2026-02-14 00:04:12 +08:00

64 lines
1.6 KiB
PHP

<?php
/**
* 添加用户脚本
* 使用方法: php add_user.php <username> <password>
* 示例: php add_user.php zhangqing mypassword123
*/
if ($argc < 3) {
echo "使用方法: php add_user.php <username> <password>\n";
echo "示例: php add_user.php zhangqing mypassword123\n";
exit(1);
}
$username = $argv[1];
$password = $argv[2];
// 验证用户名格式
if (!preg_match('/^[a-zA-Z0-9_]{3,50}$/', $username)) {
echo "错误: 用户名只能是字母、数字、下划线,长度3-50\n";
exit(1);
}
// 验证密码长度
if (strlen($password) < 6) {
echo "错误: 密码长度至少6位\n";
exit(1);
}
require_once 'config.php';
try {
$db = getDB();
// 检查用户是否已存在
$stmt = $db->prepare("SELECT id FROM users WHERE username = ?");
$stmt->execute([$username]);
if ($stmt->fetch()) {
echo "错误: 用户 '$username' 已存在\n";
exit(1);
}
// 创建密码哈希
$passwordHash = password_hash($password, PASSWORD_DEFAULT);
// 插入用户
$stmt = $db->prepare("INSERT INTO users (username, password_hash) VALUES (?, ?)");
$stmt->execute([$username, $passwordHash]);
// 创建用户文档目录
$docDir = __DIR__ . '/' . $username;
if (!is_dir($docDir)) {
mkdir($docDir, 0755, true);
echo "✅ 用户目录已创建: $docDir\n";
}
echo "✅ 用户 '$username' 添加成功!\n";
echo " 用户名: $username\n";
echo " 密码: $password\n";
} catch (PDOException $e) {
echo "数据库错误: " . $e->getMessage() . "\n";
exit(1);
}