File: /homepages/35/d993672390/htdocs/dermiteseborrheique/social/setup-username.php
<?php
define('DS_APP', true);
require_once dirname(__DIR__) . '/includes/init.php';
require_once DS_INCLUDES . 'social.php';
$user = auth_require();
if ($user['forum_username']) redirect('social/');
$errors = [];
$redirect = sanitize_string($_GET['redirect'] ?? '', 100);
if ($_SERVER['REQUEST_METHOD'] === 'POST') {
csrf_verify();
$username = sanitize_string(post('forum_username'), 30);
$bio = sanitize_string(post('forum_bio'), 300);
if (!preg_match('/^[a-zA-Z0-9_-]{3,30}$/', $username)) {
$errors['forum_username'] = '3 à 30 caractères, lettres, chiffres, _ et - uniquement.';
} elseif (!Social::isUsernameAvailable($username, $user['id'])) {
$errors['forum_username'] = 'Ce pseudo est déjà utilisé.';
}
if (empty($errors)) {
db_execute(
"UPDATE users SET forum_username=?, forum_bio=? WHERE id=?",
[$username, $bio ?: null, $user['id']]
);
redirect($redirect ?: 'social/index.php');
}
}
?>
<!DOCTYPE html>
<html lang="fr">
<head>
<meta charset="UTF-8"><meta name="viewport" content="width=device-width,initial-scale=1">
<meta name="robots" content="noindex">
<title>Choisir un pseudo — Communauté</title>
<link href="https://fonts.googleapis.com/css2?family=Cabinet+Grotesk:wght@400;700;800;900&display=swap" rel="stylesheet">
<style>
<?php include DS_INCLUDES . '../assets/css/social.css'; ?>
body{display:flex;align-items:center;justify-content:center;min-height:100vh;padding:20px;}
.setup-card{background:var(--surface);border:1px solid var(--border);border-radius:14px;padding:32px;width:min(440px,100%);margin:0 auto;}
</style>
</head>
<body>
<div class="setup-card">
<div style="font-size:1.2rem;font-weight:900;margin-bottom:6px;">Choisissez votre pseudo</div>
<div style="font-size:0.82rem;color:var(--text-mid);margin-bottom:24px;line-height:1.5;">
Votre pseudo sera public sur la communauté. Il ne révèle pas votre vrai nom.
</div>
<form method="POST">
<?= csrf_field() ?>
<?php if ($redirect): ?><input type="hidden" name="redirect" value="<?= e($redirect) ?>"><?php endif; ?>
<div class="fgroup">
<label class="flabel">Pseudo public *</label>
<input type="text" name="forum_username" class="finput"
value="<?= e(post('forum_username')) ?>"
placeholder="Ex: dermite_guerrier42"
pattern="[a-zA-Z0-9_-]{3,30}" required>
<?php if (isset($errors['forum_username'])): ?>
<div class="ferror"><?= e($errors['forum_username']) ?></div>
<?php endif; ?>
<div class="fhint">3 à 30 caractères. Lettres, chiffres, _ et - uniquement.</div>
</div>
<div class="fgroup">
<label class="flabel">Bio courte (optionnel)</label>
<input type="text" name="forum_bio" class="finput"
value="<?= e(post('forum_bio')) ?>"
placeholder="Ex: DS depuis 5 ans, j'ai identifié le gluten comme déclencheur"
maxlength="300">
</div>
<button type="submit" class="form-submit" style="margin-top:8px;">Confirmer mon pseudo →</button>
</form>
</div>
</body>
</html>