From b39307b6518e60e6f1eaa841ed0f4b01a350027f Mon Sep 17 00:00:00 2001
From: =?UTF-8?q?=E3=81=A0=E3=81=84=E3=81=A1=E3=81=BE=E3=82=8B?=
<98202777+Daichimarukana@users.noreply.github.com>
Date: Wed, 22 Apr 2026 01:24:23 +0900
Subject: [PATCH] uwuzu v1.6.12 Hapuego
---
abi/addabi.php | 175 +++++----
admin/addadmin.php | 92 ++---
api/me/settings/index.php | 298 +++++++--------
api/ueuse/create.php | 158 +++++---
bookmark/bookmark.php | 37 +-
css/home.css | 111 ++++--
delete/delete.php | 18 +-
favorite/favorite.php | 31 +-
function/delete_apitoken.php | 17 +-
function/function.php | 554 ++++++++++++++++------------
function/get_customemoji.php | 107 +++---
function/get_userid.php | 99 ++---
function/reuse.php | 79 ++--
function/settings.php | 345 ++++++++---------
function/ueuse.php | 119 +++---
js/view_function.js | 56 +--
migration/index.php | 204 +++++-----
new.php | 92 ++---
nextpage/bookmarktimeline.php | 231 ++++++------
nextpage/followtimeline.php | 203 +++++-----
nextpage/foryoutimeline.php | 451 +++++++++++-----------
nextpage/localtimeline.php | 199 +++++-----
nextpage/notification.php | 173 ++++-----
nextpage/searchtimeline.php | 301 +++++++--------
nextpage/ueusetimeline.php | 223 +++++------
nextpage/userliketimeline.php | 209 +++++------
nextpage/usermediatimeline.php | 203 +++++-----
nextpage/usertimeline.php | 346 ++++++++---------
server/uwuzuabout.txt | 7 +-
server/uwuzuinfo.txt | 4 +-
server/uwuzurelease.txt | 11 +
settings_admin/api/code_delete.php | 63 ++--
settings_admin/api/update_query.php | 101 ++---
settings_admin/overview_admin.php | 76 ++--
update.json | 37 +-
uwuzu_error_code.txt | 5 +
36 files changed, 2851 insertions(+), 2584 deletions(-)
diff --git a/abi/addabi.php b/abi/addabi.php
index cee4b52..bf30f3e 100644
--- a/abi/addabi.php
+++ b/abi/addabi.php
@@ -11,6 +11,18 @@ require('../db.php');
require("../function/function.php");
blockedIP($_SERVER['REMOTE_ADDR']);
+$pdo = null;
+try {
+ $option = array(
+ PDO::ATTR_ERRMODE => PDO::ERRMODE_EXCEPTION,
+ PDO::MYSQL_ATTR_MULTI_STATEMENTS => false
+ );
+ $pdo = new PDO('mysql:charset=utf8mb4;dbname='.DB_NAME.';host='.DB_HOST , DB_USER, DB_PASS, $option);
+} catch(PDOException $e) {
+ // 接続エラーのときエラー内容を取得する
+ $error_message[] = $e->getMessage();
+}
+
if (safetext(isset($_POST['uniqid'])) && safetext(isset($_POST['abitext'])) && safetext(isset($_POST['userid'])) && safetext(isset($_POST['account_id'])) && safetext(isset($_COOKIE['loginkey']))) {
$userid = safetext($_POST['userid']);
@@ -23,113 +35,100 @@ if (safetext(isset($_POST['uniqid'])) && safetext(isset($_POST['abitext'])) && s
if ($is_login === false) {
echo json_encode(['success' => false, 'error' => '認証に失敗しました。(AUTH_INVALID)']);
exit;
- }
+ }elseif(is_sameUserid($userid, $is_login["userid"]) === true){
+ $abidate = date("Y-m-d H:i:s");
- $abidate = date("Y-m-d H:i:s");
+ $query = $pdo->prepare('SELECT * FROM ueuse WHERE uniqid = :uniqid limit 1');
- // データベース接続の設定
- $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,
- ));
+ $query->execute(array(':uniqid' => $postUniqid));
- $query = $dbh->prepare('SELECT * FROM ueuse WHERE uniqid = :uniqid limit 1');
+ $result = $query->fetch();
- $query->execute(array(':uniqid' => $postUniqid));
+ if($result["account"] === $userid){
+ $query = $pdo->prepare('SELECT * FROM account WHERE userid = :userid limit 1');
- $result = $query->fetch();
+ $query->execute(array(':userid' => $userid));
- if($result["account"] === $userid){
- // データベース接続の設定
- $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,
- ));
+ $result2 = $query->fetch();
- $query = $dbh->prepare('SELECT * FROM account WHERE userid = :userid limit 1');
-
- $query->execute(array(':userid' => $userid));
-
- $result2 = $query->fetch();
-
- if($result2["loginid"] === $loginid){
- if($result["abi"] == "none" && (!($result2["role"] == "ice"))){
- // 文字数を確認
- if( (int)safetext(file_get_contents($mojisizefile)) < mb_strlen(str_replace("\r\n", "\n", $abitext), 'UTF-8') ) {
- $err = "content_to_".safetext(file_get_contents($mojisizefile))."_characters";
- $response = array(
- 'error_code' => $err,
- );
- echo json_encode($response, JSON_UNESCAPED_UNICODE);
- exit;
- }
- // 禁止url確認
- if(!(empty($banurl))){
- for($i = 0; $i < count($banurl); $i++) {
- if (false !== strpos($abitext, 'https://'.$banurl[$i])) {
- $err = "contains_prohibited_url";
- $response = array(
- 'error_code' => $err,
- );
- echo json_encode($response, JSON_UNESCAPED_UNICODE);
- exit;
+ if($result2["loginid"] === $loginid){
+ if($result["abi"] == "none" && (!($result2["role"] == "ice"))){
+ // 文字数を確認
+ if( (int)safetext(file_get_contents($mojisizefile)) < mb_strlen(str_replace("\r\n", "\n", $abitext), 'UTF-8') ) {
+ $err = "content_to_".safetext(file_get_contents($mojisizefile))."_characters";
+ $response = array(
+ 'error_code' => $err,
+ );
+ echo json_encode($response, JSON_UNESCAPED_UNICODE);
+ exit;
+ }
+ // 禁止url確認
+ if(!(empty($banurl))){
+ for($i = 0; $i < count($banurl); $i++) {
+ if (false !== strpos($abitext, 'https://'.$banurl[$i])) {
+ $err = "contains_prohibited_url";
+ $response = array(
+ 'error_code' => $err,
+ );
+ echo json_encode($response, JSON_UNESCAPED_UNICODE);
+ exit;
+ }
}
}
- }
-
-
- try {
- $pdo = new PDO('mysql:charset=utf8mb4;dbname='.DB_NAME.';host='.DB_HOST , DB_USER, DB_PASS);
-
- $pdo->beginTransaction();
-
- $stmt = $pdo->prepare("UPDATE ueuse SET abi = :abi, abidate = :abidate WHERE uniqid = :uniqid AND account = :userid");
- $stmt->bindValue(':abi', $abitext, PDO::PARAM_STR);
- $stmt->bindValue(':abidate', $abidate, PDO::PARAM_STR);
- $stmt->bindValue(':uniqid', $postUniqid, PDO::PARAM_STR);
-
- $stmt->bindValue(':userid', $userid, PDO::PARAM_STR);
- // SQLクエリの実行
- $res = $stmt->execute();
- // コミット
- $pdo->commit();
+ try {
+ $pdo->beginTransaction();
- $mentionedUsers = get_mentions_userid($abitext);
+ $stmt = $pdo->prepare("UPDATE ueuse SET abi = :abi, abidate = :abidate WHERE uniqid = :uniqid AND account = :userid");
+ $stmt->bindValue(':abi', $abitext, PDO::PARAM_STR);
+ $stmt->bindValue(':abidate', $abidate, PDO::PARAM_STR);
+ $stmt->bindValue(':uniqid', $postUniqid, PDO::PARAM_STR);
- foreach ($mentionedUsers as $mentionedUser) {
- $touserid = safetext($mentionedUser);
- $datetime = date("Y-m-d H:i:s");
- $msg = safetext("" . $abitext . "");
- $title = safetext("" . $result2["username"] . "さんにメンションされました!");
- $url = safetext("/!" . $postUniqid . "~" . $userid . "");
- $userchk = 'none';
- $category = 'mention';
-
- send_notification($touserid,$userid,$title,$msg,$url,$category);
- }
+ $stmt->bindValue(':userid', $userid, PDO::PARAM_STR);
+
+ // SQLクエリの実行
+ $res = $stmt->execute();
- if ($res) {
- echo json_encode(['success' => true]);
- exit;
- } else {
- echo json_encode(['success' => false, 'error' => '追加に失敗しました。']);
+ // コミット
+ $pdo->commit();
+
+ $mentionedUsers = get_mentions_userid($abitext);
+
+ foreach ($mentionedUsers as $mentionedUser) {
+ $touserid = safetext($mentionedUser);
+ $datetime = date("Y-m-d H:i:s");
+ $msg = safetext("" . $abitext . "");
+ $title = safetext("" . $result2["username"] . "さんにメンションされました!");
+ $url = safetext("/!" . $postUniqid . "~" . $userid . "");
+ $userchk = 'none';
+ $category = 'mention';
+
+ send_notification($touserid,$userid,$title,$msg,$url,$category);
+ }
+
+ if ($res) {
+ echo json_encode(['success' => true]);
+ exit;
+ } else {
+ echo json_encode(['success' => false, 'error' => '追加に失敗しました。']);
+ exit;
+ }
+ } catch(PDOException $e) {
+ echo json_encode(['success' => false, 'error' => 'データベースエラー:' . $e->getMessage()]);
exit;
}
- } catch(PDOException $e) {
- echo json_encode(['success' => false, 'error' => 'データベースエラー:' . $e->getMessage()]);
- exit;
+ }else{
+ echo json_encode(['success' => false, 'error' => 'すでに追記済みです。']);
+ exit;
}
- }else{
- echo json_encode(['success' => false, 'error' => 'すでに追記済みです。']);
- exit;
- }
-
+
+ }
}
+ }else{
+ echo json_encode(['success' => false, 'error' => '認証に失敗しました。(AUTH_INVALID)']);
+ exit;
}
}
?>
diff --git a/admin/addadmin.php b/admin/addadmin.php
index 73af838..087dfec 100644
--- a/admin/addadmin.php
+++ b/admin/addadmin.php
@@ -142,15 +142,7 @@ if( !empty($_POST['btn_submit']) ) {
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'].'';
+ $error_message[] = 'アップロード失敗!(1)エラーコード: ERROR';
}
}
if(isset($s3result)){
@@ -162,47 +154,45 @@ if( !empty($_POST['btn_submit']) ) {
}
} else {
$uploadedFile = $_FILES['image'];
- if(!(empty($uploadedFile['tmp_name']))){
- if(check_mime($uploadedFile['tmp_name'])){
- $extension = convert_mime(check_mime($uploadedFile['tmp_name']));
- delete_exif($extension, $uploadedFile['tmp_name']);
- resizeImage($uploadedFile['tmp_name'], 512, 512);
+ $beforeUploadError = check_upload_error($uploadedFile, __DIR__.'/../usericons/');
+ if($beforeUploadError === null){
+ if(!(empty($uploadedFile['tmp_name']))){
+ if(check_mime($uploadedFile['tmp_name'])){
+ $extension = convert_mime(check_mime($uploadedFile['tmp_name']));
+ delete_exif($extension, $uploadedFile['tmp_name']);
+ resizeImage($uploadedFile['tmp_name'], 512, 512);
- if(AMS3_CHKS == "true"){
- $s3result = uploadAmazonS3($uploadedFile['tmp_name']);
+ if(AMS3_CHKS == "true"){
+ $s3result = uploadAmazonS3($uploadedFile['tmp_name']);
+ }else{
+ if(check_mime($uploadedFile['tmp_name']) == "image/webp"){
+ $newFilename = createUniqId() . '-'.$userid.'.webp';
+ }else{
+ $newFilename = createUniqId() . '-'.$userid.'.' . $extension;
+ }
+ $uploadedPath = 'usericons/' . $newFilename;
+ $result = move_uploaded_file($uploadedFile['tmp_name'], "../".$uploadedPath);
+
+ if ($result) {
+ $iconName = $uploadedPath; // 保存されたファイルのパスを使用
+ } else {
+ $beforeUploadError = check_upload_error($uploadedFile, __DIR__.'/../usericons/') ?? "ERROR";
+ $error_message[] = 'アップロード失敗!(1)エラーコード:' .$beforeUploadError.'';
+ }
+ }
+ if(isset($s3result)){
+ if($s3result == false){
+ $error_message[] = 'アップロード失敗!(1)エラーコード: S3ERROR';
+ }else{
+ $iconName = $s3result; // S3に保存されたファイルのパスを使用
+ }
+ }
}else{
- if(check_mime($uploadedFile['tmp_name']) == "image/webp"){
- $newFilename = createUniqId() . '-'.$userid.'.webp';
- }else{
- $newFilename = createUniqId() . '-'.$userid.'.' . $extension;
- }
- $uploadedPath = 'usericons/' . $newFilename;
- $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)エラーコード:' .$errcode.'';
- }
+ $error_message[] = "使用できない画像形式です。(FILE_UPLOAD_DEKINAKATTA)";
}
- if(isset($s3result)){
- if($s3result == false){
- $error_message[] = 'アップロード失敗!(1)エラーコード: S3ERROR';
- }else{
- $iconName = $s3result; // S3に保存されたファイルのパスを使用
- }
- }
- }else{
- $error_message[] = "使用できない画像形式です。(FILE_UPLOAD_DEKINAKATTA)";
}
+ }else{
+ $error_message[] = 'アップロード失敗!(1)エラーコード:' .$beforeUploadError.'';
}
}
@@ -218,15 +208,7 @@ if( !empty($_POST['btn_submit']) ) {
if ($result) {
$headName = $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[] = 'アップロード失敗!(2)エラーコード:' .$uploadedFile['error'].'';
+ $error_message[] = 'アップロード失敗!(1)エラーコード: ERROR';
}
}
if(isset($s3result)){
diff --git a/api/me/settings/index.php b/api/me/settings/index.php
index 839ad65..3e686aa 100644
--- a/api/me/settings/index.php
+++ b/api/me/settings/index.php
@@ -111,18 +111,30 @@ if (isset($_GET['token']) || (!(empty($Get_Post_Json)))) {
if (!(empty($post_json["icon"]))) {
- $imageData = base64_decode($post_json["icon"], true);
+ $iconBase64 = $post_json["icon"];
- $tmpFilePath = tempnam(sys_get_temp_dir(), 'upload_' . createUniqId());
- file_put_contents($tmpFilePath, $imageData);
+ if (strpos($iconBase64, ',') !== false) {
+ $iconBase64 = explode(',', $iconBase64)[1];
+ }
- $IconFiles = [
- 'name' => 'upload.png',
- 'type' => check_mime($tmpFilePath),
- 'tmp_name' => $tmpFilePath,
- 'error' => UPLOAD_ERR_OK,
- 'size' => strlen($imageData),
- ];
+ $imageData = base64_decode($iconBase64, true);
+
+ if ($imageData === false) {
+ $error_message[] = 'Base64のデコードに失敗しました!(base64_decode_failed)';
+ } else {
+ $tmpFilePath = tempnam(sys_get_temp_dir(), 'upload_' . createUniqId());
+ file_put_contents($tmpFilePath, $imageData);
+
+ clearstatcache(true, $tmpFilePath);
+
+ $IconFiles = [
+ 'name' => 'upload.png',
+ 'type' => check_mime($tmpFilePath),
+ 'tmp_name' => $tmpFilePath,
+ 'error' => UPLOAD_ERR_OK,
+ 'size' => filesize($tmpFilePath),
+ ];
+ }
} else {
$IconFiles = array();
}
@@ -131,85 +143,55 @@ if (isset($_GET['token']) || (!(empty($Get_Post_Json)))) {
if (isset($IconFiles)) {
if (!(empty($IconFiles['name']))) {
$uploadedFile = $IconFiles;
- if (check_mime($uploadedFile['tmp_name'])) {
- $extension = pathinfo($uploadedFile['name'], PATHINFO_EXTENSION);
- delete_exif($extension, $uploadedFile['tmp_name']);
- resizeImage($uploadedFile['tmp_name'], 512, 512);
+ $beforeUploadError = check_upload_error($uploadedFile, __DIR__.'/../../../usericons/');
+ if($beforeUploadError === null){
+ if (check_mime($uploadedFile['tmp_name'])) {
+ $extension = pathinfo($uploadedFile['name'], PATHINFO_EXTENSION);
+ delete_exif($extension, $uploadedFile['tmp_name']);
+ resizeImage($uploadedFile['tmp_name'], 512, 512);
- if (AMS3_CHKS == "true") {
- $usericonurl = getUserData($pdo, $userid)["iconname"];
- if (filter_var($usericonurl, FILTER_VALIDATE_URL)) {
- $s3delresult = deleteAmazonS3($usericonurl);
+ if (AMS3_CHKS == "true") {
+ $usericonurl = getUserData($pdo, $userid)["iconname"];
+ if (filter_var($usericonurl, FILTER_VALIDATE_URL)) {
+ $s3delresult = deleteAmazonS3($usericonurl);
+ } else {
+ $s3delresult = true;
+ }
+ if ($s3delresult == true) {
+ $s3result = uploadAmazonS3($uploadedFile['tmp_name']);
+ } else {
+ $s3result = false;
+ }
} else {
- $s3delresult = true;
+ if (check_mime($uploadedFile['tmp_name']) == "image/webp") {
+ $newFilename = createUniqId() . '-' . $userid . '.webp';
+ } else {
+ $newFilename = createUniqId() . '-' . $userid . '.' . $extension;
+ }
+ $uploadedPath = 'usericons/' . $newFilename;
+ $result = rename($uploadedFile['tmp_name'], __DIR__ . '/../../../' . $uploadedPath);
+
+ if ($result) {
+ $iconName = $uploadedPath; // 保存されたファイルのパスを使用
+ $currentIconPath = getUserData($pdo, $userid)["iconname"];
+ } else {
+ $beforeUploadError = check_upload_error($uploadedFile, __DIR__.'/../../../usericons/') ?? "ERROR";
+ $error_message[] = 'アップロード失敗!(1)エラーコード:' .$beforeUploadError.'';
+ }
}
- if ($s3delresult == true) {
- $s3result = uploadAmazonS3($uploadedFile['tmp_name']);
- } else {
- $s3result = false;
+ if (isset($s3result)) {
+ if ($s3result == false) {
+ $error_message[] = 'アップロード失敗!(1)エラーコード: S3ERROR';
+ } else {
+ $iconName = $s3result; // S3に保存されたファイルのパスを使用
+ $currentIconPath = getUserData($pdo, $userid)["iconname"];
+ }
}
} else {
- if (check_mime($uploadedFile['tmp_name']) == "image/webp") {
- $newFilename = createUniqId() . '-' . $userid . '.webp';
- } else {
- $newFilename = createUniqId() . '-' . $userid . '.' . $extension;
- }
- $uploadedPath = 'usericons/' . $newFilename;
- $result = rename($uploadedFile['tmp_name'], __DIR__ . '/../../../' . $uploadedPath);
-
- if ($result) {
- $iconName = $uploadedPath; // 保存されたファイルのパスを使用
- $currentIconPath = getUserData($pdo, $userid)["iconname"];
- } else {
- $errnum = $uploadedFile['error'];
- $errcode = "ERROR";
-
- switch ($errnum) {
- case 1:
- $errcode = "FILE_DEKASUGUI_PHP_INI_KAKUNIN";
- break;
- case 2:
- $errcode = "FILE_DEKASUGUI_HTML_KAKUNIN";
- break;
- case 3:
- $errcode = "FILE_SUKOSHIDAKE_UPLOAD";
- break;
- case 4:
- $errcode = "FILE_UPLOAD_DEKINAKATTA";
- break;
- case 6:
- $errcode = "TMP_FOLDER_NAI";
- break;
- case 7:
- $errcode = "FILE_KAKIKOMI_SIPPAI";
- break;
- case 8:
- $errcode = "PHPINFO()_KAKUNIN";
- break;
- case 0:
- // 成功だったのに move_uploaded_file() が失敗した
- if (!is_uploaded_file($uploadedFile['tmp_name'])) {
- $errcode = "TMP_FILE_NAI";
- } elseif (!is_writable(__DIR__ . '/../../../usericons/')) {
- $errcode = "SAVE_FOLDER_KAKIKOMI_KENNAI";
- } else {
- $errcode = "MOVE_UPLOAD_FILE_SIPPAI";
- }
- break;
- }
- $error_message[] = 'アップロード失敗!(1)エラーコード:' . $errcode . '';
- }
+ $error_message[] = "使用できない画像形式です。(FILE_UPLOAD_DEKINAKATTA)";
}
- if (isset($s3result)) {
- if ($s3result == false) {
- $error_message[] = 'アップロード失敗!(1)エラーコード: S3ERROR';
- } else {
- $iconName = $s3result; // S3に保存されたファイルのパスを使用
- $currentIconPath = getUserData($pdo, $userid)["iconname"];
- }
- }
- } else {
- $error_message[] = "使用できない画像形式です。(FILE_UPLOAD_DEKINAKATTA)";
+ }else{
+ $error_message[] = 'アップロード失敗!(1)エラーコード:' .$beforeUploadError.'';
}
}
}
@@ -217,107 +199,87 @@ if (isset($_GET['token']) || (!(empty($Get_Post_Json)))) {
$add_sql[] = "iconname = :iconname";
}
-
if (!(empty($post_json["header"]))) {
- $imageData = base64_decode($post_json["header"], true);
+ $headerBase64 = $post_json["header"];
- $tmpFilePath = tempnam(sys_get_temp_dir(), 'upload_' . createUniqId());
- file_put_contents($tmpFilePath, $imageData);
+ if (strpos($headerBase64, ',') !== false) {
+ $headerBase64 = explode(',', $headerBase64)[1];
+ }
- $HeadFiles = [
- 'name' => 'upload.png',
- 'type' => check_mime($tmpFilePath),
- 'tmp_name' => $tmpFilePath,
- 'error' => UPLOAD_ERR_OK,
- 'size' => strlen($imageData),
- ];
+ $imageData = base64_decode($headerBase64, true);
+
+ if ($imageData === false) {
+ $error_message[] = 'Base64のデコードに失敗しました!(base64_decode_failed)';
+ } else {
+ $tmpFilePath = tempnam(sys_get_temp_dir(), 'upload_' . createUniqId());
+ file_put_contents($tmpFilePath, $imageData);
+
+ clearstatcache(true, $tmpFilePath);
+
+ $HeadFiles = [
+ 'name' => 'upload.png',
+ 'type' => check_mime($tmpFilePath),
+ 'tmp_name' => $tmpFilePath,
+ 'error' => UPLOAD_ERR_OK,
+ 'size' => filesize($tmpFilePath),
+ ];
+ }
} else {
$HeadFiles = array();
}
-
if (isset($HeadFiles)) {
if (!(empty($HeadFiles['name']))) {
$uploadedFile = $HeadFiles;
- if (check_mime($uploadedFile['tmp_name'])) {
- $extension = pathinfo($uploadedFile['name'], PATHINFO_EXTENSION);
- delete_exif($extension, $uploadedFile['tmp_name']);
- resizeImage($uploadedFile['tmp_name'], 2048, 1024);
+ $beforeUploadError = check_upload_error($uploadedFile, __DIR__.'/../../../userheads/');
+ if($beforeUploadError === null){
+ if (check_mime($uploadedFile['tmp_name'])) {
+ $extension = pathinfo($uploadedFile['name'], PATHINFO_EXTENSION);
+ delete_exif($extension, $uploadedFile['tmp_name']);
+ resizeImage($uploadedFile['tmp_name'], 2048, 1024);
- if (AMS3_CHKS == "true") {
- $userheadurl = getUserData($pdo, $userid)["headname"];
- if (filter_var($userheadurl, FILTER_VALIDATE_URL)) {
- $s3delresult = deleteAmazonS3($userheadurl);
+ if (AMS3_CHKS == "true") {
+ $userheadurl = getUserData($pdo, $userid)["headname"];
+ if (filter_var($userheadurl, FILTER_VALIDATE_URL)) {
+ $s3delresult = deleteAmazonS3($userheadurl);
+ } else {
+ $s3delresult = true;
+ }
+ if ($s3delresult == true) {
+ $s3result = uploadAmazonS3($uploadedFile['tmp_name']);
+ } else {
+ $s3result = false;
+ }
} else {
- $s3delresult = true;
+ if (check_mime($uploadedFile['tmp_name']) == "image/webp") {
+ $newFilename = createUniqId() . '-' . $userid . '.webp';
+ } else {
+ $newFilename = createUniqId() . '-' . $userid . '.' . $extension;
+ }
+ $uploadedPath = 'userheads/' . $newFilename;
+ $result = rename($uploadedFile['tmp_name'], __DIR__ . '/../../../' . $uploadedPath);
+
+ if ($result) {
+ $headName = $uploadedPath; // 保存されたファイルのパスを使用
+ $currentHeadPath = getUserData($pdo, $userid)["headname"];
+ } else {
+ $beforeUploadError = check_upload_error($uploadedFile, __DIR__.'/../../../userheads/') ?? "ERROR";
+ $error_message[] = 'アップロード失敗!(1)エラーコード:' .$beforeUploadError.'';
+ }
}
- if ($s3delresult == true) {
- $s3result = uploadAmazonS3($uploadedFile['tmp_name']);
- } else {
- $s3result = false;
+ if (isset($s3result)) {
+ if ($s3result == false) {
+ $error_message[] = 'アップロード失敗!(2)エラーコード: S3ERROR';
+ } else {
+ $headName = $s3result; // S3に保存されたファイルのパスを使用
+ $currentHeadPath = getUserData($pdo, $userid)["headname"];
+ }
}
} else {
- if (check_mime($uploadedFile['tmp_name']) == "image/webp") {
- $newFilename = createUniqId() . '-' . $userid . '.webp';
- } else {
- $newFilename = createUniqId() . '-' . $userid . '.' . $extension;
- }
- $uploadedPath = 'userheads/' . $newFilename;
- $result = rename($uploadedFile['tmp_name'], __DIR__ . '/../../../' . $uploadedPath);
-
- if ($result) {
- $headName = $uploadedPath; // 保存されたファイルのパスを使用
- $currentHeadPath = getUserData($pdo, $userid)["headname"];
- } else {
- $errnum = $uploadedFile['error'];
- $errcode = "ERROR";
-
- switch ($errnum) {
- case 1:
- $errcode = "FILE_DEKASUGUI_PHP_INI_KAKUNIN";
- break;
- case 2:
- $errcode = "FILE_DEKASUGUI_HTML_KAKUNIN";
- break;
- case 3:
- $errcode = "FILE_SUKOSHIDAKE_UPLOAD";
- break;
- case 4:
- $errcode = "FILE_UPLOAD_DEKINAKATTA";
- break;
- case 6:
- $errcode = "TMP_FOLDER_NAI";
- break;
- case 7:
- $errcode = "FILE_KAKIKOMI_SIPPAI";
- break;
- case 8:
- $errcode = "PHPINFO()_KAKUNIN";
- break;
- case 0:
- // 成功だったのに move_uploaded_file() が失敗した
- if (!is_uploaded_file($uploadedFile['tmp_name'])) {
- $errcode = "TMP_FILE_NAI";
- } elseif (!is_writable(__DIR__ . '/../../../usericons/')) {
- $errcode = "SAVE_FOLDER_KAKIKOMI_KENNAI";
- } else {
- $errcode = "MOVE_UPLOAD_FILE_SIPPAI";
- }
- break;
- }
- $error_message[] = 'アップロード失敗!(2)エラーコード:' . $errcode . '';
- }
+ $error_message[] = "使用できない画像形式です。(FILE_UPLOAD_DEKINAKATTA)";
}
- if (isset($s3result)) {
- if ($s3result == false) {
- $error_message[] = 'アップロード失敗!(2)エラーコード: S3ERROR';
- } else {
- $headName = $s3result; // S3に保存されたファイルのパスを使用
- $currentHeadPath = getUserData($pdo, $userid)["headname"];
- }
- }
- } else {
- $error_message[] = "使用できない画像形式です。(FILE_UPLOAD_DEKINAKATTA)";
+ }else{
+ $error_message[] = 'アップロード失敗!(2)エラーコード:' .$beforeUploadError.'';
}
}
}
diff --git a/api/ueuse/create.php b/api/ueuse/create.php
index 69ff998..8ea436f 100644
--- a/api/ueuse/create.php
+++ b/api/ueuse/create.php
@@ -117,69 +117,117 @@ if(isset($_GET['token']) || (!(empty($Get_Post_Json)))) {
}
if(!(empty($post_json["image1"]))){
- $imageData = base64_decode($post_json["image1"],true);
-
- $tmpFilePath = tempnam(sys_get_temp_dir(), 'upload_'.createUniqId());
- file_put_contents($tmpFilePath, $imageData);
-
- $Img1Files = [
- 'name' => 'upload.png',
- 'type' => check_mime($tmpFilePath),
- 'tmp_name' => $tmpFilePath,
- 'error' => UPLOAD_ERR_OK,
- 'size' => strlen($imageData),
- ];
+ $imageBase64 = $post_json["image1"];
+
+ if (strpos($imageBase64, ',') !== false) {
+ $imageBase64 = explode(',', $imageBase64)[1];
+ }
+
+ $imageData = base64_decode($imageBase64, true);
+
+ if ($imageData === false) {
+ $error_message[] = 'Base64のデコードに失敗しました!(base64_decode_failed)';
+ } else {
+ $tmpFilePath = tempnam(sys_get_temp_dir(), 'upload_' . createUniqId());
+ file_put_contents($tmpFilePath, $imageData);
+
+ clearstatcache(true, $tmpFilePath);
+
+ $Img1Files = [
+ 'name' => 'upload.png',
+ 'type' => check_mime($tmpFilePath),
+ 'tmp_name' => $tmpFilePath,
+ 'error' => UPLOAD_ERR_OK,
+ 'size' => filesize($tmpFilePath),
+ ];
+ }
} else {
$Img1Files = array();
}
if(!(empty($post_json["image2"]))){
- $imageData = base64_decode($post_json["image2"],true);
-
- $tmpFilePath = tempnam(sys_get_temp_dir(), 'upload_'.createUniqId());
- file_put_contents($tmpFilePath, $imageData);
-
- $Img2Files = [
- 'name' => 'upload.png',
- 'type' => check_mime($tmpFilePath),
- 'tmp_name' => $tmpFilePath,
- 'error' => UPLOAD_ERR_OK,
- 'size' => strlen($imageData),
- ];
+ $imageBase64 = $post_json["image2"];
+
+ if (strpos($imageBase64, ',') !== false) {
+ $imageBase64 = explode(',', $imageBase64)[1];
+ }
+
+ $imageData = base64_decode($imageBase64, true);
+
+ if ($imageData === false) {
+ $error_message[] = 'Base64のデコードに失敗しました!(base64_decode_failed)';
+ } else {
+ $tmpFilePath = tempnam(sys_get_temp_dir(), 'upload_' . createUniqId());
+ file_put_contents($tmpFilePath, $imageData);
+
+ clearstatcache(true, $tmpFilePath);
+
+ $Img2Files = [
+ 'name' => 'upload.png',
+ 'type' => check_mime($tmpFilePath),
+ 'tmp_name' => $tmpFilePath,
+ 'error' => UPLOAD_ERR_OK,
+ 'size' => filesize($tmpFilePath),
+ ];
+ }
} else {
$Img2Files = array();
}
if(!(empty($post_json["image3"]))){
- $imageData = base64_decode($post_json["image3"],true);
-
- $tmpFilePath = tempnam(sys_get_temp_dir(), 'upload_'.createUniqId());
- file_put_contents($tmpFilePath, $imageData);
-
- $Img3Files = [
- 'name' => 'upload.png',
- 'type' => check_mime($tmpFilePath),
- 'tmp_name' => $tmpFilePath,
- 'error' => UPLOAD_ERR_OK,
- 'size' => strlen($imageData),
- ];
+ $imageBase64 = $post_json["image3"];
+
+ if (strpos($imageBase64, ',') !== false) {
+ $imageBase64 = explode(',', $imageBase64)[1];
+ }
+
+ $imageData = base64_decode($imageBase64, true);
+
+ if ($imageData === false) {
+ $error_message[] = 'Base64のデコードに失敗しました!(base64_decode_failed)';
+ } else {
+ $tmpFilePath = tempnam(sys_get_temp_dir(), 'upload_' . createUniqId());
+ file_put_contents($tmpFilePath, $imageData);
+
+ clearstatcache(true, $tmpFilePath);
+
+ $Img3Files = [
+ 'name' => 'upload.png',
+ 'type' => check_mime($tmpFilePath),
+ 'tmp_name' => $tmpFilePath,
+ 'error' => UPLOAD_ERR_OK,
+ 'size' => filesize($tmpFilePath),
+ ];
+ }
} else {
$Img3Files = array();
}
if(!(empty($post_json["image4"]))){
- $imageData = base64_decode($post_json["image4"],true);
-
- $tmpFilePath = tempnam(sys_get_temp_dir(), 'upload_'.createUniqId());
- file_put_contents($tmpFilePath, $imageData);
-
- $Img4Files = [
- 'name' => 'upload.png',
- 'type' => check_mime($tmpFilePath),
- 'tmp_name' => $tmpFilePath,
- 'error' => UPLOAD_ERR_OK,
- 'size' => strlen($imageData),
- ];
+ $imageBase64 = $post_json["image4"];
+
+ if (strpos($imageBase64, ',') !== false) {
+ $imageBase64 = explode(',', $imageBase64)[1];
+ }
+
+ $imageData = base64_decode($imageBase64, true);
+
+ if ($imageData === false) {
+ $error_message[] = 'Base64のデコードに失敗しました!(base64_decode_failed)';
+ } else {
+ $tmpFilePath = tempnam(sys_get_temp_dir(), 'upload_' . createUniqId());
+ file_put_contents($tmpFilePath, $imageData);
+
+ clearstatcache(true, $tmpFilePath);
+
+ $Img4Files = [
+ 'name' => 'upload.png',
+ 'type' => check_mime($tmpFilePath),
+ 'tmp_name' => $tmpFilePath,
+ 'error' => UPLOAD_ERR_OK,
+ 'size' => filesize($tmpFilePath),
+ ];
+ }
} else {
$Img4Files = array();
}
@@ -193,8 +241,18 @@ if(isset($_GET['token']) || (!(empty($Get_Post_Json)))) {
$video1 = array();
- $ueuse_result = send_ueuse($userData["userid"],$replyid,$reuseid,$ueuse,$Img1Files,$Img2Files,$Img3Files,$Img4Files,$video1,$nsfw,$isAIBWM, "../");
-
+ if(empty($error_message)){
+ $ueuse_result = send_ueuse($userData["userid"],$replyid,$reuseid,$ueuse,$Img1Files,$Img2Files,$Img3Files,$Img4Files,$video1,$nsfw,$isAIBWM, "../");
+ }else{
+ $err = $error_message;
+ $response = array(
+ 'error_code' => $err,
+ 'success' => false
+ );
+
+ echo json_encode($response, JSON_UNESCAPED_UNICODE);
+ exit;
+ }
if($ueuse_result[0] == true){
$response = array(
diff --git a/bookmark/bookmark.php b/bookmark/bookmark.php
index efdcb8c..185890e 100644
--- a/bookmark/bookmark.php
+++ b/bookmark/bookmark.php
@@ -14,27 +14,19 @@ if (safetext(isset($_POST['uniqid'])) && safetext(isset($_POST['userid'])) && sa
if ($is_login === false) {
echo json_encode(['success' => false, 'error' => '認証に失敗しました。(AUTH_INVALID)']);
exit;
- }
+ }elseif(is_sameUserid($userId, $is_login["userid"]) === true){
+ try {
+ $option = array(
+ PDO::ATTR_ERRMODE => PDO::ERRMODE_EXCEPTION,
+ PDO::MYSQL_ATTR_MULTI_STATEMENTS => false
+ );
+ $pdo = new PDO('mysql:charset=utf8mb4;dbname=' . DB_NAME . ';host=' . DB_HOST, DB_USER, DB_PASS, $option);
+ } catch (PDOException $e) {
+ // 接続エラーのときエラー内容を取得する
+ $error_message[] = $e->getMessage();
+ }
- try {
- $option = array(
- PDO::ATTR_ERRMODE => PDO::ERRMODE_EXCEPTION,
- PDO::MYSQL_ATTR_MULTI_STATEMENTS => false
- );
- $pdo = new PDO('mysql:charset=utf8mb4;dbname=' . DB_NAME . ';host=' . DB_HOST, DB_USER, DB_PASS, $option);
- } catch (PDOException $e) {
- // 接続エラーのときエラー内容を取得する
- $error_message[] = $e->getMessage();
- }
-
- // データベース接続の設定
- $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,
- ));
-
- $query = $dbh->prepare('SELECT * FROM account WHERE userid = :userid limit 1');
+ $query = $pdo->prepare('SELECT * FROM account WHERE userid = :userid limit 1');
$query->execute(array(':userid' => $userId));
@@ -99,6 +91,11 @@ if (safetext(isset($_POST['uniqid'])) && safetext(isset($_POST['userid'])) && sa
exit;
}
}
+ }else{
+ echo json_encode(['success' => false, 'error' => '認証に失敗しました。(AUTH_INVALID)']);
+ exit;
+ }
+
} else {
echo json_encode(['success' => false, 'error' => '必要なパラメータが提供されていません。']);
exit;
diff --git a/css/home.css b/css/home.css
index f8abb51..77cebd7 100644
--- a/css/home.css
+++ b/css/home.css
@@ -1395,6 +1395,19 @@ main h1 {
font-weight: bold;
}
+.ueuse .chotto_small {
+ line-height: 16px;
+ overflow-wrap: break-word;
+ margin-top: auto;
+ margin-bottom: auto;
+ margin-left: 0px;
+ font-size: 12px;
+ color: var(--text-color);
+ text-decoration: none;
+ font-family: var(--Text-fonts), sans-serif;
+ font-weight: normal;
+}
+
.ueuse p img {
margin-top: auto;
margin-bottom: auto;
@@ -4700,6 +4713,48 @@ label>input {
opacity: 1;
}
+.notification .codeblock {
+ width: calc(100% - 12px);
+ margin-left: 0px;
+ margin-right: 0px;
+ padding-left: 6px;
+ padding-right: 6px;
+ padding-top: 3px;
+ padding-bottom: 3px;
+ background-color: #DDDDDD;
+ color: #323232;
+ border-radius: 5px;
+ font-size: calc(100% - 2px);
+ text-decoration: none;
+ font-family: var(--Mono-fonts), sans-serif;
+ font-weight: bold;
+ vertical-align: top;
+}
+
+.notification .codeblock code {
+ white-space: pre-wrap;
+ word-break: break-word;
+}
+
+.notification .unixtime {
+ width: fit-content;
+ margin-left: 4px;
+ margin-right: 4px;
+ padding-left: 6px;
+ padding-right: 6px;
+ padding-top: 3px;
+ padding-bottom: 3px;
+ background-color: #F5F5F5;
+ border: solid 1px #CCC;
+ color: #323232;
+ border-radius: 25px;
+ font-size: calc(100% - 2px);
+ text-decoration: none;
+ font-family: var(--Mono-fonts), sans-serif;
+ font-weight: bold;
+ vertical-align: top;
+}
+
.notification h1 {
overflow-wrap: break-word;
margin-top: auto;
@@ -4791,6 +4846,19 @@ label>input {
font-weight: bold;
}
+.notification .chotto_small {
+ line-height: 16px;
+ overflow-wrap: break-word;
+ margin-top: auto;
+ margin-bottom: auto;
+ margin-left: 0px;
+ font-size: 12px;
+ color: var(--text-color);
+ text-decoration: none;
+ font-family: var(--Text-fonts), sans-serif;
+ font-weight: normal;
+}
+
.notification p img {
margin-top: auto;
margin-bottom: auto;
@@ -8410,11 +8478,11 @@ noscript .noscript_modal .inner .center_text p {
}
.ueuse p {
- color: var(--background-color);
+ color: var(--dark-text-color);
}
.ru a p {
- color: var(--background-color);
+ color: var(--dark-text-color);
}
.ueuse .inline {
@@ -8444,25 +8512,29 @@ noscript .noscript_modal .inner .center_text p {
.ueuse h1 {
- color: var(--background-color);
+ color: var(--dark-text-color);
}
.ueuse h2 {
- color: var(--background-color);
+ color: var(--dark-text-color);
}
.ueuse h3 {
- color: var(--background-color);
+ color: var(--dark-text-color);
}
.ueuse center {
- color: var(--background-color);
+ color: var(--dark-text-color);
}
.ueuse a {
color: var(--main-color);
}
+ .ueuse .chotto_small {
+ color: var(--dark-text-color);
+ }
+
.ueuse .flebox .time {
color: var(--dark-subtext-color);
}
@@ -9188,21 +9260,8 @@ noscript .noscript_modal .inner .center_text p {
}
.notification .inline {
- width: fit-content;
- margin-left: 4px;
- margin-right: 4px;
- padding-left: 6px;
- padding-right: 6px;
- padding-top: 3px;
- padding-bottom: 3px;
- background-color: #DDDDDD;
- color: #323232;
- border-radius: 5px;
- font-size: calc(100% - 2px);
- text-decoration: none;
- font-family: var(--Mono-fonts), sans-serif;
- font-weight: bold;
- vertical-align: top;
+ background-color: #323232;
+ color: #F5F5F5;
}
.notification h1 {
@@ -9263,6 +9322,16 @@ noscript .noscript_modal .inner .center_text p {
color: var(--main-color);
}
+ .notification .chotto_small {
+ color: var(--dark-text-color);
+ }
+
+ .notification .unixtime {
+ background-color: #323232;
+ border: solid 1px #CCC;
+ color: #F5F5F5;
+ }
+
.tokonone p {
color: var(--dark-subtext-color);
}
diff --git a/delete/delete.php b/delete/delete.php
index 940bce4..fd10056 100644
--- a/delete/delete.php
+++ b/delete/delete.php
@@ -14,15 +14,17 @@ if (safetext(isset($_POST['uniqid'])) && safetext(isset($_POST['userid'])) && sa
if ($is_login === false) {
echo json_encode(['success' => false, 'error' => '認証に失敗しました。(AUTH_INVALID)']);
exit;
- }
-
-
- $result = delete_ueuse($postUniqid, $postUserid, $loginid);
- if($result[0] === true){
- echo json_encode(['success' => true]);
- exit;
+ }elseif(is_sameUserid($postUserid, $is_login["userid"]) === true){
+ $result = delete_ueuse($postUniqid, $postUserid, $loginid);
+ if($result[0] === true){
+ echo json_encode(['success' => true]);
+ exit;
+ }else{
+ echo json_encode(['success' => false, 'error' => '削除に失敗しました。']);
+ exit;
+ }
}else{
- echo json_encode(['success' => false, 'error' => '削除に失敗しました。']);
+ echo json_encode(['success' => false, 'error' => '認証に失敗しました。(AUTH_INVALID)']);
exit;
}
}else{
diff --git a/favorite/favorite.php b/favorite/favorite.php
index a00085c..6d57404 100644
--- a/favorite/favorite.php
+++ b/favorite/favorite.php
@@ -14,18 +14,17 @@ if (safetext(isset($_POST['uniqid'])) && safetext(isset($_POST['userid'])) && sa
if ($is_login === false) {
echo json_encode(['success' => false, 'error' => '認証に失敗しました。(AUTH_INVALID)']);
exit;
- }
-
- try {
- $option = array(
- PDO::ATTR_ERRMODE => PDO::ERRMODE_EXCEPTION,
- PDO::MYSQL_ATTR_MULTI_STATEMENTS => false
- );
- $pdo = new PDO('mysql:charset=utf8mb4;dbname=' . DB_NAME . ';host=' . DB_HOST, DB_USER, DB_PASS, $option);
- } catch (PDOException $e) {
- // 接続エラーのときエラー内容を取得する
- $error_message[] = $e->getMessage();
- }
+ }elseif(is_sameUserid($userId, $is_login["userid"]) === true){
+ try {
+ $option = array(
+ PDO::ATTR_ERRMODE => PDO::ERRMODE_EXCEPTION,
+ PDO::MYSQL_ATTR_MULTI_STATEMENTS => false
+ );
+ $pdo = new PDO('mysql:charset=utf8mb4;dbname=' . DB_NAME . ';host=' . DB_HOST, DB_USER, DB_PASS, $option);
+ } catch (PDOException $e) {
+ // 接続エラーのときエラー内容を取得する
+ $error_message[] = $e->getMessage();
+ }
// データベース接続の設定
$query = $pdo->prepare('SELECT * FROM account WHERE userid = :userid limit 1');
@@ -45,8 +44,12 @@ if (safetext(isset($_POST['uniqid'])) && safetext(isset($_POST['userid'])) && sa
exit;
}
}
- } else {
- echo json_encode(['success' => false, 'error' => '必要なパラメータが提供されていません。']);
+ }else{
+ echo json_encode(['success' => false, 'error' => '認証に失敗しました。(AUTH_INVALID)']);
exit;
}
+} else {
+ echo json_encode(['success' => false, 'error' => '必要なパラメータが提供されていません。']);
+ exit;
+}
?>
diff --git a/function/delete_apitoken.php b/function/delete_apitoken.php
index c7d8ac6..d7e195b 100644
--- a/function/delete_apitoken.php
+++ b/function/delete_apitoken.php
@@ -26,13 +26,16 @@ if (safetext(isset($_POST['uniqid'])) && safetext(isset($_POST['userid'])) && sa
if ($is_login === false) {
echo json_encode(['success' => false, 'error' => '認証に失敗しました。(AUTH_INVALID)']);
exit;
- }
-
- if(DelAPIToken($pdo, $uniqid)){
- echo json_encode(['success' => true, 'message' => 'アクセストークンが削除されました。']);
- exit;
- } else {
- echo json_encode(['success' => false, 'error' => 'アクセストークンの削除に失敗しました。']);
+ }elseif(is_sameUserid($userid, $is_login["userid"]) === true){
+ if(DelAPIToken($pdo, $uniqid)){
+ echo json_encode(['success' => true, 'message' => 'アクセストークンが削除されました。']);
+ exit;
+ } else {
+ echo json_encode(['success' => false, 'error' => 'アクセストークンの削除に失敗しました。']);
+ exit;
+ }
+ }else{
+ echo json_encode(['success' => false, 'error' => '認証に失敗しました。(AUTH_INVALID)']);
exit;
}
} else {
diff --git a/function/function.php b/function/function.php
index c7e9dc6..9fb5640 100644
--- a/function/function.php
+++ b/function/function.php
@@ -320,12 +320,14 @@ function uwuzuUserLoginCheck($loginid, $loginkey, $operation_permission = "user"
if(hash_equals($loginkey, $userLoginKey)){
if($operation_permission == "admin"){
if($loginResponse["admin"] == "yes"){
- $is_login = true;
+ // true
+ $is_login = $loginResponse;
}else{
$is_login = false;
}
}else{
- $is_login = true;
+ // true
+ $is_login = $loginResponse;
}
}else{
$is_login = false;
@@ -339,6 +341,9 @@ function uwuzuUserLoginCheck($loginid, $loginkey, $operation_permission = "user"
return false;
}
}
+function is_sameUserid($userid_a, $userid_b){
+ return strtolower($userid_a) == strtolower($userid_b);
+}
//---------UNIQID-MAKER---------
function Legacy_createUniqId(){
list($msec, $sec) = explode(" ", microtime());
@@ -424,6 +429,51 @@ function delete_exif($extension, $path){
}
//----------EXIF_Delete----------
//----------Check_Extension------
+// アップロードエラーチェッカー
+function check_upload_error($uploadedFile, $saveFolder){
+ $saveFolder = realpath($saveFolder);
+ $errcode = null;
+ $errnum = $uploadedFile["error"];
+ switch ($errnum) {
+ case 1:
+ $errcode = "FILE_DEKASUGUI_PHP_INI_KAKUNIN";
+ break;
+ case 2:
+ $errcode = "FILE_DEKASUGUI_HTML_KAKUNIN";
+ break;
+ case 3:
+ $errcode = "FILE_SUKOSHIDAKE_UPLOAD";
+ break;
+ case 4:
+ $errcode = "FILE_UPLOAD_DEKINAKATTA";
+ break;
+ case 6:
+ $errcode = "TMP_FOLDER_NAI";
+ break;
+ case 7:
+ $errcode = "FILE_KAKIKOMI_SIPPAI";
+ break;
+ case 8:
+ $errcode = "PHPINFO()_KAKUNIN";
+ break;
+ case 0:
+ if(empty($uploadedFile['name'])){
+ $errcode = "FILE_NAME_NAI";
+ }elseif(empty($uploadedFile['size']) || $uploadedFile['size'] == 0){
+ $errcode = "FILE_SIZE_NAI";
+ }else{
+ if (!file_exists($uploadedFile['tmp_name'])) {
+ $errcode = "TMP_FILE_NAI";
+ } elseif (!is_writable($saveFolder)) {
+ $errcode = "SAVE_FOLDER_KAKIKOMI_KENNAI";
+ } else {
+ $errcode = null;
+ }
+ }
+ break;
+ }
+ return $errcode;
+}
//ファイル形式チェック(画像かどうか)
function check_mime($tmp_name){
$finfo = new finfo();
@@ -1450,56 +1500,53 @@ function send_ueuse($userid,$rpUniqid,$ruUniqid,$ueuse,$photo1,$photo2,$photo3,$
} else {
// アップロードされたファイル情報
$uploadedFile = $photo1;
+ $beforeUploadError = check_upload_error($uploadedFile, __DIR__."/../ueuseimages/");
+ if($beforeUploadError === null){
+ if(!(empty($uploadedFile['tmp_name']))){
+ if(check_mime($uploadedFile['tmp_name'])){
+ // アップロードされたファイルの拡張子を取得
+ $extension = convert_mime(check_mime($uploadedFile['tmp_name']));
+ delete_exif($extension, $uploadedFile['tmp_name']);
+ resizeImage($uploadedFile['tmp_name'], 8192, 8192);
- if(!(empty($uploadedFile['tmp_name']))){
- if(check_mime($uploadedFile['tmp_name'])){
- // アップロードされたファイルの拡張子を取得
- $extension = convert_mime(check_mime($uploadedFile['tmp_name']));
- delete_exif($extension, $uploadedFile['tmp_name']);
- resizeImage($uploadedFile['tmp_name'], 8192, 8192);
-
- if($aibwm === true){
- AIBlockWaterMark($uploadedFile['tmp_name'], $userid);
- }
- if(AMS3_CHKS == "true"){
- $s3result = uploadAmazonS3($uploadedFile['tmp_name']);
- }else{
- if(check_mime($uploadedFile['tmp_name']) == "image/webp"){
- $extension = 'webp';
+ if($aibwm === true){
+ AIBlockWaterMark($uploadedFile['tmp_name'], $userid);
}
- // 新しいファイル名を生成(uniqid + 拡張子)
- $newFilename = createUniqId() . '-'.$userid.'.' . $extension;
- // 保存先のパスを生成
- $uploadedPath = '../ueuseimages/' . $newFilename;
- // ファイルを移動
- $result = move_uploaded_file($uploadedFile['tmp_name'], __DIR__."/".$uploadedPath);
-
- if ($result) {
- $save_photo1 = $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)エラーコード:' .$errcode.'';
- }
- }
- if(isset($s3result)){
- if($s3result == false){
- $error_message[] = 'アップロード失敗!(1)エラーコード: S3ERROR';
+ if(AMS3_CHKS == "true"){
+ $s3result = uploadAmazonS3($uploadedFile['tmp_name']);
}else{
- $save_photo1 = $s3result; // S3に保存されたファイルのパスを使用
+ if(check_mime($uploadedFile['tmp_name']) == "image/webp"){
+ $extension = 'webp';
+ }
+ // 新しいファイル名を生成(uniqid + 拡張子)
+ $newFilename = createUniqId() . '-'.$userid.'.' . $extension;
+ // 保存先のパスを生成
+ $uploadedPath = '../ueuseimages/' . $newFilename;
+ // ファイルを移動
+ $result = rename($uploadedFile['tmp_name'], __DIR__."/".$uploadedPath);
+
+ if ($result) {
+ $save_photo1 = $uploadedPath; // 保存されたファイルのパスを使用
+ } else {
+ $beforeUploadError = check_upload_error($uploadedFile, __DIR__."/../ueuseimages/") ?? "ERROR";
+ $error_message[] = 'アップロード失敗!(1)エラーコード:' .$beforeUploadError.'';
+ }
}
+ if(isset($s3result)){
+ if($s3result == false){
+ $error_message[] = 'アップロード失敗!(1)エラーコード: S3ERROR';
+ }else{
+ $save_photo1 = $s3result; // S3に保存されたファイルのパスを使用
+ }
+ }
+ }else{
+ $error_message[] = "使用できない画像形式です。(SORRY_FILE_HITAIOU)";
}
}else{
- $error_message[] = "使用できない画像形式です。(SORRY_FILE_HITAIOU)";
+ $error_message[] = "ファイルがアップロードできませんでした。(FILE_UPLOAD_DEKINAKATTA)";
}
}else{
- $error_message[] = "ファイルがアップロードできませんでした。(FILE_UPLOAD_DEKINAKATTA)";
+ $error_message[] = 'アップロード失敗!(1)エラーコード:' .$beforeUploadError.'';
}
}
@@ -1511,54 +1558,51 @@ function send_ueuse($userid,$rpUniqid,$ruUniqid,$ueuse,$photo1,$photo2,$photo3,$
}
// アップロードされたファイル情報
$uploadedFile2 = $photo2;
-
- if(!(empty($uploadedFile2['tmp_name']))){
- if(check_mime($uploadedFile2['tmp_name'])){
- // アップロードされたファイルの拡張子を取得
- $extension2 = convert_mime(check_mime($uploadedFile2['tmp_name']));
- delete_exif($extension2, $uploadedFile2['tmp_name']);
- resizeImage($uploadedFile2['tmp_name'], 8192, 8192);
- if($aibwm === true){
- AIBlockWaterMark($uploadedFile2['tmp_name'], $userid);
- }
- if(AMS3_CHKS == "true"){
- $s3result = uploadAmazonS3($uploadedFile2['tmp_name']);
- }else{
- if(check_mime($uploadedFile2['tmp_name']) == "image/webp"){
- $extension2 = 'webp';
+ $beforeUploadError = check_upload_error($uploadedFile2, __DIR__."/../ueuseimages/");
+ if($beforeUploadError === null){
+ if(!(empty($uploadedFile2['tmp_name']))){
+ if(check_mime($uploadedFile2['tmp_name'])){
+ // アップロードされたファイルの拡張子を取得
+ $extension2 = convert_mime(check_mime($uploadedFile2['tmp_name']));
+ delete_exif($extension2, $uploadedFile2['tmp_name']);
+ resizeImage($uploadedFile2['tmp_name'], 8192, 8192);
+ if($aibwm === true){
+ AIBlockWaterMark($uploadedFile2['tmp_name'], $userid);
}
- // 新しいファイル名を生成(uniqid + 拡張子)
- $newFilename2 = createUniqId() . '-'.$userid.'.' . $extension2;
- // 保存先のパスを生成
- $uploadedPath2 = '../ueuseimages/' . $newFilename2;
- // ファイルを移動
- $result2 = move_uploaded_file($uploadedFile2['tmp_name'], __DIR__."/".$uploadedPath2);
- if ($result2) {
- $save_photo2 = $uploadedPath2; // 保存されたファイルのパスを使用
- } else {
- $errnum = $uploadedFile2['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[] = 'アップロード失敗!(2)エラーコード:' .$errcode.'';
- }
- }
- if(isset($s3result)){
- if($s3result == false){
- $error_message[] = 'アップロード失敗!(2)エラーコード: S3ERROR';
+ if(AMS3_CHKS == "true"){
+ $s3result = uploadAmazonS3($uploadedFile2['tmp_name']);
}else{
- $save_photo2 = $s3result; // S3に保存されたファイルのパスを使用
+ if(check_mime($uploadedFile2['tmp_name']) == "image/webp"){
+ $extension2 = 'webp';
+ }
+ // 新しいファイル名を生成(uniqid + 拡張子)
+ $newFilename2 = createUniqId() . '-'.$userid.'.' . $extension2;
+ // 保存先のパスを生成
+ $uploadedPath2 = '../ueuseimages/' . $newFilename2;
+ // ファイルを移動
+ $result2 = rename($uploadedFile2['tmp_name'], __DIR__."/".$uploadedPath2);
+ if ($result2) {
+ $save_photo2 = $uploadedPath2; // 保存されたファイルのパスを使用
+ } else {
+ $beforeUploadError = check_upload_error($uploadedFile2, __DIR__."/../ueuseimages/") ?? "ERROR";
+ $error_message[] = 'アップロード失敗!(2)エラーコード:' .$beforeUploadError.'';
+ }
}
+ if(isset($s3result)){
+ if($s3result == false){
+ $error_message[] = 'アップロード失敗!(2)エラーコード: S3ERROR';
+ }else{
+ $save_photo2 = $s3result; // S3に保存されたファイルのパスを使用
+ }
+ }
+ }else{
+ $error_message[] = "使用できない画像形式です。(SORRY_FILE_HITAIOU)";
}
}else{
- $error_message[] = "使用できない画像形式です。(SORRY_FILE_HITAIOU)";
+ $error_message[] = "ファイルがアップロードできませんでした。(FILE_UPLOAD_DEKINAKATTA)";
}
}else{
- $error_message[] = "ファイルがアップロードできませんでした。(FILE_UPLOAD_DEKINAKATTA)";
+ $error_message[] = 'アップロード失敗!(2)エラーコード:' .$beforeUploadError.'';
}
}
@@ -1570,54 +1614,51 @@ function send_ueuse($userid,$rpUniqid,$ruUniqid,$ueuse,$photo1,$photo2,$photo3,$
}
// アップロードされたファイル情報
$uploadedFile3 = $photo3;
-
- if(!(empty($uploadedFile3['tmp_name']))){
- if(check_mime($uploadedFile3['tmp_name'])){
- // アップロードされたファイルの拡張子を取得
- $extension3 = convert_mime(check_mime($uploadedFile3['tmp_name']));
- delete_exif($extension3, $uploadedFile3['tmp_name']);
- resizeImage($uploadedFile3['tmp_name'], 8192, 8192);
- if($aibwm === true){
- AIBlockWaterMark($uploadedFile3['tmp_name'], $userid);
- }
- if(AMS3_CHKS == "true"){
- $s3result = uploadAmazonS3($uploadedFile3['tmp_name']);
- }else{
- if(check_mime($uploadedFile3['tmp_name']) == "image/webp"){
- $extension3 = 'webp';
+ $beforeUploadError = check_upload_error($uploadedFile3, __DIR__."/../ueuseimages/");
+ if($beforeUploadError === null){
+ if(!(empty($uploadedFile3['tmp_name']))){
+ if(check_mime($uploadedFile3['tmp_name'])){
+ // アップロードされたファイルの拡張子を取得
+ $extension3 = convert_mime(check_mime($uploadedFile3['tmp_name']));
+ delete_exif($extension3, $uploadedFile3['tmp_name']);
+ resizeImage($uploadedFile3['tmp_name'], 8192, 8192);
+ if($aibwm === true){
+ AIBlockWaterMark($uploadedFile3['tmp_name'], $userid);
}
- // 新しいファイル名を生成(uniqid + 拡張子)
- $newFilename3 = createUniqId() . '-'.$userid.'.' . $extension3;
- // 保存先のパスを生成
- $uploadedPath3 = '../ueuseimages/' . $newFilename3;
- // ファイルを移動
- $result3 = move_uploaded_file($uploadedFile3['tmp_name'], __DIR__."/".$uploadedPath3);
- if ($result3) {
- $save_photo3 = $uploadedPath3; // 保存されたファイルのパスを使用
- } else {
- $errnum = $uploadedFile3['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[] = 'アップロード失敗!(3)エラーコード:' .$errcode.'';
- }
- }
- if(isset($s3result)){
- if($s3result == false){
- $error_message[] = 'アップロード失敗!(3)エラーコード: S3ERROR';
+ if(AMS3_CHKS == "true"){
+ $s3result = uploadAmazonS3($uploadedFile3['tmp_name']);
}else{
- $save_photo3 = $s3result; // S3に保存されたファイルのパスを使用
+ if(check_mime($uploadedFile3['tmp_name']) == "image/webp"){
+ $extension3 = 'webp';
+ }
+ // 新しいファイル名を生成(uniqid + 拡張子)
+ $newFilename3 = createUniqId() . '-'.$userid.'.' . $extension3;
+ // 保存先のパスを生成
+ $uploadedPath3 = '../ueuseimages/' . $newFilename3;
+ // ファイルを移動
+ $result3 = rename($uploadedFile3['tmp_name'], __DIR__."/".$uploadedPath3);
+ if ($result3) {
+ $save_photo3 = $uploadedPath3; // 保存されたファイルのパスを使用
+ } else {
+ $beforeUploadError = check_upload_error($uploadedFile3, __DIR__."/../ueuseimages/") ?? "ERROR";
+ $error_message[] = 'アップロード失敗!(3)エラーコード:' .$beforeUploadError.'';
+ }
}
+ if(isset($s3result)){
+ if($s3result == false){
+ $error_message[] = 'アップロード失敗!(3)エラーコード: S3ERROR';
+ }else{
+ $save_photo3 = $s3result; // S3に保存されたファイルのパスを使用
+ }
+ }
+ }else{
+ $error_message[] = "使用できない画像形式です。(SORRY_FILE_HITAIOU)";
}
}else{
- $error_message[] = "使用できない画像形式です。(SORRY_FILE_HITAIOU)";
+ $error_message[] = "ファイルがアップロードできませんでした。(FILE_UPLOAD_DEKINAKATTA)";
}
}else{
- $error_message[] = "ファイルがアップロードできませんでした。(FILE_UPLOAD_DEKINAKATTA)";
+ $error_message[] = 'アップロード失敗!(3)エラーコード:' .$beforeUploadError.'';
}
}
@@ -1629,53 +1670,51 @@ function send_ueuse($userid,$rpUniqid,$ruUniqid,$ueuse,$photo1,$photo2,$photo3,$
}
// アップロードされたファイル情報
$uploadedFile4 = $photo4;
- if(!(empty($uploadedFile4['tmp_name']))){
- if(check_mime($uploadedFile4['tmp_name'])){
- // アップロードされたファイルの拡張子を取得
- $extension4 = convert_mime(check_mime($uploadedFile4['tmp_name']));
- delete_exif($extension4, $uploadedFile4['tmp_name']);
- resizeImage($uploadedFile4['tmp_name'], 8192, 8192);
- if($aibwm === true){
- AIBlockWaterMark($uploadedFile4['tmp_name'], $userid);
- }
- if(AMS3_CHKS == "true"){
- $s3result = uploadAmazonS3($uploadedFile4['tmp_name']);
- }else{
- if(check_mime($uploadedFile4['tmp_name']) == "image/webp"){
- $extension4 = 'webp';
+ $beforeUploadError = check_upload_error($uploadedFile4, __DIR__."/../ueuseimages/");
+ if($beforeUploadError === null){
+ if(!(empty($uploadedFile4['tmp_name']))){
+ if(check_mime($uploadedFile4['tmp_name'])){
+ // アップロードされたファイルの拡張子を取得
+ $extension4 = convert_mime(check_mime($uploadedFile4['tmp_name']));
+ delete_exif($extension4, $uploadedFile4['tmp_name']);
+ resizeImage($uploadedFile4['tmp_name'], 8192, 8192);
+ if($aibwm === true){
+ AIBlockWaterMark($uploadedFile4['tmp_name'], $userid);
}
- // 新しいファイル名を生成(uniqid + 拡張子)
- $newFilename4 = createUniqId() . '-'.$userid.'.' . $extension4;
- // 保存先のパスを生成
- $uploadedPath4 = '../ueuseimages/' . $newFilename4;
- // ファイルを移動
- $result4 = move_uploaded_file($uploadedFile4['tmp_name'], __DIR__."/".$uploadedPath4);
- if ($result4) {
- $save_photo4 = $uploadedPath4; // 保存されたファイルのパスを使用
- } else {
- $errnum = $uploadedFile4['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[] = 'アップロード失敗!(4)エラーコード:' .$errcode.'';
- }
- }
- if(isset($s3result)){
- if($s3result == false){
- $error_message[] = 'アップロード失敗!(1)エラーコード: S3ERROR';
+ if(AMS3_CHKS == "true"){
+ $s3result = uploadAmazonS3($uploadedFile4['tmp_name']);
}else{
- $save_photo4 = $s3result; // S3に保存されたファイルのパスを使用
+ if(check_mime($uploadedFile4['tmp_name']) == "image/webp"){
+ $extension4 = 'webp';
+ }
+ // 新しいファイル名を生成(uniqid + 拡張子)
+ $newFilename4 = createUniqId() . '-'.$userid.'.' . $extension4;
+ // 保存先のパスを生成
+ $uploadedPath4 = '../ueuseimages/' . $newFilename4;
+ // ファイルを移動
+ $result4 = rename($uploadedFile4['tmp_name'], __DIR__."/".$uploadedPath4);
+ if ($result4) {
+ $save_photo4 = $uploadedPath4; // 保存されたファイルのパスを使用
+ } else {
+ $beforeUploadError = check_upload_error($uploadedFile4, __DIR__."/../ueuseimages/") ?? "ERROR";
+ $error_message[] = 'アップロード失敗!(3)エラーコード:' .$beforeUploadError.'';
+ }
}
+ if(isset($s3result)){
+ if($s3result == false){
+ $error_message[] = 'アップロード失敗!(4)エラーコード: S3ERROR';
+ }else{
+ $save_photo4 = $s3result; // S3に保存されたファイルのパスを使用
+ }
+ }
+ }else{
+ $error_message[] = "使用できない画像形式です。(SORRY_FILE_HITAIOU)";
}
}else{
- $error_message[] = "使用できない画像形式です。(SORRY_FILE_HITAIOU)";
+ $error_message[] = "ファイルがアップロードできませんでした。(FILE_UPLOAD_DEKINAKATTA)";
}
}else{
- $error_message[] = "ファイルがアップロードできませんでした。(FILE_UPLOAD_DEKINAKATTA)";
+ $error_message[] = 'アップロード失敗!(4)エラーコード:' .$beforeUploadError.'';
}
}
@@ -1684,46 +1723,43 @@ function send_ueuse($userid,$rpUniqid,$ruUniqid,$ueuse,$photo1,$photo2,$photo3,$
} else {
// アップロードされたファイル情報
$uploadedVideo = $video1;
-
- if(!(empty($uploadedVideo['tmp_name']))){
- if(check_mime_video($uploadedVideo['tmp_name'])){
- if(AMS3_CHKS == "true"){
- $s3result = uploadAmazonS3($uploadedVideo['tmp_name']);
- }else{
- // アップロードされたファイルの拡張子を取得
- $extensionVideo = convert_mime(check_mime_video($uploadedVideo['tmp_name']));
- // 正しい拡張子の場合、新しいファイル名を生成
- $newFilenameVideo = createUniqId() . '-'.$userid.'.' . $extensionVideo;
- // 保存先のパスを生成
- $uploadedPathVideo = '../ueusevideos/' . $newFilenameVideo;
- // ファイルを移動
- $resultVideo = move_uploaded_file($uploadedVideo['tmp_name'], __DIR__."/".$uploadedPathVideo);
- if ($resultVideo) {
- $save_video1 = $uploadedPathVideo; // 保存されたファイルのパスを使用
- } else {
- $errnum = $uploadedVideo['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[] = 'アップロード失敗!(5)エラーコード:' .$errcode.'';
- }
- }
- if(isset($s3result)){
- if($s3result == false){
- $error_message[] = 'アップロード失敗!(5)エラーコード: S3ERROR';
+ $beforeUploadError = check_upload_error($uploadedVideo, __DIR__.'/../ueusevideos/');
+ if($beforeUploadError === null){
+ if(!(empty($uploadedVideo['tmp_name']))){
+ if(check_mime_video($uploadedVideo['tmp_name'])){
+ if(AMS3_CHKS == "true"){
+ $s3result = uploadAmazonS3($uploadedVideo['tmp_name']);
}else{
- $save_video1 = $s3result; // S3に保存されたファイルのパスを使用
+ // アップロードされたファイルの拡張子を取得
+ $extensionVideo = convert_mime(check_mime_video($uploadedVideo['tmp_name']));
+ // 正しい拡張子の場合、新しいファイル名を生成
+ $newFilenameVideo = createUniqId() . '-'.$userid.'.' . $extensionVideo;
+ // 保存先のパスを生成
+ $uploadedPathVideo = '../ueusevideos/' . $newFilenameVideo;
+ // ファイルを移動
+ $resultVideo = rename($uploadedVideo['tmp_name'], __DIR__."/".$uploadedPathVideo);
+ if ($resultVideo) {
+ $save_video1 = $uploadedPathVideo; // 保存されたファイルのパスを使用
+ } else {
+ $beforeUploadError = check_upload_error($uploadedVideo, __DIR__."/../ueusevideos/") ?? "ERROR";
+ $error_message[] = 'アップロード失敗!(3)エラーコード:' .$beforeUploadError.'';
+ }
}
+ if(isset($s3result)){
+ if($s3result == false){
+ $error_message[] = 'アップロード失敗!(5)エラーコード: S3ERROR';
+ }else{
+ $save_video1 = $s3result; // S3に保存されたファイルのパスを使用
+ }
+ }
+ } else {
+ $error_message[] = '対応していないファイル形式です!(SORRY_FILE_HITAIOU)';
}
- } else {
- $error_message[] = '対応していないファイル形式です!(SORRY_FILE_HITAIOU)';
+ }else{
+ $error_message[] = "ファイルがアップロードできませんでした。(FILE_UPLOAD_DEKINAKATTA)";
}
}else{
- $error_message[] = "ファイルがアップロードできませんでした。(FILE_UPLOAD_DEKINAKATTA)";
+ $error_message[] = 'アップロード失敗!(5)エラーコード:' .$beforeUploadError.'';
}
}
@@ -3716,53 +3752,73 @@ function GetActivityPubJson($url) {
}
function GetActivityPubUser($userid, $domain) {
- $webfingerUrl = "https://$domain/.well-known/webfinger?resource=acct:$userid@$domain";
+ if (is_not_private_url("https://".$domain."/")) {
+ $webfingerUrl = "https://$domain/.well-known/webfinger?resource=acct:$userid@$domain";
- $webfingerJson = GetActivityPubJson($webfingerUrl);
+ $webfingerJson = GetActivityPubJson($webfingerUrl);
- if (!$webfingerJson || empty($webfingerJson['links'])) {
- return ['error' => 'Failed to fetch WebFinger'];
- }
-
- $actorUrl = null;
- foreach ($webfingerJson['links'] as $link) {
- if ($link['rel'] === 'self' && $link['type'] === 'application/activity+json') {
- $actorUrl = $link['href'];
- break;
+ if (!$webfingerJson || empty($webfingerJson['links'])) {
+ return ['error' => 'Failed to fetch WebFinger'];
}
+
+ $actorUrl = null;
+ foreach ($webfingerJson['links'] as $link) {
+ if ($link['rel'] === 'self' && $link['type'] === 'application/activity+json') {
+ $actorUrl = $link['href'];
+ break;
+ }
+ }
+
+ if (!$actorUrl) {
+ return ['error' => 'Actor URL not found'];
+ }
+
+ $actorJson = GetActivityPubJson($actorUrl);
+ if (!$actorJson) {
+ return ['error' => 'Failed to fetch actor'];
+ }
+
+ $summaryHtml = $actorJson['summary'] ?? '';
+ $withNewlines = preg_replace('/
/i', "\n", $summaryHtml);
+ $plainText = strip_tags($withNewlines);
+
+
+ return [
+ 'userid' => $actorJson['preferredUsername'] ?? null,
+ 'username' => $actorJson['name'] ?? null,
+ 'profile' => $plainText ?? null,
+ 'id' => $actorJson['id'] ?? null,
+ 'inbox' => $actorJson['inbox'] ?? null,
+ 'outbox' => $actorJson['outbox'] ?? null,
+ 'followers' => $actorJson['followers'] ?? null,
+ 'iconname' => $actorJson['icon']['url'] ?? "../img/deficon/icon.png",
+ 'headname' => $actorJson['image']['url'] ?? "../img/defhead/head.png",
+ 'datetime' => $actorJson['published'] ?? null,
+ 'role' => 'user',
+ 'other_settings' => '{}',
+ 'follow' => '',
+ 'follower' => '',
+ 'raw' => $actorJson
+ ];
+ }else{
+ return [
+ 'userid' => null,
+ 'username' => null,
+ 'profile' => null,
+ 'id' => null,
+ 'inbox' => null,
+ 'outbox' => null,
+ 'followers' => null,
+ 'iconname' => "../img/deficon/icon.png",
+ 'headname' => "../img/defhead/head.png",
+ 'datetime' => null,
+ 'role' => 'user',
+ 'other_settings' => '{}',
+ 'follow' => '',
+ 'follower' => '',
+ 'raw' => ''
+ ];
}
-
- if (!$actorUrl) {
- return ['error' => 'Actor URL not found'];
- }
-
- $actorJson = GetActivityPubJson($actorUrl);
- if (!$actorJson) {
- return ['error' => 'Failed to fetch actor'];
- }
-
- $summaryHtml = $actorJson['summary'] ?? '';
- $withNewlines = preg_replace('/
/i', "\n", $summaryHtml);
- $plainText = strip_tags($withNewlines);
-
-
- return [
- 'userid' => $actorJson['preferredUsername'] ?? null,
- 'username' => $actorJson['name'] ?? null,
- 'profile' => $plainText ?? null,
- 'id' => $actorJson['id'] ?? null,
- 'inbox' => $actorJson['inbox'] ?? null,
- 'outbox' => $actorJson['outbox'] ?? null,
- 'followers' => $actorJson['followers'] ?? null,
- 'iconname' => $actorJson['icon']['url'] ?? "../img/deficon/icon.png",
- 'headname' => $actorJson['image']['url'] ?? "../img/defhead/head.png",
- 'datetime' => $actorJson['published'] ?? null,
- 'role' => 'user',
- 'other_settings' => '{}',
- 'follow' => '',
- 'follower' => '',
- 'raw' => $actorJson
- ];
}
function FormatUeuseItem(array $value, string $myblocklist, string $mybookmark, $pdo, string $userId): ?array {
@@ -4219,5 +4275,15 @@ function sqlBlockAccountList($column, $myblocklist){
];
}
+function is_not_private_url($url) {
+ $parts = parse_url($url);
+ if (!isset($parts['host'])) return false;
+
+ $ip = gethostbyname($parts['host']);
+ if (filter_var($ip, FILTER_VALIDATE_IP, FILTER_FLAG_NO_PRIV_RANGE | FILTER_FLAG_NO_RES_RANGE) === false) {
+ return false;
+ }
+ return true;
+}
?>
\ No newline at end of file
diff --git a/function/get_customemoji.php b/function/get_customemoji.php
index 170da1c..d7b5ef5 100644
--- a/function/get_customemoji.php
+++ b/function/get_customemoji.php
@@ -15,60 +15,63 @@ if (safetext(isset($_POST['emoji'])) && safetext(isset($_POST['userid'])) && saf
if ($is_login === false) {
echo json_encode(['success' => false, 'error' => '認証に失敗しました。(AUTH_INVALID)']);
exit;
- }
-
- // データベースに接続
- try {
- $option = array(
- PDO::ATTR_ERRMODE => PDO::ERRMODE_EXCEPTION,
- PDO::MYSQL_ATTR_MULTI_STATEMENTS => false
- );
- $pdo = new PDO('mysql:charset=utf8mb4;dbname=' . DB_NAME . ';host=' . DB_HOST, DB_USER, DB_PASS, $option);
- } catch (PDOException $e) {
- // 接続エラーのときエラー内容を取得する
- $error_message[] = $e->getMessage();
- }
-
- if (!empty($pdo)) {
- // カンマ区切りまたは1つのユーザーID文字列を処理
- $emojis = array_unique(array_filter(explode(',', $emoji)));
-
- $results = [];
-
- if (count($emojis) > 0) {
- // プレースホルダを作成
- $placeholders = implode(',', array_fill(0, count($emojis), '?'));
- $stmt = $pdo->prepare("SELECT emojifile, emojiname FROM emoji WHERE emojiname IN ($placeholders)");
- $stmt->execute($emojis);
-
- $fetched = [];
- while ($row = $stmt->fetch(PDO::FETCH_ASSOC)) {
- $fetched[$row['emojiname']] = [
- 'emojipath' => filter_var($row["emojifile"], FILTER_VALIDATE_URL) ? $row["emojifile"] : "../" . $row["emojifile"],
- 'emojiname' => $row['emojiname']
- ];
- }
-
- foreach ($emojis as $name) {
- if (isset($fetched[$name])) {
- $results[$name] = $fetched[$name];
- } else {
- $results[$name] = null;
- }
- }
+ }elseif(is_sameUserid($userid, $is_login["userid"]) === true){
+ // データベースに接続
+ try {
+ $option = array(
+ PDO::ATTR_ERRMODE => PDO::ERRMODE_EXCEPTION,
+ PDO::MYSQL_ATTR_MULTI_STATEMENTS => false
+ );
+ $pdo = new PDO('mysql:charset=utf8mb4;dbname=' . DB_NAME . ';host=' . DB_HOST, DB_USER, DB_PASS, $option);
+ } catch (PDOException $e) {
+ // 接続エラーのときエラー内容を取得する
+ $error_message[] = $e->getMessage();
}
- echo json_encode([
- "success" => true,
- "emojis" => $results
- ], JSON_UNESCAPED_UNICODE);
- } else {
- $item = array(
- "success" => false,
- "emojipath" => null,
- "emojiname" => null,
- );
- echo json_encode($item, JSON_UNESCAPED_UNICODE);
+ if (!empty($pdo)) {
+ // カンマ区切りまたは1つのユーザーID文字列を処理
+ $emojis = array_unique(array_filter(explode(',', $emoji)));
+
+ $results = [];
+
+ if (count($emojis) > 0) {
+ // プレースホルダを作成
+ $placeholders = implode(',', array_fill(0, count($emojis), '?'));
+ $stmt = $pdo->prepare("SELECT emojifile, emojiname FROM emoji WHERE emojiname IN ($placeholders)");
+ $stmt->execute($emojis);
+
+ $fetched = [];
+ while ($row = $stmt->fetch(PDO::FETCH_ASSOC)) {
+ $fetched[$row['emojiname']] = [
+ 'emojipath' => filter_var($row["emojifile"], FILTER_VALIDATE_URL) ? $row["emojifile"] : "../" . $row["emojifile"],
+ 'emojiname' => $row['emojiname']
+ ];
+ }
+
+ foreach ($emojis as $name) {
+ if (isset($fetched[$name])) {
+ $results[$name] = $fetched[$name];
+ } else {
+ $results[$name] = null;
+ }
+ }
+ }
+
+ echo json_encode([
+ "success" => true,
+ "emojis" => $results
+ ], JSON_UNESCAPED_UNICODE);
+ } else {
+ $item = array(
+ "success" => false,
+ "emojipath" => null,
+ "emojiname" => null,
+ );
+ echo json_encode($item, JSON_UNESCAPED_UNICODE);
+ }
+ }else{
+ echo json_encode(['success' => false, 'error' => '認証に失敗しました。(AUTH_INVALID)']);
+ exit;
}
}else{
$item = array(
diff --git a/function/get_userid.php b/function/get_userid.php
index a468a92..c264116 100644
--- a/function/get_userid.php
+++ b/function/get_userid.php
@@ -15,55 +15,58 @@ if (safetext(isset($_POST['get_account'])) && safetext(isset($_POST['userid']))
if ($is_login === false) {
echo json_encode(['success' => false, 'error' => '認証に失敗しました。(AUTH_INVALID)']);
exit;
- }
-
- // データベースに接続
- try {
- $option = array(
- PDO::ATTR_ERRMODE => PDO::ERRMODE_EXCEPTION,
- PDO::MYSQL_ATTR_MULTI_STATEMENTS => false
- );
- $pdo = new PDO('mysql:charset=utf8mb4;dbname=' . DB_NAME . ';host=' . DB_HOST, DB_USER, DB_PASS, $option);
- } catch (PDOException $e) {
- // 接続エラーのときエラー内容を取得する
- $error_message[] = $e->getMessage();
- }
-
- if (!empty($pdo)) {
- // カンマ区切りまたは1つのユーザーID文字列を処理
- $usernames = array_unique(array_filter(explode(',', $get_account)));
- $lower_usernames = array_map('mb_strtolower', $usernames);
-
- $results = [];
-
- if (count($lower_usernames) > 0) {
- $placeholders = implode(',', array_fill(0, count($lower_usernames), '?'));
- $stmt = $pdo->prepare("SELECT userid, username FROM account WHERE LOWER(userid) IN ($placeholders)");
- $stmt->execute($lower_usernames);
-
- $fetched = [];
- while ($row = $stmt->fetch(PDO::FETCH_ASSOC)) {
- $fetched[mb_strtolower($row['userid'])] = [
- 'userid' => $row['userid'],
- 'username' => $row['username']
- ];
- }
-
- foreach ($usernames as $name) {
- $lower = mb_strtolower($name);
- $results[$name] = $fetched[$lower] ?? null;
- }
+ }elseif(is_sameUserid($userId, $is_login["userid"]) === true){
+ // データベースに接続
+ try {
+ $option = array(
+ PDO::ATTR_ERRMODE => PDO::ERRMODE_EXCEPTION,
+ PDO::MYSQL_ATTR_MULTI_STATEMENTS => false
+ );
+ $pdo = new PDO('mysql:charset=utf8mb4;dbname=' . DB_NAME . ';host=' . DB_HOST, DB_USER, DB_PASS, $option);
+ } catch (PDOException $e) {
+ // 接続エラーのときエラー内容を取得する
+ $error_message[] = $e->getMessage();
}
-
- echo json_encode([
- "success" => true,
- "users" => $results
- ], JSON_UNESCAPED_UNICODE);
- } else {
- echo json_encode([
- "success" => false,
- "users" => null
- ], JSON_UNESCAPED_UNICODE);
+
+ if (!empty($pdo)) {
+ // カンマ区切りまたは1つのユーザーID文字列を処理
+ $usernames = array_unique(array_filter(explode(',', $get_account)));
+ $lower_usernames = array_map('mb_strtolower', $usernames);
+
+ $results = [];
+
+ if (count($lower_usernames) > 0) {
+ $placeholders = implode(',', array_fill(0, count($lower_usernames), '?'));
+ $stmt = $pdo->prepare("SELECT userid, username FROM account WHERE LOWER(userid) IN ($placeholders)");
+ $stmt->execute($lower_usernames);
+
+ $fetched = [];
+ while ($row = $stmt->fetch(PDO::FETCH_ASSOC)) {
+ $fetched[mb_strtolower($row['userid'])] = [
+ 'userid' => $row['userid'],
+ 'username' => $row['username']
+ ];
+ }
+
+ foreach ($usernames as $name) {
+ $lower = mb_strtolower($name);
+ $results[$name] = $fetched[$lower] ?? null;
+ }
+ }
+
+ echo json_encode([
+ "success" => true,
+ "users" => $results
+ ], JSON_UNESCAPED_UNICODE);
+ } else {
+ echo json_encode([
+ "success" => false,
+ "users" => null
+ ], JSON_UNESCAPED_UNICODE);
+ }
+ }else{
+ echo json_encode(['success' => false, 'error' => '認証に失敗しました。(AUTH_INVALID)']);
+ exit;
}
}else{
$item = array(
diff --git a/function/reuse.php b/function/reuse.php
index d78611b..0fd39aa 100644
--- a/function/reuse.php
+++ b/function/reuse.php
@@ -27,54 +27,57 @@ if (safetext(isset($_POST['uniqid'])) && safetext(isset($_POST['reusetext'])) &&
if ($is_login === false) {
echo json_encode(['success' => false, 'error' => '認証に失敗しました。(AUTH_INVALID)']);
exit;
- }
+ }elseif(is_sameUserid($userid, $is_login["userid"]) === true){
+ $reusedate = date("Y-m-d H:i:s");
- $reusedate = date("Y-m-d H:i:s");
+ //ユーズの情報を取得
+ $query = $pdo->prepare('SELECT * FROM ueuse WHERE uniqid = :uniqid limit 1');
+ $query->execute(array(':uniqid' => $postUniqid));
+ $result = $query->fetch();
- //ユーズの情報を取得
- $query = $pdo->prepare('SELECT * FROM ueuse WHERE uniqid = :uniqid limit 1');
- $query->execute(array(':uniqid' => $postUniqid));
- $result = $query->fetch();
+ //ユーザーの認証情報を取得
+ $query = $pdo->prepare('SELECT * FROM account WHERE userid = :userid limit 1');
+ $query->execute(array(':userid' => $userid));
+ $result2 = $query->fetch();
+ if($result2["loginid"] === $loginid){
+ if(!($result2["role"] == "ice")){
+ $nsfw_chk = "false";
+
+ $photo1 = "";
+ $photo2 = "";
+ $photo3 = "";
+ $photo4 = "";
+ $video1 = "";
+
+ $rpUniqid = "";
- //ユーザーの認証情報を取得
- $query = $pdo->prepare('SELECT * FROM account WHERE userid = :userid limit 1');
- $query->execute(array(':userid' => $userid));
- $result2 = $query->fetch();
- if($result2["loginid"] === $loginid){
- if(!($result2["role"] == "ice")){
- $nsfw_chk = "false";
-
- $photo1 = "";
- $photo2 = "";
- $photo3 = "";
- $photo4 = "";
- $video1 = "";
-
- $rpUniqid = "";
+ $AIBWM = false;
+ if(!(empty($result["ueuse"]))){
+ $ruUniqid = $postUniqid;
+ }else{
+ $ruUniqid = $result["ruuniqid"];
+ }
+ $ueuse_result = send_ueuse($userid,$rpUniqid,$ruUniqid,$reusetext,$photo1,$photo2,$photo3,$photo4,$video1,$nsfw_chk,$AIBWM);
- $AIBWM = false;
- if(!(empty($result["ueuse"]))){
- $ruUniqid = $postUniqid;
+ if($ueuse_result[0] == true){
+ echo json_encode(['success' => true]);
+ exit;
+ }else{
+ echo json_encode(['success' => false, 'error' => $ueuse_result[1]]);
+ exit;
+ }
}else{
- $ruUniqid = $result["ruuniqid"];
- }
- $ueuse_result = send_ueuse($userid,$rpUniqid,$ruUniqid,$reusetext,$photo1,$photo2,$photo3,$photo4,$video1,$nsfw_chk,$AIBWM);
-
- if($ueuse_result[0] == true){
- echo json_encode(['success' => true]);
- exit;
- }else{
- echo json_encode(['success' => false, 'error' => $ueuse_result[1]]);
- exit;
+ echo json_encode(['success' => false, 'error' => 'お使いのアカウントではリユーズができません。']);
+ exit;
}
}else{
- echo json_encode(['success' => false, 'error' => 'お使いのアカウントではリユーズができません。']);
- exit;
+ echo json_encode(['success' => false, 'error' => 'リユーズに失敗しました。']);
+ exit;
}
}else{
- echo json_encode(['success' => false, 'error' => 'リユーズに失敗しました。']);
+ echo json_encode(['success' => false, 'error' => '認証に失敗しました。(AUTH_INVALID)']);
exit;
- }
+ }
} else {
echo json_encode(['success' => false, 'error' => '必要なパラメータが提供されていません。']);
exit;
diff --git a/function/settings.php b/function/settings.php
index 3f1ce9a..c07ed35 100644
--- a/function/settings.php
+++ b/function/settings.php
@@ -38,192 +38,193 @@ if (safetext(isset($_POST['userid'])) && safetext(isset($_POST['account_id'])) &
if ($is_login === false) {
echo json_encode(['success' => false, 'error' => '認証に失敗しました。(AUTH_INVALID)']);
exit;
- }
+ }elseif(is_sameUserid($userid, $is_login["userid"]) === true){
+ $userid = $is_login["userid"];
+
+ $settings_type = safetext($_POST['settings_type']);
- $settings_type = safetext($_POST['settings_type']);
+ if($settings_type == "icon"){
+ if(isset($_FILES["data"])){
+ if (!(empty($_FILES['data']['name']))) {
+ $uploadedFile = $_FILES['data'];
+ $beforeUploadError = check_upload_error($uploadedFile, __DIR__.'/../usericons/');
+ if($beforeUploadError === null){
+ if(check_mime($uploadedFile['tmp_name'])){
+ $extension = convert_mime(check_mime($uploadedFile['tmp_name']));
+ delete_exif($extension, $uploadedFile['tmp_name']);
+ resizeImage($uploadedFile['tmp_name'], 512, 512);
- if($settings_type == "icon"){
- if(isset($_FILES["data"])){
- if (!(empty($_FILES['data']['name']))) {
- $uploadedFile = $_FILES['data'];
- if(check_mime($uploadedFile['tmp_name'])){
- $extension = convert_mime(check_mime($uploadedFile['tmp_name']));
- delete_exif($extension, $uploadedFile['tmp_name']);
- resizeImage($uploadedFile['tmp_name'], 512, 512);
-
- if(AMS3_CHKS == "true"){
- $usericonurl = getUserData($pdo, $userid)["iconname"];
- if(filter_var($usericonurl, FILTER_VALIDATE_URL)){
- $s3delresult = deleteAmazonS3($usericonurl);
+ if(AMS3_CHKS == "true"){
+ $usericonurl = getUserData($pdo, $userid)["iconname"];
+ if(filter_var($usericonurl, FILTER_VALIDATE_URL)){
+ $s3delresult = deleteAmazonS3($usericonurl);
+ }else{
+ $s3delresult = true;
+ }
+ if($s3delresult == true){
+ $s3result = uploadAmazonS3($uploadedFile['tmp_name']);
+ }else{
+ $s3result = false;
+ }
+ }else{
+ if(check_mime($uploadedFile['tmp_name']) == "image/webp"){
+ $newFilename = createUniqId() . '-'.$userid.'.webp';
+ }else{
+ $newFilename = createUniqId() . '-'.$userid.'.' . $extension;
+ }
+ $uploadedPath = 'usericons/' . $newFilename;
+ $result = move_uploaded_file($uploadedFile['tmp_name'], '../'.$uploadedPath);
+
+ if ($result) {
+ $iconName = $uploadedPath; // 保存されたファイルのパスを使用
+ } else {
+ $beforeUploadError = check_upload_error($uploadedFile, __DIR__.'/../usericons/') ?? "ERROR";
+ $error_message[] = 'アップロード失敗!(1)エラーコード:' .$beforeUploadError.'';
+ }
+ }
+ if(isset($s3result)){
+ if($s3result == false){
+ $error_message[] = 'アップロード失敗!(1)エラーコード: S3ERROR';
+ }else{
+ $iconName = $s3result; // S3に保存されたファイルのパスを使用
+ }
+ }
}else{
- $s3delresult = true;
- }
- if($s3delresult == true){
- $s3result = uploadAmazonS3($uploadedFile['tmp_name']);
- }else{
- $s3result = false;
+ $error_message[] = "使用できない画像形式です。(FILE_UPLOAD_DEKINAKATTA)";
}
}else{
- if(check_mime($uploadedFile['tmp_name']) == "image/webp"){
- $newFilename = createUniqId() . '-'.$userid.'.webp';
- }else{
- $newFilename = createUniqId() . '-'.$userid.'.' . $extension;
- }
- $uploadedPath = 'usericons/' . $newFilename;
- $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)エラーコード:' .$errcode.'';
- }
- }
- if(isset($s3result)){
- if($s3result == false){
- $error_message[] = 'アップロード失敗!(1)エラーコード: S3ERROR';
- }else{
- $iconName = $s3result; // S3に保存されたファイルのパスを使用
- }
- }
- }else{
- $error_message[] = "使用できない画像形式です。(FILE_UPLOAD_DEKINAKATTA)";
- }
- }else{
- $error_message[] = 'アイコン画像を選択してください(PHOTO_SELECT_PLEASE)';
- }
-
- if(empty($error_message)) {
- $currentIconPath = getUserData($pdo, $userid)["iconname"];
-
- $pdo->beginTransaction();
- try {
- $stmt = $pdo->prepare("UPDATE account SET iconname = :iconname WHERE userid = :userid");
- $stmt->bindValue(':iconname', $iconName, PDO::PARAM_STR);
- $stmt->bindValue(':userid', $userid, PDO::PARAM_STR);
- $res = $stmt->execute();
- $res = $pdo->commit();
- } catch (Exception $e) {
- $pdo->rollBack();
- }
-
- if ($res) {
- if ($currentIconPath) {
- unlink('../' . $currentIconPath);
- }
- echo json_encode(['success' => true]);
- exit;
- } else {
- echo json_encode(['success' => false, 'error' => '更新に失敗しました']);
- exit;
- }
-
- // プリペアドステートメントを削除
- $stmt = null;
- }else{
- echo json_encode(['success' => false, 'error' => $error_message[0]]);
- exit;
- }
- }
- }
-
- if($settings_type == "header"){
- if(isset($_FILES["data"])){
- if (!(empty($_FILES['data']['name']))) {
- $uploadedFile = $_FILES['data'];
- if(check_mime($uploadedFile['tmp_name'])){
- $extension = pathinfo($uploadedFile['name'], PATHINFO_EXTENSION);
- delete_exif($extension, $uploadedFile['tmp_name']);
- resizeImage($uploadedFile['tmp_name'], 2048, 1024);
-
- if(AMS3_CHKS == "true"){
- $userheadurl = getUserData($pdo, $userid)["headname"];
- if(filter_var($userheadurl, FILTER_VALIDATE_URL)){
- $s3delresult = deleteAmazonS3($userheadurl);
- }else{
- $s3delresult = true;
- }
- if($s3delresult == true){
- $s3result = uploadAmazonS3($uploadedFile['tmp_name']);
- }else{
- $s3result = false;
- }
- }else{
- if(check_mime($uploadedFile['tmp_name']) == "image/webp"){
- $newFilename = createUniqId() . '-'.$userid.'.webp';
- }else{
- $newFilename = createUniqId() . '-'.$userid.'.' . $extension;
- }
- $uploadedPath = 'userheads/' . $newFilename;
- $result = move_uploaded_file($uploadedFile['tmp_name'], '../'.$uploadedPath);
-
- if ($result) {
- $headName = $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[] = 'アップロード失敗!(2)エラーコード:' .$errcode.'';
- }
- }
- if(isset($s3result)){
- if($s3result == false){
- $error_message[] = 'アップロード失敗!(2)エラーコード: S3ERROR';
- }else{
- $headName = $s3result; // S3に保存されたファイルのパスを使用
- }
+ $error_message[] = 'アップロード失敗!(1)エラーコード:' .$beforeUploadError.'';
}
}else{
- $error_message[] = "使用できない画像形式です。(FILE_UPLOAD_DEKINAKATTA)";
+ $error_message[] = 'アイコン画像を選択してください(PHOTO_SELECT_PLEASE)';
}
- }else{
- $error_message[] = 'アイコン画像を選択してください(PHOTO_SELECT_PLEASE)';
- }
-
- if(empty($error_message)) {
- $currentHeadPath = getUserData($pdo, $userid)["headname"];
+
+ if(empty($error_message)) {
+ $currentIconPath = getUserData($pdo, $userid)["iconname"];
+
+ $pdo->beginTransaction();
+ try {
+ $stmt = $pdo->prepare("UPDATE account SET iconname = :iconname WHERE userid = :userid");
+ $stmt->bindValue(':iconname', $iconName, PDO::PARAM_STR);
+ $stmt->bindValue(':userid', $userid, PDO::PARAM_STR);
+ $res = $stmt->execute();
+ $res = $pdo->commit();
+ } catch (Exception $e) {
+ $pdo->rollBack();
+ }
- $pdo->beginTransaction();
- try {
- $stmt = $pdo->prepare("UPDATE account SET headname = :headname WHERE userid = :userid");
- $stmt->bindValue(':headname', $headName, PDO::PARAM_STR);
- $stmt->bindValue(':userid', $userid, PDO::PARAM_STR);
- $res = $stmt->execute();
- $res = $pdo->commit();
- } catch (Exception $e) {
- $pdo->rollBack();
- }
-
- if ($res) {
- if ($currentHeadPath) {
- unlink('../' . $currentHeadPath);
+ if ($res) {
+ if ($currentIconPath) {
+ unlink('../' . $currentIconPath);
+ }
+ echo json_encode(['success' => true]);
+ exit;
+ } else {
+ echo json_encode(['success' => false, 'error' => '更新に失敗しました']);
+ exit;
}
- echo json_encode(['success' => true]);
- exit;
- } else {
- echo json_encode(['success' => false, 'error' => '更新に失敗しました']);
+
+ // プリペアドステートメントを削除
+ $stmt = null;
+ }else{
+ echo json_encode(['success' => false, 'error' => $error_message[0]]);
exit;
}
-
- // プリペアドステートメントを削除
- $stmt = null;
- }else{
- echo json_encode(['success' => false, 'error' => $error_message[0]]);
- exit;
}
}
+
+ if($settings_type == "header"){
+ if(isset($_FILES["data"])){
+ if (!(empty($_FILES['data']['name']))) {
+ $uploadedFile = $_FILES['data'];
+ $beforeUploadError = check_upload_error($uploadedFile, __DIR__.'/../userheads/');
+ if($beforeUploadError === null){
+ if(check_mime($uploadedFile['tmp_name'])){
+ $extension = convert_mime(check_mime($uploadedFile['tmp_name']));
+ delete_exif($extension, $uploadedFile['tmp_name']);
+ resizeImage($uploadedFile['tmp_name'], 2048, 1024);
+
+ if(AMS3_CHKS == "true"){
+ $userheadurl = getUserData($pdo, $userid)["headname"];
+ if(filter_var($userheadurl, FILTER_VALIDATE_URL)){
+ $s3delresult = deleteAmazonS3($userheadurl);
+ }else{
+ $s3delresult = true;
+ }
+ if($s3delresult == true){
+ $s3result = uploadAmazonS3($uploadedFile['tmp_name']);
+ }else{
+ $s3result = false;
+ }
+ }else{
+ if(check_mime($uploadedFile['tmp_name']) == "image/webp"){
+ $newFilename = createUniqId() . '-'.$userid.'.webp';
+ }else{
+ $newFilename = createUniqId() . '-'.$userid.'.' . $extension;
+ }
+ $uploadedPath = 'userheads/' . $newFilename;
+ $result = move_uploaded_file($uploadedFile['tmp_name'], '../'.$uploadedPath);
+
+ if ($result) {
+ $headName = $uploadedPath; // 保存されたファイルのパスを使用
+ } else {
+ $beforeUploadError = check_upload_error($uploadedFile, __DIR__.'/../userheads/') ?? "ERROR";
+ $error_message[] = 'アップロード失敗!(2)エラーコード:' .$beforeUploadError.'';
+ }
+ }
+ if(isset($s3result)){
+ if($s3result == false){
+ $error_message[] = 'アップロード失敗!(2)エラーコード: S3ERROR';
+ }else{
+ $headName = $s3result; // S3に保存されたファイルのパスを使用
+ }
+ }
+ }else{
+ $error_message[] = "使用できない画像形式です。(FILE_UPLOAD_DEKINAKATTA)";
+ }
+ }else{
+ $error_message[] = 'アップロード失敗!(2)エラーコード:' .$beforeUploadError.'';
+ }
+ }else{
+ $error_message[] = 'アイコン画像を選択してください(PHOTO_SELECT_PLEASE)';
+ }
+
+ if(empty($error_message)) {
+ $currentHeadPath = getUserData($pdo, $userid)["headname"];
+
+ $pdo->beginTransaction();
+ try {
+ $stmt = $pdo->prepare("UPDATE account SET headname = :headname WHERE userid = :userid");
+ $stmt->bindValue(':headname', $headName, PDO::PARAM_STR);
+ $stmt->bindValue(':userid', $userid, PDO::PARAM_STR);
+ $res = $stmt->execute();
+ $res = $pdo->commit();
+ } catch (Exception $e) {
+ $pdo->rollBack();
+ }
+
+ if ($res) {
+ if ($currentHeadPath) {
+ unlink('../' . $currentHeadPath);
+ }
+ echo json_encode(['success' => true]);
+ exit;
+ } else {
+ echo json_encode(['success' => false, 'error' => '更新に失敗しました']);
+ exit;
+ }
+
+ // プリペアドステートメントを削除
+ $stmt = null;
+ }else{
+ echo json_encode(['success' => false, 'error' => $error_message[0]]);
+ exit;
+ }
+ }
+ }
+ }else{
+ echo json_encode(['success' => false, 'error' => '認証に失敗しました。(AUTH_INVALID)']);
+ exit;
}
} else {
diff --git a/function/ueuse.php b/function/ueuse.php
index 31391f3..ef4c641 100644
--- a/function/ueuse.php
+++ b/function/ueuse.php
@@ -27,74 +27,77 @@ if (safetext(isset($_POST['ueuse'])) && safetext(isset($_POST['userid'])) && saf
if ($is_login === false) {
echo json_encode(['success' => false, 'error' => '認証に失敗しました。(AUTH_INVALID)']);
exit;
- }
+ }elseif(is_sameUserid($userid, $is_login["userid"]) === true){
+ //ユーザーの認証情報を取得
+ $query = $pdo->prepare('SELECT * FROM account WHERE userid = :userid limit 1');
+ $query->execute(array(':userid' => $userid));
+ $result2 = $query->fetch();
+ if($result2["loginid"] === $loginid){
+ if(!($result2["role"] == "ice")){
+ if(!(empty($result2["other_settings"]))){
+ $isAIBWM = val_OtherSettings("isAIBlockWaterMark", $result2["other_settings"]);
+ }else{
+ $isAIBWM = false;
+ }
- //ユーザーの認証情報を取得
- $query = $pdo->prepare('SELECT * FROM account WHERE userid = :userid limit 1');
- $query->execute(array(':userid' => $userid));
- $result2 = $query->fetch();
- if($result2["loginid"] === $loginid){
- if(!($result2["role"] == "ice")){
- if(!(empty($result2["other_settings"]))){
- $isAIBWM = val_OtherSettings("isAIBlockWaterMark", $result2["other_settings"]);
- }else{
- $isAIBWM = false;
- }
+ if(isset($nsfw_chk) && $nsfw_chk == "true"){
+ $nsfw_chk = "true";
+ }else{
+ $nsfw_chk = "false";
+ }
- if(isset($nsfw_chk) && $nsfw_chk == "true"){
- $nsfw_chk = "true";
- }else{
- $nsfw_chk = "false";
- }
+ if(isset($_FILES['upload_images'])){
+ $photo1 = $_FILES['upload_images'];
+ }else{
+ $photo1 = null;
+ }
+ if(isset($_FILES['upload_images2'])){
+ $photo2 = $_FILES['upload_images2'];
+ }else{
+ $photo2 = null;
+ }
+ if(isset($_FILES['upload_images3'])){
+ $photo3 = $_FILES['upload_images3'];
+ }else{
+ $photo3 = null;
+ }
+ if(isset($_FILES['upload_images4'])){
+ $photo4 = $_FILES['upload_images4'];
+ }else{
+ $photo4 = null;
+ }
+ if(isset($_FILES['upload_videos1'])){
+ $video1 = $_FILES['upload_videos1'];
+ }else{
+ $video1 = null;
+ }
- if(isset($_FILES['upload_images'])){
- $photo1 = $_FILES['upload_images'];
- }else{
- $photo1 = null;
- }
- if(isset($_FILES['upload_images2'])){
- $photo2 = $_FILES['upload_images2'];
- }else{
- $photo2 = null;
- }
- if(isset($_FILES['upload_images3'])){
- $photo3 = $_FILES['upload_images3'];
- }else{
- $photo3 = null;
- }
- if(isset($_FILES['upload_images4'])){
- $photo4 = $_FILES['upload_images4'];
- }else{
- $photo4 = null;
- }
- if(isset($_FILES['upload_videos1'])){
- $video1 = $_FILES['upload_videos1'];
- }else{
- $video1 = null;
- }
+ if(isset($_POST['rpuniqid'])){
+ $rpUniqid = safetext($_POST['rpuniqid']);
+ }else{
+ $rpUniqid = "";
+ }
- if(isset($_POST['rpuniqid'])){
- $rpUniqid = safetext($_POST['rpuniqid']);
- }else{
- $rpUniqid = "";
- }
+ $ruUniqid = "";
+ $ueuse_result = send_ueuse($userid,$rpUniqid,$ruUniqid,$ueuse,$photo1,$photo2,$photo3,$photo4,$video1,$nsfw_chk,$isAIBWM);
- $ruUniqid = "";
- $ueuse_result = send_ueuse($userid,$rpUniqid,$ruUniqid,$ueuse,$photo1,$photo2,$photo3,$photo4,$video1,$nsfw_chk,$isAIBWM);
-
- if($ueuse_result[0] == true){
- echo json_encode(['success' => true]);
- exit;
+ if($ueuse_result[0] == true){
+ echo json_encode(['success' => true]);
+ exit;
+ }else{
+ echo json_encode(['success' => false, 'error' => $ueuse_result[1]]);
+ exit;
+ }
}else{
- echo json_encode(['success' => false, 'error' => $ueuse_result[1]]);
- exit;
+ echo json_encode(['success' => false, 'error' => 'お使いのアカウントではユーズができません。']);
+ exit;
}
}else{
- echo json_encode(['success' => false, 'error' => 'お使いのアカウントではユーズができません。']);
- exit;
+ echo json_encode(['success' => false, 'error' => 'ユーズに失敗しました。']);
+ exit;
}
}else{
- echo json_encode(['success' => false, 'error' => 'ユーズに失敗しました。']);
+ echo json_encode(['success' => false, 'error' => '認証に失敗しました。(AUTH_INVALID)']);
exit;
}
} else {
diff --git a/js/view_function.js b/js/view_function.js
index c7a637f..0be371c 100644
--- a/js/view_function.js
+++ b/js/view_function.js
@@ -355,21 +355,20 @@ function formatMarkdown(text) {
// a_link
text = text.replace(/(https:\/\/[\w!?\/+\-_~;.,*&@#$%()+|https:\/\/[ぁ-んァ-ヶ一ー-龠々\w\-\/?=&%.]+)/g, function (url) {
- const escapedUrl = url;
- const no_https_link = escapedUrl.replace("https://", "");
+ const no_https_link = url.replace("https://", "");
let linkText = no_https_link;
-
if (no_https_link.length > 48) {
linkText = no_https_link.substring(0, 48) + '...';
}
-
- return `${linkText}`;
+ const html = `${linkText}`;
+ return createPlaceholder(html);
});
// ハッシュタグ
text = text.replace(/(^|[^a-zA-Z0-9_])#([a-zA-Z0-9ぁ-んァ-ン一-龥ー_]+)/gu, function (match, before, tag) {
const encodedTag = encodeURIComponent("#" + tag);
- return `${before}#${tag}`;
+ const html = `${before}#${tag}`;
+ return createPlaceholder(html);
});
// 独自構文
@@ -390,6 +389,7 @@ function formatMarkdown(text) {
.replace(/~~(.+?)~~/g, '$1')
.replace(/^>>> ?(.*)$/gm, '$1')
.replace(/\|\|(.+?)\|\|/g, '$1')
+ .replace(/^-# (.+)/gm, '
$1
') .replace(/^# (.+)/gm, '