Files
Zmail-system/admin.php
T
2026-09-27 10:36:58 +08:00

60 lines
1.8 KiB
PHP

<?php
require __DIR__ . '/auth.php';
$msg = '';
$ok = false;
if ($_SERVER['REQUEST_METHOD'] === 'POST') {
$old = $_POST['old'] ?? '';
$new = $_POST['new'] ?? '';
$confirm = $_POST['confirm'] ?? '';
$db = get_users_db();
$stmt = $db->prepare("SELECT * FROM users WHERE id = ?");
$stmt->execute([$_SESSION['uid']]);
$user = $stmt->fetch(PDO::FETCH_ASSOC);
if (!$user || !password_verify($old, $user['password_hash'])) {
$msg = '原密码错误';
} elseif (strlen($new) < 8) {
$msg = '新密码至少 8 位';
} elseif ($new !== $confirm) {
$msg = '两次输入的新密码不一致';
} else {
$stmt = $db->prepare("UPDATE users SET password_hash = ? WHERE id = ?");
$stmt->execute([password_hash($new, PASSWORD_DEFAULT), $_SESSION['uid']]);
$msg = '密码修改成功';
$ok = true;
}
}
$page_title = '修改密码';
$nav_active = 'admin';
require __DIR__ . '/includes/header.php';
?>
<div class="page-header">
<h1>修改密码</h1>
<div class="actions">
<a href="index.php">返回收件箱</a>
</div>
</div>
<div class="card" style="max-width:480px;">
<?php if ($msg): ?>
<div class="msg <?= $ok ? 'msg-ok' : 'msg-err' ?>"><?= htmlspecialchars($msg) ?></div>
<?php endif; ?>
<form method="post">
<label>原密码</label>
<input type="password" name="old" required>
<label>新密码</label>
<input type="password" name="new" placeholder="至少 8 位" required>
<label>确认新密码</label>
<input type="password" name="confirm" required>
<div class="form-actions">
<button type="submit" class="btn btn-primary">确认修改</button>
</div>
</form>
</div>
<?php require __DIR__ . '/includes/footer.php'; ?>