初始化知识库网页系统
功能: - 用户登录/退出 - 文档列表展示(支持子目录) - 关键词搜索 - Markdown 文档在线查看 - 管理员添加用户脚本
This commit is contained in:
@@ -0,0 +1,63 @@
|
||||
<?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);
|
||||
}
|
||||
Reference in New Issue
Block a user