Метод API для создания поста; страница фронта и стили для него; новый тип ошибки при неудачной загрузке файла; фикс функции проверки строки на соответствие кодировке ASCII; фикс парсинга тегов; умное создание превью (проверка на случай, если превью получилось больше оригинала); исправление функции сохранения изображения; фикс функции создания поста, которая взаимодействует с БД; добавлена проверка корректности подписи к посту; добавление новых пунктов в навигацию; небольшое улучшение QoL в плане конфига.
100 lines
2.8 KiB
PHP
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>
|