608d05cf5e
功能: - 用户登录/退出 - 文档列表展示(支持子目录) - 关键词搜索 - Markdown 文档在线查看 - 管理员添加用户脚本
64 lines
1.6 KiB
PHP
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);
|
|
}
|