HEX
Server: Apache
System: Linux info 3.0 #1337 SMP Tue Jan 01 00:00:00 CEST 2000 all GNU/Linux
User: u115237990 (7145895)
PHP: 8.3.32
Disabled: NONE
Upload Files
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>