Files
e949/front/pages/register/page.php
shr3dd3r 705e8cd6a2 Создание поста
Метод API для создания поста; страница фронта и стили для него; новый тип ошибки при неудачной загрузке файла; фикс функции проверки строки на соответствие кодировке ASCII; фикс парсинга тегов; умное создание превью (проверка на случай, если превью получилось больше оригинала); исправление функции сохранения изображения; фикс функции создания поста, которая взаимодействует с БД; добавлена проверка корректности подписи к посту; добавление новых пунктов в навигацию; небольшое улучшение QoL в плане конфига.
2024-02-09 00:13:23 +03:00

100 lines
2.8 KiB
PHP

<?php
// Registration page
// Includes
require_once("api/_config.php");
require_once("api/user/create.php");
require_once("front/pages/main_nav.php");
require_once("front/notifications.php");
$REGISTRATION_IS_OPEN = $Config["registration"]["active"];
// Redirecting to main page if already logged in
if ($LOGGED_IN) {
header("Location: .");
exit();
}
// If there is attempt to register
if ((isset($_POST["login"]) || isset($_POST["password"])) && $REGISTRATION_IS_OPEN) {
// If ToS arent accepted
if ($_POST["tos_check"] !== "tos_check") {
NTFY_AddNotice("You MUST accept Terms of Service!", "fail");
} else { // Ok, noice
if ($_POST["password"] === $_POST["password2"]) {
$result = User_Create_Method($_POST);
if ($result->IsError()) { // Something happened
NTFY_AddNotice("Failed to create account! Reason:<br>" . $result->GetError(), "fail");
} else { // All OK
NTFY_AddNotice("Account registered! You can log in <a href=\"./?do=login\">here</a>", "success");
}
} else {
NTFY_AddNotice("Password mismatch! Check and try again", "fail");
}
}
}
NTFY_EchoAllNotices();
?>
<div class="visualbox">
<h1>Register</h1>
<?php
if ($REGISTRATION_IS_OPEN) {
?>
<form class="basicform" action="./?do=register" accept-charset="UTF-8" method="post">
<div>
<label for="login">Your desired username:</label><br>
<input type="text" name="login" id="login" spellcheck="false" <?php if (isset($_POST["login"])) { echo "value=\"" . $_POST["login"] . "\""; } ?>>
</div>
<div>
<label for="password">Password:</label><br>
<input type="password" name="password" id="password"><br>
<label for="password2">Repeat password:</label><br>
<input type="password" name="password2" id="password2">
</div>
<?php
if ($Config["registration"]["need_email"]) { // TODO: move description to ToS
?>
<div>
<label for="email">E-Mail address <span style="font-size: 50%;">(we will send you penis enlargement ads)</span>:</label><br>
<input type="text" name="email" id="email" inputmode="email" <?php if (isset($_POST["email"])) { echo "value=\"" . $_POST["email"] . "\""; } ?>>
</div>
<?php
}
if ($Config["registration"]["need_invite"]) {
?>
<div>
<label for="invite_id">Invite code:</label><br>
<input type="text" name="invite_id" id="invite_id" spellcheck="false" <?php if (isset($_POST["invite_id"])) { echo "value=\"" . $_POST["invite_id"] . "\""; } ?>>
</div>
<?php
}
?>
<div>
<input type="checkbox" name="tos_check" id="tos_check" value="tos_check">
<label for="tos_check">I've read and accept your boring Terms of Service</label>
</div>
<div>
<input type="submit" value="Submit">
</div>
</form>
<div class="loginmisc">
<p>Already have an account? <a href="./?do=login">Login here</a></p>
</div>
<?php
} else {
echo "<h2 style=\"color: red;\">Registrations are closed!</h2>";
}
?>
</div>