1
0
mirror of https://github.com/Daichimarukana/uwuzu.git synced 2026-06-04 19:14:41 +00:00

uwuzu v1.6.12 Hapuego

This commit is contained in:
だいちまる
2026-04-22 01:24:23 +09:00
parent f439bd171f
commit b39307b651
36 changed files with 2851 additions and 2584 deletions
+10 -7
View File
@@ -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 {
+310 -244
View File
@@ -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('/<br\s*\/?>/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('/<br\s*\/?>/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;
}
?>
+55 -52
View File
@@ -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(
+51 -48
View File
@@ -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(
+41 -38
View File
@@ -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;
+173 -172
View File
@@ -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 {
+61 -58
View File
@@ -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 {