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'], "user"); 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"]); } $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']; if( !empty($pdo) ) { // データベース接続の設定 $dbh = new PDO('mysql:charset=utf8mb4;dbname='.DB_NAME.';host='.DB_HOST, DB_USER, DB_PASS, array( PDO::ATTR_ERRMODE => PDO::ERRMODE_EXCEPTION, PDO::ATTR_DEFAULT_FETCH_MODE => PDO::FETCH_ASSOC, PDO::MYSQL_ATTR_USE_BUFFERED_QUERY => true, )); $userQuery = $dbh->prepare("SELECT userid,token,role FROM account WHERE userid = :userid"); $userQuery->bindValue(':userid', $userid); $userQuery->execute(); $userData = $userQuery->fetch(); } if( !empty($_POST['btn_submit']) ) { $chkuserid = safetext($_POST['chkuserid']); if( empty($chkuserid) ) { $error_message[] = '確認用ユーザーIDを入力してください。(USERID_CHECK_INPUT_PLEASE)'; } else { if($chkuserid === $userData["userid"]){ $res = addJob($pdo, $userData["userid"], "deleteUser", "stop_account"); if ($res) { if (isset($_SERVER['HTTP_COOKIE'])) { $cookies = explode(';', $_SERVER['HTTP_COOKIE']); foreach($cookies as $cookie) { $parts = explode('=', $cookie); $name = trim($parts[0]); setcookie($name, '', time()-1000); setcookie($name, '', time()-1000, '/'); } } header("Location:../index.php"); exit; } else { $error_message[] = 'アカウント削除に失敗しました。(ACCOUNT_DELETE_DAME)'; } // プリペアドステートメントを削除 $stmt = null; }else{ $error_message[] = '確認用ユーザーIDが違います。(USERID_CHIGAUYANKE)'; } } } if( !empty($_POST['session_submit']) ) { $LoginIdBytes = random_bytes(64); $loginid = hash('sha3-512', $LoginIdBytes); $pdo->beginTransaction(); try { $stmt = $pdo->prepare("UPDATE account SET loginid = :loginid WHERE userid = :userid;"); $stmt->bindParam(':loginid', $loginid, PDO::PARAM_STR); $stmt->bindValue(':userid', $userid, PDO::PARAM_STR); // SQLクエリの実行 $res = $stmt->execute(); // コミット $res = $pdo->commit(); } catch (Exception $e) { // エラーが発生した時はロールバック $pdo->rollBack(); } if ($res) { if (isset($_SERVER['HTTP_COOKIE'])) { $cookies = explode(';', $_SERVER['HTTP_COOKIE']); foreach($cookies as $cookie) { $parts = explode('=', $cookie); $name = trim($parts[0]); setcookie($name, '', time()-1000); setcookie($name, '', time()-1000, '/'); } } // リダイレクト先のURLへ転送する $url = '../index.php'; header('Location: ' . $url, true, 303); // すべての出力を終了 exit; } else { $error_message[] = 'セッショントークンの再生成に失敗しました。(END_OF_SESSION_DAME)'; } } if( !empty($_POST['logout_submit']) ) { $url = '../logout/index.php'; header('Location: ' . $url); exit; } if( !empty($_POST['token_submit']) ) { $token = random_token(); $nones = "none"; $pdo->beginTransaction(); try { $stmt = $pdo->prepare("UPDATE account SET token = :token, sacinfo = :new_sacinfo WHERE userid = :userid;"); $stmt->bindParam(':token', $token, PDO::PARAM_STR); $stmt->bindParam(':new_sacinfo', $nones, PDO::PARAM_STR); $stmt->bindValue(':userid', $userid, PDO::PARAM_STR); // SQLクエリの実行 $res = $stmt->execute(); // コミット $res = $pdo->commit(); } catch (Exception $e) { // エラーが発生した時はロールバック $pdo->rollBack(); } if ($res) { $_SESSION['token'] = $token; // リダイレクト先のURLへ転送する $url = 'token.php'; header('Location: ' . $url, true, 303); exit; } else { $error_message[] = 'アクセストークンの発行に失敗しました。(CREATE_TOKEN_DAME)'; } } if( !empty($_POST['token_off_submit']) ) { $token = ''; $new_sacinfo = 'none'; $pdo->beginTransaction(); try { $stmt = $pdo->prepare("UPDATE account SET token = :token,sacinfo = :sacinfo WHERE userid = :userid;"); $stmt->bindParam(':token', $token, PDO::PARAM_STR); $stmt->bindParam(':sacinfo', $new_sacinfo, PDO::PARAM_STR); $stmt->bindValue(':userid', $userid, PDO::PARAM_STR); // SQLクエリの実行 $res = $stmt->execute(); // コミット $res = $pdo->commit(); } catch (Exception $e) { // エラーが発生した時はロールバック $pdo->rollBack(); } if ($res) { $url = (empty($_SERVER['HTTPS']) ? 'http://' : 'https://') . $_SERVER['HTTP_HOST'] . $_SERVER['REQUEST_URI']; header("Location:".$url.""); exit; } else { $error_message[] = 'アクセストークンの削除に失敗しました。(TOKEN_DELETE_DAME)'; } } if( !empty($_POST['cache_submit']) ) { header("Location: cache_clear.php"); exit; } require('../logout/logout.php'); ?> その他の項目 - <?php echo safetext($serversettings["serverinfo"]["server_name"]);?>

セッショントークンの再生成

下のセッショントークン再生成ボタンを押すと全てのログイン中のデバイスからログアウトされます。
再度uwuzu使用するにはログインが必須になります。


ログアウト

ログアウトです。他のログイン済みの端末からはログアウトされません。


キャッシュクリア

下のボタンを押すことでキャッシュクリアが可能です。

この機能は試験的なものであり、正常に動作しない可能性があります。

チュートリアル

uwuzuの基礎的なチュートリアルを行うことができます!


他のサーバーへアカウント移行

uwuzuサーバー同士でのアカウント移行が可能になりました!

このアカウントは凍結されているため移行できません。

アカウント移行

アカウント削除

アカウント誤削除を防ぐため下の入力ボックスにご自身のユーザーIDを入力する必要があります。

あなたはこのサーバーの管理者のようです。
管理者アカウントの移行は済んでいますか?
アカウントを削除しても大丈夫なのですか...?

確認用ユーザーID


API

APIの使用方法はdocs.uwuzu.xyzよりAPIドキュメントをご確認ください。

以下のボタンよりアクセストークンを取得すると使用できます。
アクセストークンは一度発行すると作り直すまで再度確認はできません。また、絶対に他人に知られないように保護してください。

アクセストークンはアカウントが凍結されているため発行できません。

以下のボタンよりアクセストークンを削除できます。ボタンを押すとすぐに削除されますのでご注意ください。


もしものときは