Files
2026-09-08 18:21:10 +01:00

30 lines
1.1 KiB
PHP

<?php
require_once __DIR__ . '/lib/bootstrap.php';
$err = '';
if ($_SERVER['REQUEST_METHOD'] === 'POST') {
require_csrf();
$n = trim((string)($_POST['username'] ?? ''));
$p1 = (string)($_POST['pass'] ?? '');
$p2 = (string)($_POST['pass2'] ?? '');
if (!valid_username($n)) $err = 'Username: 3-16 letters, digits or underscore.';
elseif (strlen($p1) < 4) $err = 'Password must be at least 4 characters.';
elseif ($p1 !== $p2) $err = 'Passwords do not match.';
elseif (username_taken($n)) $err = 'That username is taken.';
else {
$id = user_create($n, $p1);
$_SESSION['uid'] = $id;
redirect('/index.php');
}
}
page_start('Sign up', ['back' => '/index.php']);
if ($err) p_err($err);
p_form('/signup.php', [
['name' => 'username', 'label' => 'Username', 'maxlength' => 16],
['name' => 'pass', 'label' => 'Password', 'type' => 'password', 'maxlength' => 40],
['name' => 'pass2', 'label' => 'Repeat', 'type' => 'password', 'maxlength' => 40],
], 'Create');
p_links([['/login.php', 'Already a member? Log in'], ['/index.php', 'Home']]);
page_end();