mirror of
https://github.com/Daichimarukana/uwuzu.git
synced 2026-06-04 19:14:41 +00:00
uwuzu v1.4.4 Funium
This commit is contained in:
+49
-39
@@ -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);
|
||||
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);
|
||||
// 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;
|
||||
<div>
|
||||
<p>ユーザーネーム *</p>
|
||||
<div class="p2">プロフィールページに掲載され公開されます。<br>※サービス管理者が確認できます。</div>
|
||||
<input id="username" placeholder="" class="inbox" type="text" name="username" value="<?php if( !empty($_SESSION['username']) ){ echo safetext( $_SESSION['username']); } ?>">
|
||||
<input id="username" placeholder="" class="inbox" type="text" name="username" value="<?php if( !empty($_SESSION['form_data']['username']) ){ echo safetext($_SESSION['form_data']['username']); } ?>">
|
||||
</div>
|
||||
<div>
|
||||
<p>ユーザーID *</p>
|
||||
<div class="p2">後から変更はできません。<br>プロフィールページに掲載され公開されます。<br>※サービス管理者が確認できます。</div>
|
||||
<input onInput="checkForm(this)" placeholder="" class="inbox" id="userid" type="text" name="userid" value="<?php if( !empty($_SESSION['userid']) ){ echo safetext( $_SESSION['userid']); } ?>">
|
||||
<input onInput="checkForm(this)" placeholder="" class="inbox" id="userid" type="text" name="userid" value="<?php if( !empty($_SESSION['form_data']['userid']) ){ echo safetext($_SESSION['form_data']['userid']); } ?>">
|
||||
</div>
|
||||
<!--アカウント関連-->
|
||||
<div>
|
||||
<p>パスワード *</p>
|
||||
<div class="p2">ログイン時に必要となります。<br>※サービス管理者が確認できません。</div>
|
||||
<input placeholder="" class="inbox" id="password" type="text" name="password" value="<?php if( !empty($_SESSION['password']) ){ echo safetext( $_SESSION['password']); } ?>">
|
||||
<input placeholder="" class="inbox" id="password" type="text" name="password" value="<?php if( !empty($_SESSION['form_data']['password']) ){ echo safetext($_SESSION['form_data']['password']); } ?>">
|
||||
<div class="p2" id="password_zxcvbn" style="display: none;"></div>
|
||||
</div>
|
||||
|
||||
<div>
|
||||
<p>パスワード再確認 *</p>
|
||||
<input placeholder="" class="inbox" oncopy="return false" onpaste="return false" oncontextmenu="return false" id="chkpass" type="text" style="-webkit-text-security:disc;" name="chkpass" value="<?php if( !empty($_SESSION['chkpass']) ){ echo safetext( $_SESSION['chkpass']); } ?>">
|
||||
<input placeholder="" class="inbox" oncopy="return false" onpaste="return false" oncontextmenu="return false" id="chkpass" type="text" style="-webkit-text-security:disc;" name="chkpass" value="<?php if( !empty($_SESSION['form_data']['chkpass']) ){ echo safetext($_SESSION['form_data']['chkpass']); } ?>">
|
||||
</div>
|
||||
|
||||
<div>
|
||||
<p>メールアドレス</p>
|
||||
<div class="p2">設定しておくとアカウント復旧に利用できます。<br>※サービス管理者が確認できます。</div>
|
||||
<input id="mailadds" type="text" placeholder="" class="inbox" name="mailadds" value="<?php if( !empty($_SESSION['mailadds']) ){ echo safetext( $_SESSION['mailadds']); } ?>">
|
||||
<input id="mailadds" type="text" placeholder="" class="inbox" name="mailadds" value="<?php if( !empty($_SESSION['form_data']['mailadds']) ){ echo safetext($_SESSION['form_data']['mailadds']); } ?>">
|
||||
</div>
|
||||
<!--プロフィール関連-->
|
||||
<div>
|
||||
<p>プロフィール</p>
|
||||
<div class="p2">プロフィールページに掲載され公開されます。<br>※サービス管理者が確認できます。</div>
|
||||
<input id="profile" type="text" placeholder="" class="inbox" name="profile" value="<?php if( !empty($_SESSION['profile']) ){ echo safetext( $_SESSION['profile']); } ?>">
|
||||
<input id="profile" type="text" placeholder="" class="inbox" name="profile" value="<?php if( !empty($_SESSION['form_data']['profile']) ){ echo safetext($_SESSION['form_data']['profile']); } ?>">
|
||||
</div>
|
||||
<?php if(safetext($serversettings["serverinfo"]["server_invitation"]) === "true"){?>
|
||||
<div>
|
||||
<p>招待コード</p>
|
||||
<div class="p2">招待コードがないとこのサーバーには登録できません。</div>
|
||||
<input id="profile" type="text" placeholder="" class="inbox" name="invitationcode" value="<?php if( !empty($_SESSION['invitationcode']) ){ echo safetext( $_SESSION['invitationcode']); } ?>">
|
||||
<input id="profile" type="text" placeholder="" class="inbox" name="invitationcode" value="<?php if( !empty($_SESSION['form_data']['invitationcode']) ){ echo safetext($_SESSION['form_data']['invitationcode']); } ?>">
|
||||
</div>
|
||||
<input type="submit" class = "irobutton" name="btn_submit" value="登録">
|
||||
<?php }else{?>
|
||||
|
||||
@@ -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),
|
||||
),
|
||||
];
|
||||
|
||||
|
||||
+138
-3
@@ -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{
|
||||
@@ -7616,6 +7733,10 @@ noscript .noscript_modal .inner .center_text p{
|
||||
color:var(--dark-text-color);
|
||||
}
|
||||
|
||||
.formarea table{
|
||||
color:var(--dark-text-color);
|
||||
}
|
||||
|
||||
|
||||
.modal-content {
|
||||
background-color: var(--dark-sub-color);
|
||||
@@ -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);
|
||||
}
|
||||
}
|
||||
@@ -1315,4 +1315,9 @@ p img{
|
||||
.errmsg p{
|
||||
color:#ff4848;
|
||||
}
|
||||
.module_chk{
|
||||
background-color: var(--dark-background-color);
|
||||
border: none;
|
||||
padding: 0px;
|
||||
}
|
||||
}
|
||||
@@ -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)); // 小文字に変換
|
||||
|
||||
@@ -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;
|
||||
<form class="formarea" method="post">
|
||||
<div>
|
||||
<p>ユーザーID</p>
|
||||
<input onInput="checkForm(this)" id="userid" class="inbox" type="text" name="userid" value="<?php if( !empty($_SESSION['userid']) ){ echo safetext( $_SESSION['userid']); } ?>">
|
||||
<input onInput="checkForm(this)" id="userid" class="inbox" type="text" name="userid" value="<?php if( !empty($_SESSION['form_data']['userid']) ){ echo safetext($_SESSION['form_data']['userid']); } ?>">
|
||||
</div>
|
||||
<div>
|
||||
<p>パスワード</p>
|
||||
<input id="password" class="inbox" type="password" name="password" maxlength="32" value="<?php if( !empty($_SESSION['password']) ){ echo safetext( $_SESSION['password']); } ?>">
|
||||
<input id="password" class="inbox" type="password" name="password" maxlength="32" value="<?php if( !empty($_SESSION['form_data']['password']) ){ echo safetext($_SESSION['form_data']['password']); } ?>">
|
||||
</div>
|
||||
<div class="switch_flexbox">
|
||||
<div class="switch_button">
|
||||
|
||||
+30
-10
@@ -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,11 +442,13 @@ 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);
|
||||
|
||||
// SQLクエリの実行
|
||||
@@ -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;
|
||||
<div>
|
||||
<p>新しいユーザーID</p>
|
||||
<div class="p2">このサーバーで使用するユーザーIDを入力してください。</div>
|
||||
<input id="new_userid" type="text" placeholder="" class="inbox" name="new_userid" value="">
|
||||
<input id="new_userid" type="text" placeholder="" class="inbox" name="new_userid" value="<?php if( !empty($_SESSION['form_data']['new_userid']) ){ echo safetext($_SESSION['form_data']['new_userid']); } ?>">
|
||||
</div>
|
||||
<div>
|
||||
<p>新しいパスワード</p>
|
||||
<div class="p2">このサーバーで使用するパスワードを入力してください。</div>
|
||||
<input id="password" type="text" placeholder="" class="inbox" name="password" value="">
|
||||
<input id="password" type="text" placeholder="" class="inbox" name="password" value="<?php if( !empty($_SESSION['form_data']['password']) ){ echo safetext($_SESSION['form_data']['password']); } ?>">
|
||||
</div>
|
||||
<div>
|
||||
<p>アカウント移行元のuwuzuサーバーのドメイン</p>
|
||||
<div class="p2">アカウント移行元のサーバードメインを入力してください。</div>
|
||||
<input id="moto_server_domain" type="text" placeholder="uwuzu.example.com" class="inbox" name="moto_server_domain" value="">
|
||||
<input id="moto_server_domain" type="text" placeholder="uwuzu.example.com" class="inbox" name="moto_server_domain" value="<?php if( !empty($_SESSION['form_data']['moto_server_domain']) ){ echo safetext($_SESSION['form_data']['moto_server_domain']); } ?>">
|
||||
</div>
|
||||
<div>
|
||||
<p>識別コード</p>
|
||||
<div class="p2">アカウント移行元のサーバーで発行された識別コードを入力してください。</div>
|
||||
<input id="moto_server_account_check" type="text" placeholder="" class="inbox" name="moto_server_account_check" value="">
|
||||
<input id="moto_server_account_check" type="text" placeholder="" class="inbox" name="moto_server_account_check" value="<?php if( !empty($_SESSION['form_data']['moto_server_account_check']) ){ echo safetext($_SESSION['form_data']['moto_server_account_check']); } ?>">
|
||||
</div>
|
||||
|
||||
<div>
|
||||
<p>認証コード</p>
|
||||
<div class="p2">アカウント移行元のサーバーで発行された認証コードを入力してください。</div>
|
||||
<input id="moto_server_account_auth" type="text" placeholder="" class="inbox" name="moto_server_account_auth" value="">
|
||||
<input id="moto_server_account_auth" type="text" placeholder="" class="inbox" name="moto_server_account_auth" value="<?php if( !empty($_SESSION['form_data']['moto_server_account_auth']) ){ echo safetext($_SESSION['form_data']['moto_server_account_auth']); } ?>">
|
||||
</div>
|
||||
<?php if(!empty(H_CAPTCHA_ONOFF && H_CAPTCHA_ONOFF == "true")){?>
|
||||
<div class="captcha_zone">
|
||||
@@ -612,7 +632,7 @@ $pdo = null;
|
||||
<div>
|
||||
<p>招待コード</p>
|
||||
<div class="p2">招待コードがないとこのサーバーには登録できません。</div>
|
||||
<input id="invitationcode" type="text" placeholder="" class="inbox" name="invitationcode" value="<?php if( !empty($_SESSION['invitationcode']) ){ echo safetext( $_SESSION['invitationcode']); } ?>">
|
||||
<input id="invitationcode" type="text" placeholder="" class="inbox" name="invitationcode" value="<?php if( !empty($_SESSION['form_data']['invitationcode']) ){ echo safetext($_SESSION['form_data']['invitationcode']); } ?>">
|
||||
</div>
|
||||
<?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);
|
||||
// アップロードされたファイルの拡張子を取得
|
||||
$extension = pathinfo($uploadedFile['name'], PATHINFO_EXTENSION);
|
||||
|
||||
// EXIF削除
|
||||
delete_exif($extension, $uploadedFile['tmp_name']);
|
||||
// リサイズ
|
||||
resizeImage($uploadedFile['tmp_name'], 512, 512);
|
||||
// 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);
|
||||
|
||||
// SQLクエリの実行
|
||||
$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(':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;
|
||||
|
||||
<form class="formarea" enctype="multipart/form-data" method="post">
|
||||
|
||||
<div id="wrap">
|
||||
<div class="iconimg">
|
||||
<img id="iconimg" src="img/deficon/icon.png">
|
||||
<div id="wrap">
|
||||
<div class="iconimg">
|
||||
<img id="iconimg" src="img/deficon/icon.png">
|
||||
</div>
|
||||
<label class="irobutton" for="file_upload">ファイル選択
|
||||
<input type="file" id="file_upload" name="image" accept="image/*">
|
||||
</label>
|
||||
<p id="img_select" style="display:none;">画像を選択しました</p>
|
||||
</div>
|
||||
<label class="irobutton" for="file_upload">ファイル選択
|
||||
<input type="file" id="file_upload" name="image" accept="image/*">
|
||||
</label>
|
||||
<p id="img_select" style="display:none;">画像を選択しました</p>
|
||||
</div>
|
||||
|
||||
|
||||
<script src="js/back.js"></script>
|
||||
<!--ユーザーネーム関係-->
|
||||
<div>
|
||||
<p>ユーザーネーム *</p>
|
||||
<div class="p2">プロフィールページに掲載され公開されます。<br>※サービス管理者が確認できます。</div>
|
||||
<input id="username" placeholder="" class="inbox" type="text" name="username" value="<?php if( !empty($_SESSION['username']) ){ echo safetext( $_SESSION['username']); } ?>">
|
||||
<input id="username" placeholder="" class="inbox" type="text" name="username" value="<?php if( !empty($_SESSION['form_data']['username']) ){ echo safetext($_SESSION['form_data']['username']); } ?>">
|
||||
</div>
|
||||
<div>
|
||||
<p>ユーザーID *</p>
|
||||
<div class="p2"><b>後から変更はできません。</b><br>プロフィールページに掲載され公開されます。<br><b>ユーザーIDはログインに必要になるためご自身で覚えておいてください。</b><br>※サービス管理者が確認できます。</div>
|
||||
<input onInput="checkForm(this)" placeholder="" class="inbox" id="userid" type="text" name="userid" value="<?php if( !empty($_SESSION['userid']) ){ echo safetext( $_SESSION['userid']); } ?>">
|
||||
<input onInput="checkForm(this)" placeholder="" class="inbox" id="userid" type="text" name="userid" value="<?php if( !empty($_SESSION['form_data']['userid']) ){ echo safetext($_SESSION['form_data']['userid']); } ?>">
|
||||
</div>
|
||||
<!--アカウント関連-->
|
||||
<div>
|
||||
<p>パスワード *</p>
|
||||
<div class="p2">ログイン時に必要となります。<br>※サービス管理者が確認できません。</div>
|
||||
<input placeholder="" class="inbox" id="password" type="text" name="password" value="<?php if( !empty($_SESSION['password']) ){ echo safetext( $_SESSION['password']); } ?>">
|
||||
<input placeholder="" class="inbox" id="password" type="text" name="password" value="<?php if( !empty($_SESSION['form_data']['password']) ){ echo safetext($_SESSION['form_data']['password']); } ?>">
|
||||
<div class="p2" id="password_zxcvbn" style="display: none;"></div>
|
||||
</div>
|
||||
|
||||
<div>
|
||||
<p>パスワード再確認 *</p>
|
||||
<input placeholder="" class="inbox" oncopy="return false" onpaste="return false" oncontextmenu="return false" id="chkpass" type="text" style="-webkit-text-security:disc;" name="chkpass" value="<?php if( !empty($_SESSION['chkpass']) ){ echo safetext( $_SESSION['chkpass']); } ?>">
|
||||
<input placeholder="" class="inbox" oncopy="return false" onpaste="return false" oncontextmenu="return false" id="chkpass" type="text" style="-webkit-text-security:disc;" name="chkpass" value="<?php if( !empty($_SESSION['form_data']['chkpass']) ){ echo safetext($_SESSION['form_data']['chkpass']); } ?>">
|
||||
</div>
|
||||
|
||||
<div>
|
||||
<p>メールアドレス</p>
|
||||
<div class="p2">設定しておくとアカウント復旧に利用できます。<br>※サービス管理者が確認できます。</div>
|
||||
<input id="mailadds" type="text" placeholder="" class="inbox" name="mailadds" value="<?php if( !empty($_SESSION['mailadds']) ){ echo safetext( $_SESSION['mailadds']); } ?>">
|
||||
<input id="mailadds" type="text" placeholder="" class="inbox" name="mailadds" value="<?php if( !empty($_SESSION['form_data']['mailadds']) ){ echo safetext($_SESSION['form_data']['mailadds']); } ?>">
|
||||
</div>
|
||||
<!--プロフィール関連-->
|
||||
<div>
|
||||
<p>プロフィール</p>
|
||||
<div class="p2">プロフィールページに掲載され公開されます。<br>※サービス管理者が確認できます。</div>
|
||||
<textarea id="profile" type="text" placeholder="" class="inbox" name="profile"><?php if( !empty($_SESSION['profile']) ){ echo safetext( $_SESSION['profile']); } ?></textarea>
|
||||
<textarea id="profile" type="text" placeholder="" class="inbox" name="profile"><?php if( !empty($_SESSION['form_data']['profile']) ){ echo safetext($_SESSION['form_data']['profile']); } ?></textarea>
|
||||
</div>
|
||||
|
||||
<div class="btn_area">
|
||||
@@ -610,7 +619,7 @@ $pdo = null;
|
||||
<div>
|
||||
<p>招待コード</p>
|
||||
<div class="p2">招待コードがないとこのサーバーには登録できません。</div>
|
||||
<input id="profile" type="text" placeholder="" class="inbox" name="invitationcode" value="<?php if( !empty($_SESSION['invitationcode']) ){ echo safetext( $_SESSION['invitationcode']); } ?>">
|
||||
<input id="profile" type="text" placeholder="" class="inbox" name="invitationcode" value="<?php if( !empty($_SESSION['form_data']['invitationcode']) ){ echo safetext($_SESSION['form_data']['invitationcode']); } ?>">
|
||||
</div>
|
||||
<input type="submit" class = "irobutton" name="btn_submit" value="登録">
|
||||
<?php }else{?>
|
||||
|
||||
+2
-2
@@ -263,7 +263,7 @@ class MessageDisplay {
|
||||
//普通のリユーズ----------------------------------------------------------------------------------------------------
|
||||
//----------------------------------------------------------------------------------------------------------------
|
||||
//----------------------------------------------------------------------------------------------------------------
|
||||
echo '<div class="ru"><a href="/@' . safetext($this->value['account']) . '"><img src="../'.$this->value['iconname'] . '"><p>' . safetext($this->value['username']) . 'さんがリユーズ</p></a></div>';
|
||||
echo '<div class="ru"><a href="/@' . safetext($this->value['account']) . '"><img src="../'.$this->value['iconname'] . '"><p>' . replaceProfileEmojiImages(safetext($this->value['username'])) . 'さんがリユーズ</p></a></div>';
|
||||
echo ' <div class="flebox">';
|
||||
echo ' <a href="/@' . safetext($org_ueuse['account']) . '"><img src="../'.$org_ueuse['iconname'] . '"></a>';
|
||||
echo ' <a href="/@' . safetext($org_ueuse['account']) . '"><div class="u_name">' . replaceProfileEmojiImages(safetext($org_ueuse['username'])) . '</div></a>';
|
||||
@@ -541,7 +541,7 @@ class MessageDisplay {
|
||||
//普通のリユーズのリユーズ元が消えた場合--------------------------------------------------------------------------------
|
||||
//----------------------------------------------------------------------------------------------------------------
|
||||
//----------------------------------------------------------------------------------------------------------------
|
||||
echo '<div class="ru"><a href="/@' . safetext($this->value['account']) . '"><img src="../'.$this->value['iconname'] . '"><p>' . safetext($this->value['username']) . 'さんがリユーズ</p></a></div>';
|
||||
echo '<div class="ru"><a href="/@' . safetext($this->value['account']) . '"><img src="../'.$this->value['iconname'] . '"><p>' . replaceProfileEmojiImages(safetext($this->value['username'])) . 'さんがリユーズ</p></a></div>';
|
||||
|
||||
echo '<p>リユーズ元のユーズは削除されました。</p>';
|
||||
|
||||
|
||||
+2
-1
@@ -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 {
|
||||
|
||||
|
||||
@@ -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";
|
||||
}
|
||||
|
||||
@@ -1,4 +1,4 @@
|
||||
uwuzu
|
||||
1.4.3
|
||||
2024/08/23
|
||||
1.4.4
|
||||
2024/08/30
|
||||
daichimarukana,putonfps
|
||||
@@ -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: メールプラグインの設定画面でエラー表示がエラーを起こしてしまう問題を修正しました。
|
||||
|
||||
@@ -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) ) {
|
||||
|
||||
@@ -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);
|
||||
|
||||
@@ -184,30 +184,13 @@ $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,
|
||||
));
|
||||
$sql = "SELECT * FROM emoji ORDER BY emojidate DESC";
|
||||
$allemoji = $pdo->query($sql);
|
||||
|
||||
$userQuery = $dbh->prepare("SELECT username, userid, profile, role FROM account WHERE userid = :userid");
|
||||
$userQuery->bindValue(':userid', $userid);
|
||||
$userQuery->execute();
|
||||
$userData = $userQuery->fetch();
|
||||
|
||||
$role = $userData["role"];
|
||||
|
||||
$dbh = new PDO('mysql:charset=utf8mb4;dbname='.DB_NAME.';host='.DB_HOST , DB_USER, DB_PASS, $option);
|
||||
|
||||
$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 に代入する
|
||||
while ($row = $allemoji->fetch(PDO::FETCH_ASSOC)) {
|
||||
|
||||
$Emojis[] = $row;
|
||||
}
|
||||
|
||||
}
|
||||
|
||||
@@ -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;
|
||||
|
||||
<form class="formarea" enctype="multipart/form-data" method="post">
|
||||
|
||||
<h1>絵文字登録</h1>
|
||||
<h1>絵文字登録</h1>
|
||||
|
||||
<p>絵文字登録です。</p>
|
||||
<div class="p2">
|
||||
注意 : uwuzuで表示されるカスタム絵文字の最大の大きさは縦64pxです。<br>
|
||||
縦64px以上のカスタム絵文字を登録しても縮小されて表示されます。<br>
|
||||
最大ファイルサイズは256KBです。<br>
|
||||
これはカスタム絵文字によってuwuzuが重たくならないようにするための仕様です。</div>
|
||||
<p>絵文字登録です。</p>
|
||||
<div class="p2">
|
||||
注意 : uwuzuで表示されるカスタム絵文字の最大の大きさは縦64pxです。<br>
|
||||
縦64px以上のカスタム絵文字を登録しても縮小されて表示されます。<br>
|
||||
最大ファイルサイズは256KBです。<br>
|
||||
これはカスタム絵文字によってuwuzuが重たくならないようにするための仕様です。</div>
|
||||
|
||||
<div id="wrap">
|
||||
|
||||
<label class="irobutton" for="file_upload">ファイル選択
|
||||
<input type="file" id="file_upload" name="image" >
|
||||
</label>
|
||||
</div>
|
||||
<div id="wrap">
|
||||
<div class="emojipreview">
|
||||
<div class="emojiimg light">
|
||||
<img id="emojiimg_light" src="../img/sysimage/errorimage/emoji_404.png">
|
||||
</div>
|
||||
<div class="emojiimg dark">
|
||||
<img id="emojiimg_dark" src="../img/sysimage/errorimage/emoji_404.png">
|
||||
</div>
|
||||
</div>
|
||||
|
||||
<label class="irobutton" for="file_upload">ファイル選択
|
||||
<input type="file" id="file_upload" name="image" >
|
||||
</label>
|
||||
<p id="img_select" style="display:none;">画像を選択しました</p>
|
||||
</div>
|
||||
<!--ユーザーネーム関係-->
|
||||
<div>
|
||||
<p>EmojiID</p>
|
||||
@@ -417,12 +449,41 @@ $pdo = null;
|
||||
</div>
|
||||
|
||||
<div>
|
||||
|
||||
<input type="submit" class = "irobutton" name="btn_submit" value="登録">
|
||||
<input type="submit" class = "irobutton" name="btn_submit" value="登録">
|
||||
</div>
|
||||
|
||||
</form>
|
||||
|
||||
<div class="formarea">
|
||||
<?php if(!(empty($Emojis))){?>
|
||||
<?php foreach ($Emojis as $value) {?>
|
||||
<div class="emoji_admin">
|
||||
<details>
|
||||
<summary><img src="../<?php echo safetext($value["emojifile"]);?>"><?php echo safetext($value["emojiname"]);?></summary>
|
||||
<hr>
|
||||
<div class="p2">説明</div>
|
||||
<p><?php echo nl2br(safetext($value["emojiinfo"]));?></p>
|
||||
<hr>
|
||||
<div class="p2">登録日時</div>
|
||||
<p><?php echo date("Y年m月d日 H:i", strtotime(safetext($value["emojidate"])));?></p>
|
||||
|
||||
<hr>
|
||||
|
||||
<form enctype="multipart/form-data" method="post">
|
||||
<div class="delbox">
|
||||
<p>削除ボタンを押すとこの絵文字は削除されます。<br>
|
||||
この絵文字を使用した投稿からは絵文字が表示されなくなります。</p>
|
||||
<input type="text" name="emoji_id" id="emoji_id" value="<?php echo safetext($value["emojiname"]);?>" style="display:none;" >
|
||||
<input type="submit" name="emoji_del" class="delbtn" value="削除">
|
||||
</div>
|
||||
</form>
|
||||
</details>
|
||||
</div>
|
||||
<?php }?>
|
||||
<?php }?>
|
||||
|
||||
</div>
|
||||
|
||||
|
||||
</div>
|
||||
</div>
|
||||
</main>
|
||||
@@ -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 = '<p>画像を選択しました。</p>';
|
||||
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]);
|
||||
});
|
||||
});
|
||||
</script>
|
||||
|
||||
@@ -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');
|
||||
?>
|
||||
<!DOCTYPE html>
|
||||
@@ -369,6 +395,21 @@ require('../logout/logout.php');
|
||||
<?php }else{?>
|
||||
<p>過去1分間のロードアベレージ : <?php echo $loadAve?></p>
|
||||
<?php };?>
|
||||
<hr>
|
||||
<p>データベース</p>
|
||||
<div class="p2">データベースの容量情報です。</div>
|
||||
<table>
|
||||
<?php
|
||||
if(!empty($db_results)){
|
||||
foreach ($db_results as $value) {
|
||||
echo "<tr>";
|
||||
echo "<td>".$value['Table']."</td>";
|
||||
echo "<td>".$value['Size']." MB</td>";
|
||||
echo "</tr>";
|
||||
}
|
||||
}
|
||||
?>
|
||||
</table>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
|
||||
@@ -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,"../");
|
||||
}
|
||||
|
||||
/*
|
||||
|
||||
+20
-19
@@ -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": []
|
||||
}
|
||||
}
|
||||
|
||||
@@ -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 - 入力すべき場所に入力された内容が設定されている最大文字数を超過している際に表示されます。
|
||||
|
||||
Reference in New Issue
Block a user