0, 'path' => '/', 'domain' => '', 'secure' => true, 'httponly' => true, 'samesite' => 'Lax' ]); session_start(); session_regenerate_id(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(); } //ログイン認証--------------------------------------------------- blockedIP($_SERVER['REMOTE_ADDR']); $is_login = uwuzuUserLogin($_SESSION, $_COOKIE, $_SERVER['REMOTE_ADDR'], "admin"); if($is_login === false){ header("Location: ../index.php"); exit; }else{ $userid = safetext($is_login['userid']); $username = safetext($is_login['username']); $loginid = safetext($is_login["loginid"]); $role = safetext($is_login["role"]); $sacinfo = safetext($is_login["sacinfo"]); $myblocklist = safetext($is_login["blocklist"]); $myfollowlist = safetext($is_login["follow"]); $is_Admin = safetext($is_login["admin"]); } if(empty($_SESSION["query_userid"])){ header("Location: useradmin"); exit; } $notiQuery = $pdo->prepare("SELECT COUNT(*) as notification_count FROM notification WHERE touserid = :userid AND userchk = 'none'"); $notiQuery->bindValue(':userid', $userid); $notiQuery->execute(); $notiData = $notiQuery->fetch(PDO::FETCH_ASSOC); $notificationcount = $notiData['notification_count']; //phpmailer-------------------------------------------- require('plugin_settings/phpmailer_settings.php'); require('plugin_settings/phpmailer_sender.php'); //------------------------------------------------------ if (!empty($pdo)) { $userQuery = $pdo->prepare("SELECT * FROM account WHERE userid = :userid"); $userQuery->bindValue(':userid', $_SESSION["query_userid"]); $userQuery->execute(); $userdata = $userQuery->fetch(); if(!(empty($userdata["encryption_ivkey"]))){ $view_mailadds = DecryptionUseEncrKey($userdata["mailadds"], GenUserEnckey($userdata["datetime"]), $userdata["encryption_ivkey"]); $view_ip_addr = DecryptionUseEncrKey($userdata["last_ip"], GenUserEnckey($userdata["datetime"]), $userdata["encryption_ivkey"]); }else{ $view_mailadds = $userdata["mailadds"]; $view_ip_addr = $userdata["last_ip"]; } $roles = explode(',', $userdata["role"]); $roleDataArray = array(); foreach ($roles as $roleId) { $rerole = $pdo->prepare("SELECT rolename, roleauth, rolecolor, roleeffect FROM role WHERE roleidname = :role"); $rerole->bindValue(':role', $roleId); $rerole->execute(); $roleDataArray[$roleId] = $rerole->fetch(); } $followIds = explode(',', $userdata['follow']); $followCount = count($followIds)-1; $followerIds = explode(',', $userdata['follower']); $followerCount = count($followerIds)-1; $result = $pdo->prepare("SELECT ueuse FROM ueuse WHERE account = :userid ORDER BY datetime"); $result->bindValue(':userid', $userdata["userid"]); $result->execute(); $upload_cnt1 = $result->rowCount(); } if( !empty($_POST['send_ice_submit']) ) { $notice_msg = $_POST['notice_msg']; $newrole = "ice"; $newtoken = "ice"; $newadmin = "none"; // トランザクション開始 $pdo->beginTransaction(); try { $touserid = safetext($userdata['userid']); // SQL作成 $stmt = $pdo->prepare("UPDATE account SET role = :role,token = :newtoken,admin = :newadmin WHERE userid = :userid"); $stmt->bindValue(':role', $newrole, PDO::PARAM_STR); $stmt->bindValue(':newtoken', $newtoken, PDO::PARAM_STR); $stmt->bindValue(':newadmin', $newadmin, PDO::PARAM_STR); $stmt->bindValue(':userid', $touserid, PDO::PARAM_STR); // SQLクエリの実行 $res = $stmt->execute(); // コミット $res = $pdo->commit(); } catch (Exception $e) { // エラーが発生した時はロールバック $pdo->rollBack(); actionLog($userid, "error", "send_ice_submit", $touserid, $e, 4); } //凍結通知メール if(false !== strpos($userdata["mail_settings"], 'important')) { if(!empty(MAIL_CHKS)){ if(MAIL_CHKS == "true"){ if( !empty($view_mailadds) ){ if(filter_var($view_mailadds, FILTER_VALIDATE_EMAIL)){ $mail_title = "お使いの".safetext($serversettings["serverinfo"]["server_name"])."アカウントは凍結されました"; $mail_text = "".$userdata["username"]."(".$userdata["userid"].")さん いつもuwuzuをご利用いただきありがとうございます。 ご利用のアカウント(".$userdata["userid"].")が".safetext($serversettings["serverinfo"]["server_name"])."管理者により凍結されたためお知らせいたします。 サービス管理者からのメッセージは以下のものです。 ". $notice_msg ." 異議申し立てする場合は[".safetext($serversettings["serverinfo"]["server_admin_mailadds"])."]まで異議申し立てをする旨を記載し送信をしてください。"; $error_message[] = send_html_mail($view_mailadds,$mail_title,$mail_text,"../"); } } } } } //------------ $pdo->beginTransaction(); try { $touserid = safetext($userdata['userid']); $datetime = safetext(date("Y-m-d H:i:s")); $msg = safetext("サービス管理者からのメッセージは以下のものです。\n" . $notice_msg . "\n異議申し立てする場合は連絡用メールに異議申し立てをする旨を記載し送信をしてください。"); $title = safetext("🧊お使いのアカウントは凍結されました。🧊"); $url = safetext("/rule/serverabout"); $userchk = 'none'; $fromuserid ="uwuzu-fromsys"; // 通知用SQL作成 $stmt = $pdo->prepare("INSERT INTO notification (fromuserid, touserid, msg, url, datetime, userchk, title) VALUES (:fromuserid, :touserid, :msg, :url, :datetime, :userchk, :title)"); $stmt->bindParam(':fromuserid', $fromuserid, PDO::PARAM_STR); $stmt->bindParam(':touserid', $touserid, PDO::PARAM_STR); $stmt->bindParam(':msg', $msg, PDO::PARAM_STR); $stmt->bindParam(':url', $url, PDO::PARAM_STR); $stmt->bindParam(':userchk', $userchk, PDO::PARAM_STR); $stmt->bindParam(':title', $title, PDO::PARAM_STR); $stmt->bindParam(':datetime', $datetime, PDO::PARAM_STR); // SQLクエリの実行 $res2 = $stmt->execute(); // コミット $res2 = $pdo->commit(); } catch(Exception $e) { // エラーが発生した時はロールバック $pdo->rollBack(); actionLog($userid, "error", "send_ice_submit", $touserid, $e, 4); } if ($res) { actionLog($userid, "info", "send_ice_submit", $touserid, $touserid."さんを".$userid."さんが凍結しました", 0); header("Location:useradmin"); exit; } else { $error_message[] = '凍結に失敗しました。(USER_ICE_DAME)'; actionLog($userid, "error", "send_ice_submit", $touserid, $error_message, 4); } } if( !empty($_POST['send_water_submit']) ) { $newrole = "user"; $newtoken = ""; $newadmin = "none"; // トランザクション開始 $pdo->beginTransaction(); try { $touserid = safetext($userdata['userid']); // SQL作成 $stmt = $pdo->prepare("UPDATE account SET role = :role,token = :newtoken,admin = :newadmin WHERE userid = :userid"); $stmt->bindValue(':role', $newrole, PDO::PARAM_STR); $stmt->bindValue(':newtoken', $newtoken, PDO::PARAM_STR); $stmt->bindValue(':newadmin', $newadmin, PDO::PARAM_STR); $stmt->bindValue(':userid', $touserid, PDO::PARAM_STR); // SQLクエリの実行 $res = $stmt->execute(); // コミット $res = $pdo->commit(); } catch (Exception $e) { $error_message[] = "えらー(ERROR)"; // エラーが発生した時はロールバック $pdo->rollBack(); actionLog($userid, "error", "send_water_submit", $touserid, $e, 4); } //凍結通知メール if(false !== strpos($userdata["mail_settings"], 'important')) { if(!empty(MAIL_CHKS)){ if(MAIL_CHKS == "true"){ if( !empty($view_mailadds) ){ if(filter_var($view_mailadds, FILTER_VALIDATE_EMAIL)){ $mail_title = "お使いの".safetext($serversettings["serverinfo"]["server_name"])."アカウントは解凍されました!"; $mail_text = "".$userdata["username"]."(".$userdata["userid"].")さん いつもuwuzuをご利用いただきありがとうございます。 ご利用のアカウント(".$userdata["userid"].")が解凍されたためお知らせいたします。 今後、ご利用のuwuzuアカウントは今まで通りご利用いただけます。 また、APIを使用している方はAPIのトークンがリセットされているため再度トークンを発行してご利用ください。"; $error_message[] = send_html_mail($view_mailadds,$mail_title,$mail_text,"../"); } } } } } //------------ $pdo->beginTransaction(); try { $touserid = safetext($userdata['userid']); $datetime = safetext(date("Y-m-d H:i:s")); $msg = safetext("サービス管理者によりお使いのアカウントは解凍されました!\n今まで通りご利用いただけます。\nなお、APIを使用している方はAPIのトークンがリセットされているため再度トークンを発行してご利用ください。"); $title = safetext("🫗お使いのアカウントが解凍されました!🫗"); $url = safetext("/home"); $userchk = 'none'; $fromuserid ="uwuzu-fromsys"; // 通知用SQL作成 $stmt = $pdo->prepare("INSERT INTO notification (fromuserid, touserid, msg, url, datetime, userchk, title) VALUES (:fromuserid, :touserid, :msg, :url, :datetime, :userchk, :title)"); $stmt->bindParam(':fromuserid', $fromuserid, PDO::PARAM_STR); $stmt->bindParam(':touserid', $touserid, PDO::PARAM_STR); $stmt->bindParam(':msg', $msg, PDO::PARAM_STR); $stmt->bindParam(':url', $url, PDO::PARAM_STR); $stmt->bindParam(':userchk', $userchk, PDO::PARAM_STR); $stmt->bindParam(':title', $title, PDO::PARAM_STR); $stmt->bindParam(':datetime', $datetime, PDO::PARAM_STR); // SQLクエリの実行 $res2 = $stmt->execute(); // コミット $res2 = $pdo->commit(); } catch(Exception $e) { $error_message[] = "えらー(ERROR)"; // エラーが発生した時はロールバック $pdo->rollBack(); actionLog($userid, "error", "send_water_submit", $touserid, $e, 4); } if ($res) { actionLog($userid, "info", "send_water_submit", $touserid, $touserid."さんを".$userid."さんが解凍しました", 0); header("Location:useradmin"); exit; } else { $error_message[] = '解凍に失敗しました。(USER_WATER_DAME)'; actionLog($userid, "error", "send_water_submit", $touserid, $error_message, 4); } } if( !empty($_POST['send_ban_submit']) ) { $userId2 = $userdata['userid']; // 削除対象のユーザーID $folderPath = "../ueuseimages/"; // フォルダのパス // 指定したフォルダ内でユーザーIDを含むファイルを検索 $filesToDelete = glob($folderPath . "*-$userId2.*"); // 「-ユーザーID.拡張子」というパターンを検索 // ファイルを順に削除 foreach ($filesToDelete as $file) { if (is_file($file)) { unlink($file); // ファイルを削除 } } $folderPath2 = "../ueusevideos/"; // フォルダのパス // 指定したフォルダ内でユーザーIDを含むファイルを検索 $filesToDelete2 = glob($folderPath2 . "*-$userId2.*"); // 「-ユーザーID.拡張子」というパターンを検索 // ファイルを順に削除 foreach ($filesToDelete2 as $file2) { if (is_file($file2)) { unlink($file2); // ファイルを削除 } } $folderPath3 = "../usericons/"; // フォルダのパス // 指定したフォルダ内でユーザーIDを含むファイルを検索 $filesToDelete3 = glob($folderPath3 . "*-$userId2.*"); // 「-ユーザーID.拡張子」というパターンを検索 // ファイルを順に削除 foreach ($filesToDelete3 as $file3) { if (is_file($file3)) { unlink($file3); // ファイルを削除 } } $folderPath4 = "../userheads/"; // フォルダのパス // 指定したフォルダ内でユーザーIDを含むファイルを検索 $filesToDelete4 = glob($folderPath4 . "*-$userId2.*"); // 「-ユーザーID.拡張子」というパターンを検索 // ファイルを順に削除 foreach ($filesToDelete4 as $file4) { if (is_file($file4)) { unlink($file4); // ファイルを削除 } } try { $pdo = new PDO('mysql:charset=utf8mb4;dbname='.DB_NAME.';host='.DB_HOST , DB_USER, DB_PASS); // 投稿削除クエリを実行 $deleteQuery = $pdo->prepare("DELETE FROM ueuse WHERE account = :userid"); $deleteQuery->bindValue(':userid', $userId2, PDO::PARAM_STR); $res = $deleteQuery->execute(); // アカウント削除クエリを実行 $deleteQuery = $pdo->prepare("DELETE FROM account WHERE userid = :userid"); $deleteQuery->bindValue(':userid', $userId2, PDO::PARAM_STR); $res = $deleteQuery->execute(); // 通知削除クエリを実行 $deleteQuery = $pdo->prepare("DELETE FROM notification WHERE touserid = :touserid"); $deleteQuery->bindValue(':touserid', $userId2, PDO::PARAM_STR); $res = $deleteQuery->execute(); // 通知削除クエリを実行(自分からの通知) $deleteQuery = $pdo->prepare("DELETE FROM notification WHERE fromuserid = :fromuserid"); $deleteQuery->bindValue(':fromuserid', $userId2, PDO::PARAM_STR); $res = $deleteQuery->execute(); // ユーザーIDを削除したい全てのアカウントを取得 $query = $pdo->prepare("SELECT * FROM account WHERE follow LIKE :pattern1 OR follow LIKE :pattern2 OR follow LIKE :pattern3 OR follower LIKE :pattern1 OR follower LIKE :pattern2 OR follower LIKE :pattern3"); $query->bindValue(':pattern1', "%,$userid,%", PDO::PARAM_STR); $query->bindValue(':pattern2', "%,$userid", PDO::PARAM_STR); $query->bindValue(':pattern3', "$userid,%", PDO::PARAM_STR); $query->execute(); $accounts = $query->fetchAll(); foreach ($accounts as $account) { // フォローの更新 if (strpos($account['follow'], ",$userid,") !== false || strpos($account['follow'], ",$userid") !== false || strpos($account['follow'], "$userid,") !== false) { $followList = explode(',', $account['follow']); $followList = array_diff($followList, array($userid)); $newFollowList = implode(',', $followList); $updateFollowQuery = $pdo->prepare("UPDATE account SET follow = :follow WHERE userid = :userid"); $updateFollowQuery->bindValue(':follow', $newFollowList, PDO::PARAM_STR); $updateFollowQuery->bindValue(':userid', $account['userid'], PDO::PARAM_STR); $updateFollowQuery->execute(); } // フォロワーの更新 if (strpos($account['follower'], ",$userid,") !== false || strpos($account['follower'], ",$userid") !== false || strpos($account['follower'], "$userid,") !== false) { $followerList = explode(',', $account['follower']); $followerList = array_diff($followerList, array($userid)); $newFollowerList = implode(',', $followerList); $updateFollowerQuery = $pdo->prepare("UPDATE account SET follower = :follower WHERE userid = :userid"); $updateFollowerQuery->bindValue(':follower', $newFollowerList, PDO::PARAM_STR); $updateFollowerQuery->bindValue(':userid', $account['userid'], PDO::PARAM_STR); $updateFollowerQuery->execute(); } } $query = $pdo->prepare("SELECT * FROM ueuse WHERE favorite LIKE :pattern1 OR favorite LIKE :pattern2 OR favorite LIKE :pattern3"); $query->bindValue(':pattern1', "%,$userid,%", PDO::PARAM_STR); $query->bindValue(':pattern2', "%,$userid", PDO::PARAM_STR); $query->bindValue(':pattern3', "$userid,%", PDO::PARAM_STR); $query->execute(); $accounts = $query->fetchAll(); foreach ($accounts as $account) { // いいねの更新 if (strpos($account['favorite'], ",$userid,") !== false || strpos($account['favorite'], ",$userid") !== false || strpos($account['favorite'], "$userid,") !== false) { $favoriteList = explode(',', $account['favorite']); $favoriteList = array_diff($favoriteList, array($userid)); $newFavoriteList = implode(',', $favoriteList); $updateFavoriteQuery = $pdo->prepare("UPDATE ueuse SET favorite = :favorite WHERE uniqid = :uniqid"); $updateFavoriteQuery->bindValue(':favorite', $newFavoriteList, PDO::PARAM_STR); $updateFavoriteQuery->bindValue(':uniqid', $account['uniqid'], PDO::PARAM_STR); $updateFavoriteQuery->execute(); } } //BAN通知メール if(false !== strpos($userdata["mail_settings"], 'important')) { if(!empty(MAIL_CHKS)){ if(MAIL_CHKS == "true"){ if( !empty($view_mailadds) ){ if(filter_var($view_mailadds, FILTER_VALIDATE_EMAIL)){ $mail_title = "お使いの".safetext($serversettings["serverinfo"]["server_name"])."アカウントはBANされました"; $mail_text = "".$userdata["username"]."(".$userdata["userid"].")さん いつもuwuzuをご利用いただきありがとうございます。 この度、ご利用のアカウント(".$userdata["userid"].")が".safetext($serversettings["serverinfo"]["server_name"])."管理者によりBAN(削除)されたためお知らせいたします。 今後は今までご利用いただいた".safetext($serversettings["serverinfo"]["server_name"])."アカウントは利用できません。 ".safetext($serversettings["serverinfo"]["server_name"])."サーバー上から今までご利用いただいていたアカウントの情報は削除されたためログインなどもできません。 ご理解とご協力のほどよろしくお願いします。"; $error_message[] = send_html_mail($view_mailadds,$mail_title,$mail_text,"../"); } } } } } //------------ } catch (Exception $e) { // エラーが発生した時はロールバック $pdo->rollBack(); actionLog($userid, "error", "send_ban_submit", $userId2, $e, 4); } if ($res) { actionLog($userid, "info", "send_ban_submit", $userId2, $userid."さんが".$userId2."さんをBANしました", 4); header("Location:useradmin"); exit; } else { $error_message[] = 'アカウント削除に失敗しました。(ACCOUNT_DELETE_DAME)'; actionLog($userid, "error", "send_ban_submit", $userId2, $error_message, 4); } // プリペアドステートメントを削除 $stmt = null; } require('../logout/logout.php'); ?> ユーザー管理 - <?php echo safetext($serversettings["serverinfo"]["server_name"]);?>

@

;">

;">

プロフィール


メールアドレス


二段階認証


管理者権限


フォロー数

0 ){ echo safetext($followCount);}else{echo "なし";} ?>

フォロワー数

0 ){ echo safetext($followerCount);}else{echo "なし";} ?>


投稿数

0 ){ echo $upload_cnt1;}else{echo "なし";} ?>


アカウント登録日時


最終アクセス時のIPアドレス


アカウント操作