* 示例: php add_user.php zhangqing mypassword123 */ if ($argc < 3) { echo "使用方法: php add_user.php \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); }