diff --git a/admin/addadmin.php b/admin/addadmin.php index 36fb85a..38f1ffa 100644 --- a/admin/addadmin.php +++ b/admin/addadmin.php @@ -74,6 +74,7 @@ if($result2 > 0){ if( !empty($_POST['btn_submit']) ) { + $_SESSION['form_data'] = $_POST; // 空白除去 $username = safetext($_POST['username']); @@ -88,6 +89,9 @@ if( !empty($_POST['btn_submit']) ) { } $profile = safetext($_POST['profile']); + if( 1024 < mb_strlen($profile, 'UTF-8') ) { + $error_message[] = 'プロフィールは1024文字以内で入力してください。(INPUT_OVER_MAX_COUNT)'; + } if(safetext($serversettings["serverinfo"]["server_invitation"]) === "true"){ $invitationcode = safetext($_POST['invitationcode']); @@ -124,43 +128,47 @@ if( !empty($_POST['btn_submit']) ) { // アップロードされたファイル情報 $uploadedFile = $_FILES['image']; - if(check_mime($uploadedFile['tmp_name'])){ - // アップロードされたファイルの拡張子を取得 - $extension = pathinfo($uploadedFile['name'], PATHINFO_EXTENSION); - - // EXIF削除 - delete_exif($extension, $uploadedFile['tmp_name']); - // リサイズ - resizeImage($uploadedFile['tmp_name'], 512, 512); + if(!(empty($uploadedFile['tmp_name']))){ + if(check_mime($uploadedFile['tmp_name'])){ + // アップロードされたファイルの拡張子を取得 + $extension = pathinfo($uploadedFile['name'], PATHINFO_EXTENSION); + + // EXIF削除 + delete_exif($extension, $uploadedFile['tmp_name']); + // リサイズ + resizeImage($uploadedFile['tmp_name'], 512, 512); - if(check_mime($uploadedFile['tmp_name']) == "image/webp"){ - // 新しいファイル名を生成(uniqid + 拡張子) - $newFilename = uniqid() . '-'.$userid.'.webp'; - }else{ - // 新しいファイル名を生成(uniqid + 拡張子) - $newFilename = uniqid() . '-'.$userid.'.' . $extension; - } - // 保存先のパスを生成 - $uploadedPath = 'usericons/' . $newFilename; + if(check_mime($uploadedFile['tmp_name']) == "image/webp"){ + // 新しいファイル名を生成(uniqid + 拡張子) + $newFilename = uniqid() . '-'.$userid.'.webp'; + }else{ + // 新しいファイル名を生成(uniqid + 拡張子) + $newFilename = uniqid() . '-'.$userid.'.' . $extension; + } + // 保存先のパスを生成 + $uploadedPath = 'usericons/' . $newFilename; - // ファイルを移動 - $result = move_uploaded_file($uploadedFile['tmp_name'], '../'.$uploadedPath); + // ファイルを移動 + $result = move_uploaded_file($uploadedFile['tmp_name'], '../'.$uploadedPath); - if ($result) { - $iconName = $uploadedPath; // 保存されたファイルのパスを使用 - } else { - $errnum = $uploadedFile['error']; - if($errnum === 1){$errcode = "FILE_DEKASUGUI_PHP_INI_KAKUNIN";} - if($errnum === 2){$errcode = "FILE_DEKASUGUI_HTML_KAKUNIN";} - if($errnum === 3){$errcode = "FILE_SUKOSHIDAKE_UPLOAD";} - if($errnum === 4){$errcode = "FILE_UPLOAD_DEKINAKATTA";} - if($errnum === 6){$errcode = "TMP_FOLDER_NAI";} - if($errnum === 7){$errcode = "FILE_KAKIKOMI_SIPPAI";} - if($errnum === 8){$errcode = "PHPINFO()_KAKUNIN";} - $error_message[] = 'アップロード失敗!(1)エラーコード:' .$uploadedFile['error'].''; + if ($result) { + $iconName = $uploadedPath; // 保存されたファイルのパスを使用 + } else { + $errnum = $uploadedFile['error']; + if($errnum === 1){$errcode = "FILE_DEKASUGUI_PHP_INI_KAKUNIN";} + if($errnum === 2){$errcode = "FILE_DEKASUGUI_HTML_KAKUNIN";} + if($errnum === 3){$errcode = "FILE_SUKOSHIDAKE_UPLOAD";} + if($errnum === 4){$errcode = "FILE_UPLOAD_DEKINAKATTA";} + if($errnum === 6){$errcode = "TMP_FOLDER_NAI";} + if($errnum === 7){$errcode = "FILE_KAKIKOMI_SIPPAI";} + if($errnum === 8){$errcode = "PHPINFO()_KAKUNIN";} + $error_message[] = 'アップロード失敗!(1)エラーコード:' .$uploadedFile['error'].''; + } + }else{ + $error_message[] = "使用できない画像形式です。(SORRY_FILE_HITAIOU)"; } }else{ - $error_message[] = "使用できない画像形式です。(SORRY_FILE_HITAIOU)"; + $error_message[] = "ファイルがアップロードできませんでした。(FILE_UPLOAD_DEKINAKATTA)"; } } @@ -309,7 +317,8 @@ if( !empty($_POST['btn_submit']) ) { $role = "official"; $admin = "yes"; $hashpassword = password_hash($password, PASSWORD_DEFAULT); - $loginid = sha1(uniqid(mt_rand(), true)); + $LoginIdBytes = random_bytes(64); + $loginid = hash('sha3-512', $LoginIdBytes); // SQL作成 $stmt = $pdo->prepare("INSERT INTO account (username, userid, password, loginid, mailadds, profile, iconname, headname, role, datetime, admin, encryption_ivkey) VALUES (:username, :userid, :password, :loginid, :mailadds, :profile, :iconname, :headname, :role, :datetime, :admin ,:encryption_ivkey)"); @@ -366,6 +375,7 @@ if( !empty($_POST['btn_submit']) ) { if ($res) { // リダイレクト先のURLへ転送する + $_SESSION['form_data'] = array(); $_SESSION['userid'] = $userid; $url = 'success'; header('Location: ' . $url, true, 303); @@ -441,42 +451,42 @@ $pdo = null;

ユーザーネーム *

プロフィールページに掲載され公開されます。
※サービス管理者が確認できます。
- +

ユーザーID *

後から変更はできません。
プロフィールページに掲載され公開されます。
※サービス管理者が確認できます。
- +

パスワード *

ログイン時に必要となります。
※サービス管理者が確認できません。
- +

パスワード再確認 *

- +

メールアドレス

設定しておくとアカウント復旧に利用できます。
※サービス管理者が確認できます。
- +

プロフィール

プロフィールページに掲載され公開されます。
※サービス管理者が確認できます。
- +

招待コード

招待コードがないとこのサーバーには登録できません。
- +
diff --git a/api/migration-api.php b/api/migration-api.php index 2b07f6c..78cf11a 100644 --- a/api/migration-api.php +++ b/api/migration-api.php @@ -161,6 +161,13 @@ if(isset($_GET['migration_code'])) { $ueuse_array = $ueuseQuery->fetchAll(); */ if(!(empty($UserData))){ + + if(!(empty($UserData["encryption_ivkey"]))){ + $view_mailadds = DecryptionUseEncrKey($UserData["mailadds"], GenUserEnckey($UserData["datetime"]), $UserData["encryption_ivkey"]); + }else{ + $view_mailadds = $UserData["mailadds"]; + } + /* if(!(empty($ueuse_array))){ foreach ($ueuse_array as $value) { @@ -188,7 +195,7 @@ if(isset($_GET['migration_code'])) { "user_icon" => (empty($_SERVER['HTTPS']) ? 'http://' : 'https://').$domain."/".safetext($UserData["iconname"]), "user_header" => (empty($_SERVER['HTTPS']) ? 'http://' : 'https://').$domain."/".safetext($UserData["headname"]), "user_profile" => safetext($UserData["profile"]), - "mail_adds" => safetext($UserData["mailadds"]), + "mail_adds" => safetext($view_mailadds), ), ]; diff --git a/css/home.css b/css/home.css index 81e1af5..6fb4d87 100644 --- a/css/home.css +++ b/css/home.css @@ -641,6 +641,11 @@ main h1{ font-weight: 900; } +.userheader .profile{ + max-height: 25dvh; + overflow: scroll; +} + .userheader .profile p{ text-align: left; margin-top: 12px; @@ -2894,6 +2899,47 @@ main h1{ color:var(--text-color); font-family: var(--Text-fonts), sans-serif; } +.formarea table{ + width: 100%; + text-align: left; + font-size: 16px; + color:var(--text-color); + font-family: var(--Mono-fonts), sans-serif; +} +.formarea .emojipreview{ + margin-left: auto; + margin-right: auto; + width: 50%; + height: fit-content; + display: flex; + justify-content: space-between; +} +.formarea .emojiimg{ + margin-left: auto; + margin-right: auto; + text-align: center; + width: fit-content; + height: fit-content; + padding: 8px; + border-radius: 6px; + box-shadow:0 0px 24px 0 rgba(0, 0, 0, .1) +} +.formarea .light{ + background-color: var(--ueuse-color); +} +.formarea .dark{ + background-color: var(--dark-sub-color); +} +.formarea .emojiimg img{ + vertical-align:top; + object-fit: cover; + margin-left: auto; + margin-right: auto; + text-align: center; + max-height: 64px; + width: auto; + border-radius: 0px; +} .p2{ margin-top: 0px; @@ -3947,6 +3993,16 @@ label>input { font-family: var(--Text-fonts), sans-serif; font-weight: bold; } +.ru a p img{ + vertical-align: text-top; + margin-top: auto; + margin-bottom: auto; + margin-left: 4px; + margin-right: 4px; + max-height: 16px; + width: auto; + border-radius: 0px; +} .this{ background-color: color-mix(in srgb, var(--sub-color) 30%, var(--background-color))!important; @@ -5607,6 +5663,67 @@ noscript .noscript_modal .inner .center_text p{ opacity: 0; } } + + +.emoji_admin{ + margin-top: 12px; + margin-bottom: 12px; + border-radius: 10px; + padding-left: 12px; + padding-right: 12px; + padding-top: 8px; + background-color: var(--background-color); + border: 1px solid var(--border-color); + width: auto; +} +.emoji_admin details { + padding: 0px; + margin-top: 0px; + margin-bottom: 0px; + text-align: left; + color:var(--text-color); + font-family: var(--Mono-fonts), sans-serif; + word-wrap: break-word; + font-size: 18px; + line-height: 32px; + font-weight: bold; +} +.emoji_admin details img{ + padding: 0px; + margin-top: 0px; + margin-bottom: 0px; + margin-right: 12px; + max-height: 32px; + max-width: 100%; + object-fit: initial; + vertical-align: middle; +} +.emoji_admin summary { + display: block; + list-style: none; + + color:var(--text-color); + font-family: var(--Mono-fonts), sans-serif; + word-wrap: break-word; + font-size: 20px; + line-height: 32px; + font-weight: bold; +} +.emoji_admin summary::-webkit-details-marker { + display: none; +} +.emoji_admin p{ + margin-top: 4px; + margin-bottom: 4px; + text-align: left; + color:var(--text-color); + font-family: var(--Mono-fonts), sans-serif; + word-wrap: break-word; + font-size: 14px; + line-height: 22px; + font-weight: bold; +} + /*------------------------------------------------------------------------------------------------------------*/ /*--------------------------------------------------スマホ向け--------------------------------------------------*/ /*--------------------------------------------------ここから--------------------------------------------------*/ @@ -7182,7 +7299,7 @@ noscript .noscript_modal .inner .center_text p{ color: #DDDDDD; } .ueuse .blur:hover{ - background-color: var(--dark-ueuse-color); + background-color: var(--dark-sub-color); color: var(--dark-text-color); } .ueuse .unixtime{ @@ -7592,10 +7709,10 @@ noscript .noscript_modal .inner .center_text p{ } .formarea p{ - color:var(--dark-subtext-color); + color:var(--dark-text-color); } .formarea li{ - color:var(--dark-subtext-color); + color:var(--dark-text-color); } .formarea .update_box{ @@ -7615,6 +7732,10 @@ noscript .noscript_modal .inner .center_text p{ .formarea .update_box .update_text p{ color:var(--dark-text-color); } + + .formarea table{ + color:var(--dark-text-color); + } .modal-content { @@ -8089,4 +8210,18 @@ noscript .noscript_modal .inner .center_text p{ background-color: var(--dark-sub-color); color: var(--main-color); } + + .emoji_admin{ + background-color: var(--dark-background-color); + border: none; + } + .emoji_admin details { + color:var(--dark-text-color); + } + .emoji_admin summary { + color:var(--dark-text-color); + } + .emoji_admin p{ + color:var(--dark-text-color); + } } \ No newline at end of file diff --git a/css/style.css b/css/style.css index 9a1a5d9..a411bdf 100644 --- a/css/style.css +++ b/css/style.css @@ -1315,4 +1315,9 @@ p img{ .errmsg p{ color:#ff4848; } + .module_chk{ + background-color: var(--dark-background-color); + border: none; + padding: 0px; + } } \ No newline at end of file diff --git a/function/function.php b/function/function.php index ccc196d..533ec15 100644 --- a/function/function.php +++ b/function/function.php @@ -798,7 +798,7 @@ function send_ueuse($userid,$rpUniqid,$ruUniqid,$ueuse,$photo1,$photo2,$photo3,$ // アップロードされたファイル情報 $uploadedFile2 = $photo2; - if(!(empty($uploadedFile['tmp_name']))){ + if(!(empty($uploadedFile2['tmp_name']))){ if(check_mime($uploadedFile2['tmp_name'])){ // アップロードされたファイルの拡張子を取得 $extension2 = pathinfo($uploadedFile2['name'], PATHINFO_EXTENSION); @@ -840,7 +840,7 @@ function send_ueuse($userid,$rpUniqid,$ruUniqid,$ueuse,$photo1,$photo2,$photo3,$ // アップロードされたファイル情報 $uploadedFile3 = $photo3; - if(!(empty($uploadedFile['tmp_name']))){ + if(!(empty($uploadedFile3['tmp_name']))){ if(check_mime($uploadedFile3['tmp_name'])){ // アップロードされたファイルの拡張子を取得 $extension3 = pathinfo($uploadedFile3['name'], PATHINFO_EXTENSION); @@ -881,7 +881,7 @@ function send_ueuse($userid,$rpUniqid,$ruUniqid,$ueuse,$photo1,$photo2,$photo3,$ } // アップロードされたファイル情報 $uploadedFile4 = $photo4; - if(!(empty($uploadedFile['tmp_name']))){ + if(!(empty($uploadedFile4['tmp_name']))){ if(check_mime($uploadedFile4['tmp_name'])){ // アップロードされたファイルの拡張子を取得 $extension4 = pathinfo($uploadedFile4['name'], PATHINFO_EXTENSION); @@ -920,7 +920,7 @@ function send_ueuse($userid,$rpUniqid,$ruUniqid,$ueuse,$photo1,$photo2,$photo3,$ // アップロードされたファイル情報 $uploadedVideo = $video1; - if(!(empty($uploadedFile['tmp_name']))){ + if(!(empty($uploadedVideo['tmp_name']))){ if(check_mime_video($uploadedVideo['tmp_name'])){ // アップロードされたファイルの拡張子を取得 $extensionVideo = strtolower(pathinfo($uploadedVideo['name'], PATHINFO_EXTENSION)); // 小文字に変換 diff --git a/login.php b/login.php index dcf8baa..beba69a 100644 --- a/login.php +++ b/login.php @@ -102,6 +102,7 @@ if(isset($_SESSION['admin_login']) && $_SESSION['admin_login'] === true && isset } if( !empty($_POST['btn_submit']) ) { + $_SESSION['form_data'] = $_POST; $userid = safetext($_POST['userid']); $password = safetext($_POST['password']); @@ -204,6 +205,8 @@ if( !empty($_POST['btn_submit']) ) { $_SESSION['userid'] = $userid; $_SESSION['loginid'] = $row["loginid"]; + + $_SESSION['form_data'] = array();//フォーム初期化 // リダイレクト先のURLへ転送する $url = 'check.php'; header('Location: ' . $url, true, 303); @@ -212,6 +215,8 @@ if( !empty($_POST['btn_submit']) ) { exit; }else{ $_SESSION['userid'] = $userid; + + $_SESSION['form_data'] = array();//フォーム初期化 $url = 'authlogin.php'; header('Location: ' . $url, true, 303); @@ -299,11 +304,11 @@ $pdo = null;

ユーザーID

- +

パスワード

- +
diff --git a/migration/index.php b/migration/index.php index e493fa9..b926098 100644 --- a/migration/index.php +++ b/migration/index.php @@ -95,6 +95,8 @@ try { $error_message[] = $e->getMessage(); } if( !empty($_POST['btn_submit']) ) { + $_SESSION['form_data'] = $_POST; + if(safetext($serversettings["serverinfo"]["server_account_migration"]) === "true"){ $new_userid = safetext($_POST['new_userid']); $password = safetext($_POST['password']); @@ -403,17 +405,31 @@ if( !empty($_POST['btn_submit']) ) { $datetime = date("Y-m-d H:i:s"); $username = safetext($json_account_data["userdata"]["user_name"]); $mailadds = safetext($json_account_data["userdata"]["mail_adds"]); - $profile = safetext($json_account_data["userdata"]["user_profile"]); + $profile = mb_substr(safetext($json_account_data["userdata"]["user_profile"]),0,1024);// 一応文字数制限 + + $userEnckey = GenUserEnckey($datetime); + $ivLength = openssl_cipher_iv_length('aes-256-cbc'); + $randomBytes = random_bytes($ivLength); + $randomhash = hash('sha3-512', $randomBytes); + $iv = substr($randomhash, 0, $ivLength); + + // メアドを暗号化する + if(!(empty($mailadds))){ + $enc_mailadds = EncryptionUseEncrKey($mailadds, $userEnckey, $iv); + }else{ + $enc_mailadds = ""; + } try { $role = "user"; $admin = "none"; $hashpassword = password_hash($password, PASSWORD_DEFAULT); - $loginid = sha1(uniqid(mt_rand(), true)); + $LoginIdBytes = random_bytes(64); + $loginid = hash('sha3-512', $LoginIdBytes); // SQL作成 - $stmt = $pdo->prepare("INSERT INTO account (username, userid, password, loginid, mailadds, profile, iconname, headname, role, datetime, admin) VALUES (:username, :userid, :password, :loginid, :mailadds, :profile, :iconname, :headname, :role, :datetime, :admin )"); + $stmt = $pdo->prepare("INSERT INTO account (username, userid, password, loginid, mailadds, profile, iconname, headname, role, datetime, admin, encryption_ivkey) VALUES (:username, :userid, :password, :loginid, :mailadds, :profile, :iconname, :headname, :role, :datetime, :admin ,:encryption_ivkey)"); // アイコン画像 $stmt->bindValue(':iconname', $iconName, PDO::PARAM_STR); @@ -426,10 +442,12 @@ if( !empty($_POST['btn_submit']) ) { $stmt->bindParam(':userid', $new_userid, PDO::PARAM_STR); $stmt->bindParam(':password', $hashpassword, PDO::PARAM_STR); $stmt->bindParam(':loginid', $loginid, PDO::PARAM_STR); - $stmt->bindParam(':mailadds', $mailadds, PDO::PARAM_STR); + $stmt->bindParam(':mailadds', $enc_mailadds, PDO::PARAM_STR); $stmt->bindParam(':profile', $profile, PDO::PARAM_STR); $stmt->bindParam(':role', $role, PDO::PARAM_STR); $stmt->bindParam(':datetime', $datetime, PDO::PARAM_STR); + + $stmt->bindParam(':encryption_ivkey', $iv, PDO::PARAM_STR); $stmt->bindParam(':admin', $admin, PDO::PARAM_STR); @@ -486,12 +504,14 @@ if( !empty($_POST['btn_submit']) ) { $_SESSION['userid'] = $new_userid; $_SESSION['done'] = false; } + $_SESSION['form_data'] = array(); $url = '../success'; header('Location: ' . $url, true, 303); exit; }else{ $_SESSION['userid'] = $new_userid; $_SESSION['done'] = false; + $_SESSION['form_data'] = array(); $url = '../success'; header('Location: ' . $url, true, 303); exit; @@ -574,28 +594,28 @@ $pdo = null;

新しいユーザーID

このサーバーで使用するユーザーIDを入力してください。
- +

新しいパスワード

このサーバーで使用するパスワードを入力してください。
- +

アカウント移行元のuwuzuサーバーのドメイン

アカウント移行元のサーバードメインを入力してください。
- +

識別コード

アカウント移行元のサーバーで発行された識別コードを入力してください。
- +

認証コード

アカウント移行元のサーバーで発行された認証コードを入力してください。
- +
@@ -612,7 +632,7 @@ $pdo = null;

招待コード

招待コードがないとこのサーバーには登録できません。
- +
diff --git a/new.php b/new.php index 7383fe8..ac4342f 100644 --- a/new.php +++ b/new.php @@ -102,6 +102,7 @@ if(isset($_SESSION['admin_login']) && $_SESSION['admin_login'] === true && isset if( !empty($_POST['btn_submit']) ) { + $_SESSION['form_data'] = $_POST; // 空白除去 $username = safetext($_POST['username']); @@ -119,6 +120,9 @@ if( !empty($_POST['btn_submit']) ) { $profile = safetext($_POST['profile']); + if( 1024 < mb_strlen($profile, 'UTF-8') ) { + $error_message[] = 'プロフィールは1024文字以内で入力してください。(INPUT_OVER_MAX_COUNT)'; + } if(safetext($serversettings["serverinfo"]["server_invitation"]) === "true"){ $invitationcode = safetext($_POST['invitationcode']); @@ -209,44 +213,48 @@ if( !empty($_POST['btn_submit']) ) { // アップロードされたファイル情報 $uploadedFile = $_FILES['image']; - if(check_mime($uploadedFile['tmp_name'])){ + if(!(empty($uploadedFile['tmp_name']))){ + if(check_mime($uploadedFile['tmp_name'])){ - // アップロードされたファイルの拡張子を取得 - $extension = pathinfo($uploadedFile['name'], PATHINFO_EXTENSION); - - // EXIF削除 - delete_exif($extension, $uploadedFile['tmp_name']); - // リサイズ - resizeImage($uploadedFile['tmp_name'], 512, 512); + // アップロードされたファイルの拡張子を取得 + $extension = pathinfo($uploadedFile['name'], PATHINFO_EXTENSION); + + // EXIF削除 + delete_exif($extension, $uploadedFile['tmp_name']); + // リサイズ + resizeImage($uploadedFile['tmp_name'], 512, 512); - if(check_mime($uploadedFile['tmp_name']) == "image/webp"){ - // 新しいファイル名を生成(uniqid + 拡張子) - $newFilename = uniqid() . '-'.$userid.'.webp'; - }else{ - // 新しいファイル名を生成(uniqid + 拡張子) - $newFilename = uniqid() . '-'.$userid.'.' . $extension; - } - // 保存先のパスを生成 - $uploadedPath = 'usericons/' . $newFilename; + if(check_mime($uploadedFile['tmp_name']) == "image/webp"){ + // 新しいファイル名を生成(uniqid + 拡張子) + $newFilename = uniqid() . '-'.$userid.'.webp'; + }else{ + // 新しいファイル名を生成(uniqid + 拡張子) + $newFilename = uniqid() . '-'.$userid.'.' . $extension; + } + // 保存先のパスを生成 + $uploadedPath = 'usericons/' . $newFilename; - // ファイルを移動 - $result = move_uploaded_file($uploadedFile['tmp_name'], $uploadedPath); + // ファイルを移動 + $result = move_uploaded_file($uploadedFile['tmp_name'], $uploadedPath); - if ($result) { - $iconName = $uploadedPath; // 保存されたファイルのパスを使用 - } else { - $errnum = $uploadedFile['error']; - if($errnum === 1){$errcode = "FILE_DEKASUGUI_PHP_INI_KAKUNIN";} - if($errnum === 2){$errcode = "FILE_DEKASUGUI_HTML_KAKUNIN";} - if($errnum === 3){$errcode = "FILE_SUKOSHIDAKE_UPLOAD";} - if($errnum === 4){$errcode = "FILE_UPLOAD_DEKINAKATTA";} - if($errnum === 6){$errcode = "TMP_FOLDER_NAI";} - if($errnum === 7){$errcode = "FILE_KAKIKOMI_SIPPAI";} - if($errnum === 8){$errcode = "PHPINFO()_KAKUNIN";} - $error_message[] = 'アップロード失敗!(1)エラーコード:' .$uploadedFile['error'].''; + if ($result) { + $iconName = $uploadedPath; // 保存されたファイルのパスを使用 + } else { + $errnum = $uploadedFile['error']; + if($errnum === 1){$errcode = "FILE_DEKASUGUI_PHP_INI_KAKUNIN";} + if($errnum === 2){$errcode = "FILE_DEKASUGUI_HTML_KAKUNIN";} + if($errnum === 3){$errcode = "FILE_SUKOSHIDAKE_UPLOAD";} + if($errnum === 4){$errcode = "FILE_UPLOAD_DEKINAKATTA";} + if($errnum === 6){$errcode = "TMP_FOLDER_NAI";} + if($errnum === 7){$errcode = "FILE_KAKIKOMI_SIPPAI";} + if($errnum === 8){$errcode = "PHPINFO()_KAKUNIN";} + $error_message[] = 'アップロード失敗!(1)エラーコード:' .$uploadedFile['error'].''; + } + }else{ + $error_message[] = "使用できない画像形式です。(FILE_UPLOAD_DEKINAKATTA)"; } }else{ - $error_message[] = "使用できない画像形式です。(FILE_UPLOAD_DEKINAKATTA)"; + $error_message[] = "ファイルがアップロードできませんでした。(FILE_UPLOAD_DEKINAKATTA)"; } } @@ -378,95 +386,98 @@ if( !empty($_POST['btn_submit']) ) { } if( empty($error_message) ) { - // トランザクション開始 - $pdo->beginTransaction(); - $datetime = date("Y-m-d H:i:s"); + // トランザクション開始 + $pdo->beginTransaction(); + $datetime = date("Y-m-d H:i:s"); - $userEnckey = GenUserEnckey($datetime); - $ivLength = openssl_cipher_iv_length('aes-256-cbc'); - $randomBytes = random_bytes($ivLength); - $randomhash = hash('sha3-512', $randomBytes); - $iv = substr($randomhash, 0, $ivLength); + $userEnckey = GenUserEnckey($datetime); + $ivLength = openssl_cipher_iv_length('aes-256-cbc'); + $randomBytes = random_bytes($ivLength); + $randomhash = hash('sha3-512', $randomBytes); + $iv = substr($randomhash, 0, $ivLength); - // メアドを暗号化する - if(!(empty($mailadds))){ - $enc_mailadds = EncryptionUseEncrKey($mailadds, $userEnckey, $iv); - }else{ - $enc_mailadds = ""; - } + // メアドを暗号化する + if(!(empty($mailadds))){ + $enc_mailadds = EncryptionUseEncrKey($mailadds, $userEnckey, $iv); + }else{ + $enc_mailadds = ""; + } - try { + try { - $role = "user"; - $admin = "none"; - $hashpassword = password_hash($password, PASSWORD_DEFAULT); - $loginid = sha1(uniqid(mt_rand(), true)); + $role = "user"; + $admin = "none"; + $hashpassword = password_hash($password, PASSWORD_DEFAULT); + $LoginIdBytes = random_bytes(64); + $loginid = hash('sha3-512', $LoginIdBytes); - // SQL作成 - $stmt = $pdo->prepare("INSERT INTO account (username, userid, password, loginid, mailadds, profile, iconname, headname, role, datetime, admin, encryption_ivkey) VALUES (:username, :userid, :password, :loginid, :mailadds, :profile, :iconname, :headname, :role, :datetime, :admin ,:encryption_ivkey)"); + // SQL作成 + $stmt = $pdo->prepare("INSERT INTO account (username, userid, password, loginid, mailadds, profile, iconname, headname, role, datetime, admin, encryption_ivkey) VALUES (:username, :userid, :password, :loginid, :mailadds, :profile, :iconname, :headname, :role, :datetime, :admin ,:encryption_ivkey)"); - // アイコン画像 - $stmt->bindValue(':iconname', $iconName, PDO::PARAM_STR); + // アイコン画像 + $stmt->bindValue(':iconname', $iconName, PDO::PARAM_STR); - // ヘッダー画像 - $stmt->bindValue(':headname', $headName, PDO::PARAM_STR); + // ヘッダー画像 + $stmt->bindValue(':headname', $headName, PDO::PARAM_STR); - // 他の値をセット - $stmt->bindParam(':username', $username, PDO::PARAM_STR); - $stmt->bindParam(':userid', $userid, PDO::PARAM_STR); - $stmt->bindParam(':password', $hashpassword, PDO::PARAM_STR); - $stmt->bindParam(':loginid', $loginid, PDO::PARAM_STR); - $stmt->bindParam(':mailadds', $enc_mailadds, PDO::PARAM_STR); - $stmt->bindParam(':profile', $profile, PDO::PARAM_STR); - $stmt->bindParam(':role', $role, PDO::PARAM_STR); - $stmt->bindParam(':datetime', $datetime, PDO::PARAM_STR); - - $stmt->bindParam(':encryption_ivkey', $iv, PDO::PARAM_STR); - - $stmt->bindParam(':admin', $admin, PDO::PARAM_STR); - - // SQLクエリの実行 - $res = $stmt->execute(); - - // コミット - $res = $pdo->commit(); - - if(safetext($serversettings["serverinfo"]["server_invitation"]) === "true"){ - $pdo->beginTransaction(); - - $stmt = $pdo->prepare("UPDATE invitation SET used = :used, datetime = :datetime WHERE code = :code;"); - - $true = "true"; - $stmt->bindParam(':used', $true, PDO::PARAM_STR); + // 他の値をセット + $stmt->bindParam(':username', $username, PDO::PARAM_STR); + $stmt->bindParam(':userid', $userid, PDO::PARAM_STR); + $stmt->bindParam(':password', $hashpassword, PDO::PARAM_STR); + $stmt->bindParam(':loginid', $loginid, PDO::PARAM_STR); + $stmt->bindParam(':mailadds', $enc_mailadds, PDO::PARAM_STR); + $stmt->bindParam(':profile', $profile, PDO::PARAM_STR); + $stmt->bindParam(':role', $role, PDO::PARAM_STR); $stmt->bindParam(':datetime', $datetime, PDO::PARAM_STR); - $stmt->bindValue(':code', $invitationcode, PDO::PARAM_STR); + $stmt->bindParam(':encryption_ivkey', $iv, PDO::PARAM_STR); + + $stmt->bindParam(':admin', $admin, PDO::PARAM_STR); - // SQLクエリの実行 + // SQLクエリの実行 $res = $stmt->execute(); // コミット $res = $pdo->commit(); + + if(safetext($serversettings["serverinfo"]["server_invitation"]) === "true"){ + $pdo->beginTransaction(); + + $stmt = $pdo->prepare("UPDATE invitation SET used = :used, datetime = :datetime WHERE code = :code;"); + + $true = "true"; + $stmt->bindParam(':used', $true, PDO::PARAM_STR); + $stmt->bindParam(':datetime', $datetime, PDO::PARAM_STR); + + $stmt->bindValue(':code', $invitationcode, PDO::PARAM_STR); + + // SQLクエリの実行 + $res = $stmt->execute(); + + // コミット + $res = $pdo->commit(); + } + + } catch (Exception $e) { + + // エラーが発生した時はロールバック + $pdo->rollBack(); } - } catch (Exception $e) { + if ($res) { + // リダイレクト先のURLへ転送する + $_SESSION['userid'] = $userid; - // エラーが発生した時はロールバック - $pdo->rollBack(); - } + $_SESSION['form_data'] = array();//フォーム初期化 + $url = 'authcodechk'; + header('Location: ' . $url, true, 303); - if ($res) { - // リダイレクト先のURLへ転送する - $_SESSION['userid'] = $userid; - $url = 'authcodechk'; - header('Location: ' . $url, true, 303); - - // すべての出力を終了 - exit; - } else { - $error_message[] = '登録に失敗しました。(REGISTERED_DAME)'; - } + // すべての出力を終了 + exit; + } else { + $error_message[] = '登録に失敗しました。(REGISTERED_DAME)'; + } // プリペアドステートメントを削除 $stmt = null; @@ -541,52 +552,50 @@ $pdo = null; -
-
- +
+
+ +
+ +
- - -
- -

ユーザーネーム *

プロフィールページに掲載され公開されます。
※サービス管理者が確認できます。
- +

ユーザーID *

後から変更はできません。
プロフィールページに掲載され公開されます。
ユーザーIDはログインに必要になるためご自身で覚えておいてください。
※サービス管理者が確認できます。
- +

パスワード *

ログイン時に必要となります。
※サービス管理者が確認できません。
- +

パスワード再確認 *

- +

メールアドレス

設定しておくとアカウント復旧に利用できます。
※サービス管理者が確認できます。
- +

プロフィール

プロフィールページに掲載され公開されます。
※サービス管理者が確認できます。
- +
@@ -610,7 +619,7 @@ $pdo = null;

招待コード

招待コードがないとこのサーバーには登録できません。
- +
diff --git a/nextpage/view.php b/nextpage/view.php index 27f4b39..08cc33d 100644 --- a/nextpage/view.php +++ b/nextpage/view.php @@ -263,7 +263,7 @@ class MessageDisplay { //普通のリユーズ---------------------------------------------------------------------------------------------------- //---------------------------------------------------------------------------------------------------------------- //---------------------------------------------------------------------------------------------------------------- - echo ''; + echo ''; echo '
'; echo ' '; echo '
' . replaceProfileEmojiImages(safetext($org_ueuse['username'])) . '
'; @@ -541,7 +541,7 @@ class MessageDisplay { //普通のリユーズのリユーズ元が消えた場合-------------------------------------------------------------------------------- //---------------------------------------------------------------------------------------------------------------- //---------------------------------------------------------------------------------------------------------------- - echo ''; + echo ''; echo '

リユーズ元のユーズは削除されました。

'; diff --git a/others/index.php b/others/index.php index f230ce6..d64d04f 100644 --- a/others/index.php +++ b/others/index.php @@ -364,7 +364,8 @@ if( !empty($_POST['btn_submit']) ) { if( !empty($_POST['session_submit']) ) { - $loginid = sha1(uniqid(mt_rand(), true)); + $LoginIdBytes = random_bytes(64); + $loginid = hash('sha3-512', $LoginIdBytes); $pdo->beginTransaction(); try { diff --git a/search/opensearch.php b/search/opensearch.php index c36b793..41be1a7 100644 --- a/search/opensearch.php +++ b/search/opensearch.php @@ -11,7 +11,7 @@ header("Access-Control-Allow-Origin: *"); $domain = $_SERVER['HTTP_HOST']; if(!(empty($serversettings["serverinfo"]["server_icon"]))){ - $servericon = safetext($this->value["servericon"]); + $servericon = safetext($serversettings["serverinfo"]["server_icon"]); }else{ $servericon = (empty($_SERVER['HTTPS']) ? 'http://' : 'https://').$domain."/img/uwuzuicon.png"; } diff --git a/server/uwuzuinfo.txt b/server/uwuzuinfo.txt index 1a32f3a..239e139 100644 --- a/server/uwuzuinfo.txt +++ b/server/uwuzuinfo.txt @@ -1,4 +1,4 @@ uwuzu -1.4.3 -2024/08/23 +1.4.4 +2024/08/30 daichimarukana,putonfps \ No newline at end of file diff --git a/server/uwuzurelease.txt b/server/uwuzurelease.txt index 12e9159..c5a70b5 100644 --- a/server/uwuzurelease.txt +++ b/server/uwuzurelease.txt @@ -1,6 +1,20 @@ ## リリースノートだぜぇぇぇぇぇぇい!!!!!!! ここにはuwuzuの更新情報を載せてくぜぇ~!(いやまてテンションおかしいだろ...) +## Version 1.4.4 (Funium) +リリース日:2024/08/30 +fix: OpenSearchのxmlが正しく生成されない問題を修正しました +fix: 動画をアップロードできない問題、画像のアップロード時にエラーが発生してしまう問題を修正しました +fix: アカウント移行時にメールアドレスが暗号化されたまま移行されてしまい、復号化できなくなってしまう問題を修正しました +fix: プロフィールの文字数が無限に入力できてしまう問題を修正しました。 +fix: リユーズ時にうまくカスタム絵文字が表示されない問題を修正しました! +fix: アカウント登録時にプロフィール画像を選択してアカウント登録ボタンを押した際にエラーが発生してしまう問題を修正しました。 +chg: セッショントークン(loginid)の生成をより安全な方法に切り替えました +chg: UIを微調整しました +new: 絵文字登録画面のプレビュー機能や管理機能など、絵文字関連の管理機能を強化しました +new: アカウント登録画面などで再読み込みなどを行っても内容が保持されるようにしました +new: サーバー管理画面よりデータベースの容量を確認できるようにしました! + ## Version 1.4.3 (Funium) リリース日:2024/08/23 fix: メールプラグインの設定画面でエラー表示がエラーを起こしてしまう問題を修正しました。 diff --git a/settings/index.php b/settings/index.php index a446d7d..7c4986c 100644 --- a/settings/index.php +++ b/settings/index.php @@ -286,6 +286,9 @@ if( !empty($_POST['btn_submit']) ) { $profile = safetext($_POST['profile']); + if( 1024 < mb_strlen($profile, 'UTF-8') ) { + $error_message[] = 'プロフィールは1024文字以内で入力してください。(INPUT_OVER_MAX_COUNT)'; + } // ユーザーネームの入力チェック if( empty($username) ) { diff --git a/settings_admin/ad_admin.php b/settings_admin/ad_admin.php index 61c3d1f..07dab37 100644 --- a/settings_admin/ad_admin.php +++ b/settings_admin/ad_admin.php @@ -285,12 +285,6 @@ if( !empty($_POST['ads_del']) ) { require('../logout/logout.php'); -if(isset($_GET['q'])){ - $keyword = safetext($_GET['q']); -}else{ - $keyword = ""; -} - if (!empty($pdo)) { $sql = "SELECT * FROM ads ORDER BY datetime DESC"; $allads = $pdo->query($sql); diff --git a/settings_admin/addemoji_admin.php b/settings_admin/addemoji_admin.php index 889a69f..748058f 100644 --- a/settings_admin/addemoji_admin.php +++ b/settings_admin/addemoji_admin.php @@ -183,32 +183,15 @@ $notiData = $notiQuery->fetch(PDO::FETCH_ASSOC); $notificationcount = $notiData['notification_count']; if( !empty($pdo) ) { - - // データベース接続の設定 - $dbh = new PDO('mysql:charset=utf8mb4;dbname='.DB_NAME.';host='.DB_HOST, DB_USER, DB_PASS, array( - PDO::ATTR_ERRMODE => PDO::ERRMODE_EXCEPTION, - PDO::ATTR_DEFAULT_FETCH_MODE => PDO::FETCH_ASSOC, - PDO::MYSQL_ATTR_USE_BUFFERED_QUERY => true, - )); - $userQuery = $dbh->prepare("SELECT username, userid, profile, role FROM account WHERE userid = :userid"); - $userQuery->bindValue(':userid', $userid); - $userQuery->execute(); - $userData = $userQuery->fetch(); + $sql = "SELECT * FROM emoji ORDER BY emojidate DESC"; + $allemoji = $pdo->query($sql); - $role = $userData["role"]; + while ($row = $allemoji->fetch(PDO::FETCH_ASSOC)) { - $dbh = new PDO('mysql:charset=utf8mb4;dbname='.DB_NAME.';host='.DB_HOST , DB_USER, DB_PASS, $option); + $Emojis[] = $row; + } - $rerole = $dbh->prepare("SELECT username, userid, password, mailadds, profile, iconname, headname, role, datetime FROM account WHERE userid = :userid"); - - $rerole->bindValue(':userid', $userid); - // SQL実行 - $rerole->execute(); - - $userdata = $rerole->fetch(); // ここでデータベースから取得した値を $role に代入する - - } if( !empty($_POST['btn_submit']) ) { @@ -344,7 +327,48 @@ if( !empty($_POST['btn_submit']) ) { } - +} + +if( !empty($_POST['emoji_del']) ) { + $emoji_name = safetext($_POST['emoji_id']); + + $query = $pdo->prepare('SELECT * FROM emoji WHERE emojiname = :emojiname limit 1'); + $query->bindValue(':emojiname', $emoji_name); + $query->execute(); + $emoji_img = $query->fetch(); + + if(!(empty($emoji_img))){ + if (is_file("../".$emoji_img["emojifile"])) { + unlink("../".$emoji_img["emojifile"]); + }else{ + $error_message[] = "絵文字の画像が見つかりませんでした。(EMOJI_NOT_FOUND)"; + } + + if(empty($error_message)){ + try{ + // 通知削除クエリを実行 + $deleteQuery = $pdo->prepare("DELETE FROM emoji WHERE emojiname = :emojiname"); + $deleteQuery->bindValue(':emojiname', $emoji_name, PDO::PARAM_STR); + $res = $deleteQuery->execute(); + + } catch (Exception $e) { + $pdo->rollBack(); + } + + if( $res ) { + $url = (empty($_SERVER['HTTPS']) ? 'http://' : 'https://') . $_SERVER['HTTP_HOST'] . $_SERVER['REQUEST_URI']; + header("Location:".$url.""); + exit; + } else { + $error_message[] = $e->getMessage(); + } + } + }else{ + $error_message[] = "絵文字が見つかりませんでした。(EMOJI_NOT_FOUND)"; + } + + // プリペアドステートメントを削除 + $stmt = null; } @@ -389,22 +413,30 @@ $pdo = null; -

絵文字登録

+

絵文字登録

-

絵文字登録です。

-
- 注意 : uwuzuで表示されるカスタム絵文字の最大の大きさは縦64pxです。
- 縦64px以上のカスタム絵文字を登録しても縮小されて表示されます。
- 最大ファイルサイズは256KBです。
- これはカスタム絵文字によってuwuzuが重たくならないようにするための仕様です。
- -
- - -
+

絵文字登録です。

+
+ 注意 : uwuzuで表示されるカスタム絵文字の最大の大きさは縦64pxです。
+ 縦64px以上のカスタム絵文字を登録しても縮小されて表示されます。
+ 最大ファイルサイズは256KBです。
+ これはカスタム絵文字によってuwuzuが重たくならないようにするための仕様です。
+
+
+
+ +
+
+ +
+
+ + + +

EmojiID

@@ -417,12 +449,41 @@ $pdo = null;
- - +
- +
+ + +
+
+ "> +
+
説明
+

+
+
登録日時
+

+ +
+ +
+
+

削除ボタンを押すとこの絵文字は削除されます。
+ この絵文字を使用した投稿からは絵文字が表示されなくなります。

+ " style="display:none;" > + +
+
+
+
+ + + +
+ +
@@ -440,23 +501,15 @@ function checkForm(inputElement) { } inputElement.value = str; } - -window.addEventListener('DOMContentLoaded', function(){ - - // ファイルが選択されたら実行 - document.getElementById("file_upload").addEventListener('change', function(e){ - - var file_reader = new FileReader(); - - // ファイルの読み込みを行ったら実行 +$(document).ready(function(){ + $('#file_upload').change(function(e) { + var file_reader = new FileReader(); file_reader.addEventListener('load', function(e) { - - const element = document.querySelector('#wrap'); - const createElement = '

画像を選択しました。

'; - element.insertAdjacentHTML('afterend', createElement); + $('#img_select').show(); + $('#emojiimg_light').attr('src', file_reader.result); + $('#emojiimg_dark').attr('src', file_reader.result); }); - - file_reader.readAsText(e.target.files[0]); + file_reader.readAsDataURL(e.target.files[0]); }); }); diff --git a/settings_admin/overview_admin.php b/settings_admin/overview_admin.php index 2565d1d..9b6f3af 100644 --- a/settings_admin/overview_admin.php +++ b/settings_admin/overview_admin.php @@ -197,22 +197,47 @@ $notiData = $notiQuery->fetch(PDO::FETCH_ASSOC); $notificationcount = $notiData['notification_count']; +if(!empty($pdo)){ + mysqli_report(MYSQLI_REPORT_ERROR | MYSQLI_REPORT_STRICT); + $mysqli = new mysqli(DB_HOST, DB_USER, DB_PASS, DB_NAME); -mysqli_report(MYSQLI_REPORT_ERROR | MYSQLI_REPORT_STRICT); -$mysqli = new mysqli(DB_HOST, DB_USER, DB_PASS, DB_NAME); + //User + $result = $mysqli->query("SELECT userid FROM account"); + $count1 = $result->num_rows; + //ueuse + $result2 = $mysqli->query("SELECT uniqid FROM ueuse"); + $count2 = $result2->num_rows; + //emoji + $result3 = $mysqli->query("SELECT sysid FROM emoji"); + $count3 = $result3->num_rows; + //bot + $result4 = $mysqli->query("SELECT userid FROM account WHERE sacinfo = 'bot'"); + $count4 = $result4->num_rows; + + //DB_Data + try { + $dbname = DB_NAME; + + $query = " + SELECT + table_name AS `Table`, + ROUND(((data_length + index_length) / 1024 / 1024), 2) AS `Size` + FROM + information_schema.TABLES + WHERE + table_schema = :database + ORDER BY + `Size` DESC; + "; + $stmt = $pdo->prepare($query); + $stmt->bindParam(':database', $dbname); + $stmt->execute(); + $db_results = $stmt->fetchAll(PDO::FETCH_ASSOC); + } catch (PDOException $e) { + $db_results = null; + } +} -//User -$result = $mysqli->query("SELECT userid FROM account"); -$count1 = $result->num_rows; -//ueuse -$result2 = $mysqli->query("SELECT uniqid FROM ueuse"); -$count2 = $result2->num_rows; -//emoji -$result3 = $mysqli->query("SELECT sysid FROM emoji"); -$count3 = $result3->num_rows; -//bot -$result4 = $mysqli->query("SELECT userid FROM account WHERE sacinfo = 'bot'"); -$count4 = $result4->num_rows; if(function_exists("disk_free_space")){ if (strtoupper(substr(PHP_OS, 0, 3)) === 'WIN') { @@ -256,6 +281,7 @@ if(function_exists("disk_free_space")){ } } + require('../logout/logout.php'); ?> @@ -369,6 +395,21 @@ require('../logout/logout.php');

過去1分間のロードアベレージ :

+
+

データベース

+
データベースの容量情報です。
+ + "; + echo ""; + echo ""; + echo ""; + } + } + ?> +
".$value['Table']."".$value['Size']." MB
diff --git a/settings_admin/plugin_admin.php b/settings_admin/plugin_admin.php index 44a10ad..209f5d9 100644 --- a/settings_admin/plugin_admin.php +++ b/settings_admin/plugin_admin.php @@ -240,7 +240,7 @@ if( !empty($_POST['testmail_send_btn_submit']) ) { $mail_title = "Test email"; $mail_text = "これはuwuzuのテストメールです。 問題なく受信できていますか?"; - $error_message[] = send_html_mail($test_mail_adds,$mail_title,$mail_text,"../"); + $error_message = send_html_mail($test_mail_adds,$mail_title,$mail_text,"../"); } /* diff --git a/update.json b/update.json index f816a45..1426e29 100644 --- a/update.json +++ b/update.json @@ -1,34 +1,35 @@ { "software": "uwuzu", - "version": "1.4.3", - "release_date": "2024-08-23", - "release_notes": "致命的なバグを修正しました!\nまた、エラーページを一つにまとめました!\n新しいバージョンのuwuzuをお楽しみください!", + "version": "1.4.4", + "release_date": "2024-08-30", + "release_notes": "このアップデートでは、動画をアップロードできない問題など様々な問題を修正しました!\nまた、安全性の向上や、絵文字の管理機能の強化などが含まれます。\n新しいバージョンのuwuzuをお楽しみください!", "notices": "アップデートの前に、データのバックアップを行うことをおすすめします!", "files": { "overwrite": [ + "/abi/addabi.php", "/admin/addadmin.php", + "/api/migration-api.php", + "/css/style.css", "/css/home.css", - "/errorpage/httperror.php", "/function/function.php", "/migration/index.php", - "/rule/privacypolicy.php", - "/rule/releasenotes.php", - "/rule/terms.php", - "/rule/uwuzuabout.php", - "/settings_admin/role_admin.php", - "/ueuse/index.php", - "/.htaccess", + "/nextpage/view.php", + "/others/index.php", + "/search/opensearch.php", + "/settings/index.php", + "/settings_admin/plugin_settings/phpmailer_sender.php", + "/settings_admin/plugin_admin.php", + "/settings_admin/ad_admin.php", + "/settings_admin/addemoji_admin.php", + "/settings_admin/overview_admin.php", + "/authlogin.php", + "/login.php", + "/new.php", + "/uwuzu_error_code.txt", "/server/uwuzuabout.txt", "/server/uwuzuinfo.txt", "/server/uwuzurelease.txt" ], - "delete": [ - "/errorpage/400.php", - "/errorpage/401.php", - "/errorpage/403.php", - "/errorpage/404.php", - "/errorpage/500.php", - "/errorpage/503.php" - ] + "delete": [] } } diff --git a/uwuzu_error_code.txt b/uwuzu_error_code.txt index 64d0b95..962d83e 100644 --- a/uwuzu_error_code.txt +++ b/uwuzu_error_code.txt @@ -67,6 +67,7 @@ EMOJI_ID_INPUT_PLEASE - 絵文字IDが入力されていない時に表示され EMOJI_ID_OVER_MAX_COUNT - 絵文字IDの文字数が最大文字数を超過している時に表示されます。 EMOJI_ID_SHIYOUZUMI - ユーザーIDがすでに使用されている時に表示されます。 EMOJI_OVER_256KB - 絵文字のファイルサイズが256KBを超えている際に表示されます。 +EMOJI_NOT_FOUND - 絵文字が見つからない時に表示されます。 INPUT_PLEASE - 入力すべき場所に内容が無い場合に表示されます。 INPUT_OVER_MAX_COUNT - 入力すべき場所に入力された内容が設定されている最大文字数を超過している際に表示されます。