ACIL FM
Dark
Refresh
Current DIR:
/home/fastexsh/public_html/tether/admin
/
home
fastexsh
public_html
tether
admin
Upload
Zip Selected
Delete Selected
Pilih semua
Nama
Ukuran
Permission
Aksi
admin_finance.php
17.18 MB
chmod
View
DL
Edit
Rename
Delete
error_log
46.9 MB
chmod
View
DL
Edit
Rename
Delete
login_admin.php
274 B
chmod
View
DL
Edit
Rename
Delete
manage_users.php
18.28 MB
chmod
View
DL
Edit
Rename
Delete
send_notification.php
4.77 MB
chmod
View
DL
Edit
Rename
Delete
set_channels.php
8.44 MB
chmod
View
DL
Edit
Rename
Delete
system_settings.php
6.84 MB
chmod
View
DL
Edit
Rename
Delete
Edit file: /home/fastexsh/public_html/tether/admin/manage_users.php
<?php if ($text == "👤 مدیریت کاربران" && isAdmin($user->login_username)) { $keyboard = json_encode([ "resize_keyboard" => true, "keyboard" => [ [["text" => "🔍 جستجوی کاربر"]], [["text" => "🚫 مسدود کردن کاربر"], ["text" => "♻️ رفع مسدودی"]], [["text" => "🔑 بازیابی رمز عبور"]], [["text" => "➕ افزودن ادمین"], ["text" => "➖ حذف ادمین"]], [["text" => "↩️ بازگشت به مدیریت"]], ] ]); sendMessage($from_id, "👤 *مدیریت کاربران*\n\nیکی از گزینهها را انتخاب کنید:", $keyboard); die; } if ($text == "🔍 جستجوی کاربر" && isAdmin($user->login_username)) { setStep($from_id, "admin-search-username"); sendMessage( $from_id, "🔎 *جستجوی کاربر*\n\nلطفاً **نامکاربری** کاربر را وارد کنید:", $backToAdminKeyboard ); die; } if ($user->step == "admin-search-username" && isAdmin($user->login_username)) { $uname = trim($text); $query = " SELECT * FROM `accounts` WHERE `username` = ? LIMIT 1 "; $stmt = $pdo->prepare($query); $stmt->execute([$uname]); $acc = $stmt->fetch(); if (!$acc) { sendMessage($from_id, "❌ این نامکاربری یافت نشد. لطفاً دوباره وارد کنید:"); die; } $balance = number_format($acc->balance); $status = $acc->is_banned ? "❌ مسدود" : "✔️ فعال"; $isAdmin = $acc->is_admin ? "🛡 ادمین" : "👤 کاربر معمولی"; $joined = jdate("Y/m/d - H:i:s", strtotime(date($acc->created_at)), tr_num: 'en') ?? "-"; $queryCards = " SELECT card_number, full_name FROM `cards` WHERE `username` = ? "; $stmtC = $pdo->prepare($queryCards); $stmtC->execute([$uname]); $cards = $stmtC->fetchAll(); $cardList = $cards ? implode("\n", array_map(fn($c) => "• `{$c->card_number}` – *{$c->full_name}*", $cards)) : "_هیچ کارتی ثبت نشده است._"; $msg = "👤 *اطلاعات کاربر*\n\n" . "🔸 *نامکاربری:* `{$acc->username}`\n" . "💼 *نوع حساب:* {$isAdmin}\n" . "🔐 *وضعیت:* {$status}\n" . "💰 *موجودی:* `{$balance}` تومان\n" . "📅 *تاریخ عضویت:* {$joined}\n\n" . "💳 *کارتهای ثبتشده:*\n{$cardList}"; $keyboard = json_encode( [ "resize_keyboard" => true, "keyboard" => [ [ ["text" => "➕ افزودن کارت"], ["text" => "🗑 حذف کارت"] ], [["text" => "↩️ بازگشت به مدیریت"]], ] ] ); setStep($from_id, "admin-user-panel:$uname"); sendMessage($from_id, $msg, $keyboard); die; } if ($text == "➕ افزودن کارت" && strpos($user->step, "admin-user-panel:") === 0) { $uname = explode("admin-user-panel:", $user->step)[1]; setStep($from_id, "admin-addcard-enter-number:$uname"); sendMessage( $from_id, "💳 *افزودن کارت بانکی*\n\n" . "لطفاً *شماره کارت ۱۶ رقمی* کاربر `{$uname}` را وارد کنید:", $backToAdminKeyboard ); die; } if (strpos($user->step, "admin-addcard-enter-number:") === 0 && isAdmin($user->login_username)) { $uname = explode("admin-addcard-enter-number:", $user->step)[1]; $cardNumber = trim($text); if (!preg_match("/^[0-9]{16}$/", $cardNumber)) { sendMessage($from_id, "❌ شماره کارت نامعتبر است.\nلطفاً دقیقاً *۱۶ رقم* وارد کنید:"); die; } $queryCheck = " SELECT id FROM `cards` WHERE `username` = ? AND `card_number` = ? LIMIT 1 "; $stmt = $pdo->prepare($queryCheck); $stmt->execute([$uname, $cardNumber]); $exists = $stmt->fetch(); if ($exists) { sendMessage($from_id, "⚠️ این شماره کارت قبلاً برای کاربر ثبت شده است."); die; } setStep($from_id, "admin-addcard-enter-name:$uname|$cardNumber"); sendMessage( $from_id, "👤 بسیار خوب!\n\nاکنون *نام و نام خانوادگی صاحب کارت* را وارد کنید:" ); die; } if (strpos($user->step, "admin-addcard-enter-name:") === 0 && isAdmin($user->login_username)) { [$uname, $cardNumber] = explode("|", explode("admin-addcard-enter-name:", $user->step)[1]); $fullName = trim($text); if (strlen($fullName) < 3) { sendMessage($from_id, "⚠️ نام صاحب کارت معتبر نیست.\nدوباره ارسال کنید:"); die; } $queryInsert = " INSERT INTO `cards` (`username`, `card_number`, `full_name`) VALUES (?, ?, ?) "; $stmt = $pdo->prepare($queryInsert); $stmt->execute([$uname, $cardNumber, $fullName]); setStep($from_id, "admin-user-panel:$uname"); sendMessage( $from_id, "✅ *کارت جدید با موفقیت اضافه شد*\n\n" . "👤 کاربر: `{$uname}`\n" . "💳 کارت: `{$cardNumber}`\n" . "👤 صاحب حساب: *{$fullName}*", $adminMainKeyboard ); die; } if ($text == "🗑 حذف کارت" && strpos($user->step, "admin-user-panel:") === 0) { $uname = explode("admin-user-panel:", $user->step)[1]; $query = " SELECT card_number, full_name FROM `cards` WHERE `username` = ? "; $stmt = $pdo->prepare($query); $stmt->execute([$uname]); $cards = $stmt->fetchAll(); if (!$cards) { sendMessage($from_id, "❌ این کاربر هیچ کارت ثبتشدهای ندارد."); die; } $msg = "🗑 *حذف کارت بانکی*\n\n" . "کدام کارت را میخواهید حذف کنید؟\n\n"; $keyboard = []; foreach ($cards as $c) { $keyboard[] = [ ["text" => "{$c->card_number} - {$c->full_name}"] ]; } $keyboard[] = [["text" => "↩️ بازگشت"]]; setStep($from_id, "admin-deletecard-select:$uname"); sendMessage( $from_id, $msg, json_encode(["keyboard" => $keyboard, "resize_keyboard" => true]) ); die; } if (strpos($user->step, "admin-deletecard-select:") === 0 && isAdmin($user->login_username)) { $uname = explode("admin-deletecard-select:", $user->step)[1]; $selected = trim($text); if ($selected == "↩️ بازگشت") { setStep($from_id, "admin-user-panel:$uname"); sendMessage($from_id, "بازگشت انجام شد.", $adminMainKeyboard); die; } $query = " SELECT * FROM `cards` WHERE `username` = ? AND CONCAT(`card_number`, ' - ', `full_name`) = ? LIMIT 1 "; $stmt = $pdo->prepare($query); $stmt->execute([$uname, $selected]); $card = $stmt->fetch(); if (!$card) { sendMessage($from_id, "❌ کارت انتخابشده معتبر نیست.\nلطفاً از لیست کارتها انتخاب کنید."); die; } setStep($from_id, "admin-deletecard-confirm:$uname|{$card->card_number}"); sendMessage( $from_id, "⚠️ *تایید حذف کارت*\n\n" . "💳 کارت: `{$card->card_number}`\n" . "👤 صاحب: *{$card->full_name}*\n\n" . "آیا از حذف این کارت مطمئن هستید؟", $confirmDeleteCardKeyboard ); die; } if (strpos($user->step, "admin-deletecard-confirm:") === 0 && isAdmin($user->login_username)) { [$uname, $cardNumber] = explode("|", explode("admin-deletecard-confirm:", $user->step)[1]); if ($text == "❌ لغو عملیات") { setStep($from_id, "admin-user-panel:$uname"); sendMessage($from_id, "🚫 عملیات حذف لغو شد.", $adminMainKeyboard); die; } if ($text != "🗑 تایید حذف") { sendMessage($from_id, "⚠️ لطفاً یکی از گزینههای زیر را انتخاب کنید:\n\n🗑 تایید حذف\n❌ لغو عملیات"); die; } // حذف کارت $queryDel = " DELETE FROM `cards` WHERE `username` = ? AND `card_number` = ? "; $stmt = $pdo->prepare($queryDel); $stmt->execute([$uname, $cardNumber]); setStep($from_id, "admin-user-panel:$uname"); sendMessage( $from_id, "🗑 *کارت با موفقیت حذف شد*\n\n" . "👤 کاربر: `{$uname}`\n" . "💳 کارت حذفشده: `{$cardNumber}`", $adminMainKeyboard ); die; } if ($text == "🚫 مسدود کردن کاربر" && isAdmin($user->login_username)) { $keyboard = json_encode([ "resize_keyboard" => true, "keyboard" => [ [["text" => "⬅️ بازگشت به پنل مدیریت"]] ] ]); sendMessage($from_id, "👤 لطفاً *نامکاربری* کاربر را وارد کنید:", $backToAdminKeyboard); setStep($from_id, "admin-ban-user"); die; } if ($user->step == "admin-ban-user" && isAdmin($user->login_username)) { $uname = trim($text); $query = " SELECT `is_banned` FROM `accounts` WHERE `username` = ? LIMIT 1 "; $stmt = $pdo->prepare($query); $stmt->execute([$uname]); $acc = $stmt->fetch(); if (!$acc) { sendMessage($from_id, "❌ نامکاربری یافت نشد.\nلطفاً دوباره وارد کنید:"); die; } if ($acc->is_banned == 1) { sendMessage( $from_id, "⚠️ این کاربر *قبلاً مسدود شده است*.\nنام کاربری دیگری وارد کنید:" ); die; } $pdo->prepare(" UPDATE `accounts` SET `is_banned` = 1 WHERE `username` = ? ")->execute([$uname]); setStep($from_id, "admin_panel"); sendMessage($from_id, "✔️ کاربر *{$uname}* با موفقیت مسدود شد.", $adminPanelKeyboard); die; } if ($text == "♻️ رفع مسدودی" && isAdmin($user->login_username)) { $keyboard = json_encode([ "resize_keyboard" => true, "keyboard" => [ [["text" => "⬅️ بازگشت به پنل مدیریت"]] ] ]); sendMessage($from_id, "👤 نامکاربری مورد نظر را وارد کنید:", $backToAdminKeyboard); setStep($from_id, "admin-unban-user"); die; } if ($user->step == "admin-unban-user" && isAdmin($user->login_username)) { $uname = trim($text); $query = " SELECT `is_banned` FROM `accounts` WHERE `username` = ? LIMIT 1 "; $stmt = $pdo->prepare($query); $stmt->execute([$uname]); $acc = $stmt->fetch(); if (!$acc) { sendMessage($from_id, "❌ نامکاربری یافت نشد.\nدوباره تلاش کنید:"); die; } if ($acc->is_banned == 0) { sendMessage( $from_id, "⚠️ این کاربر *هماکنون مسدود نیست*.\nنام کاربری دیگری وارد کنید:" ); die; } $pdo->prepare(" UPDATE `accounts` SET `is_banned` = 0 WHERE `username` = ? ")->execute([$uname]); setStep($from_id, "admin_panel"); sendMessage($from_id, "✔️ مسدودی کاربر *{$uname}* برداشته شد.", $adminPanelKeyboard); die; } if ($text == "🔑 بازیابی رمز عبور" && isAdmin($user->login_username)) { setStep($from_id, "admin:resetpass_enter_username"); sendMessage( $from_id, "👤 *بازیابی رمز عبور*\n\nلطفاً *نام کاربری* مورد نظر را وارد کنید:" , $backToAdminKeyboard ); die; } if ($user->step == "admin:resetpass_enter_username" && isAdmin($user->login_username)) { $username = trim($text); $query = " SELECT * FROM `accounts` WHERE `username` = ? LIMIT 1 "; $stmt = $pdo->prepare($query); $stmt->execute([$username]); $acc = $stmt->fetch(); if (!$acc) { sendMessage($from_id, "❌ نام کاربری یافت نشد.\nدوباره وارد کنید:"); die; } setStep($from_id, "admin:resetpass_newpass:$username"); sendMessage( $from_id, "🔑 نام کاربری یافت شد: *{$username}*\n\n" . "لطفاً *رمز جدید* را وارد کنید:" ); die; } if (strpos($user->step, "admin:resetpass_newpass:") === 0 && isAdmin($user->login_username)) { $username = str_replace("admin:resetpass_newpass:", "", $user->step); $newPass = trim($text); if (strlen($newPass) < 4) { sendMessage($from_id, "⚠️ رمز باید حداقل ۴ کاراکتر باشد.\nدوباره وارد کنید:"); die; } setStep($from_id, "admin:resetpass_repeat:$username|$newPass"); sendMessage( $from_id, "🔁 لطفاً *تکرار رمز جدید* را وارد کنید:" ); die; } if (strpos($user->step, "admin:resetpass_repeat:") === 0 && isAdmin($user->login_username)) { $parts = str_replace("admin:resetpass_repeat:", "", $user->step); [$username, $newPass] = explode("|", $parts); $repeat = trim($text); if ($repeat !== $newPass) { sendMessage( $from_id, "❌ رمز عبور و تکرار آن یکسان نیستند.\nلطفاً دوباره *رمز جدید* را وارد کنید:" ); setStep($from_id, "admin:resetpass_newpass:$username"); die; } $newHash = password_hash($newPass, PASSWORD_DEFAULT); $queryUpdate = " UPDATE `accounts` SET `password` = ? WHERE `username` = ? "; $stmt = $pdo->prepare($queryUpdate); $stmt->execute([$newHash, $username]); $queryLogout = " UPDATE `users` SET `logged_in` = 0, `login_username` = NULL WHERE `login_username` = ? "; $stmtLogout = $pdo->prepare($queryLogout); $stmtLogout->execute([$username]); setStep($from_id, "admin_panel"); sendMessage( $from_id, "✅ *بازیابی رمز عبور با موفقیت انجام شد*\n\n" . "👤 کاربر: `{$username}`\n" . "🔑 رمز جدید: `{$newPass}`\n\n" . "تمام جلسات فعال کاربر از سیستم خارج شدند." , $backToAdminKeyboard ); die; } if ($text == "➕ افزودن ادمین" && isAdmin($user->login_username)) { sendMessage( $from_id, "👤 لطفاً *نام کاربری* فردی که میخواهید ادمین شود را وارد کنید:", $backToAdminKeyboard ); setStep($from_id, "admin:add-admin"); die; } if ($user->step == "admin:add-admin" && isAdmin($user->login_username)) { $uname = trim($text); $stmt = $pdo->prepare("SELECT username, is_admin FROM accounts WHERE username = ? LIMIT 1"); $stmt->execute([$uname]); $acc = $stmt->fetch(); if (!$acc) { sendMessage($from_id, "❌ کاربری با این نام یافت نشد.\nنام کاربری صحیح را وارد کنید:"); die; } // آیا از قبل ادمین است؟ if ($acc->is_admin == 1) { sendMessage($from_id, "ℹ️ این کاربر از قبل ادمین بوده است.", $adminMainKeyboard); setStep($from_id, "admin_panel"); die; } // افزودن به ادمینها $stmt = $pdo->prepare("UPDATE accounts SET is_admin = 1 WHERE username = ?"); $stmt->execute([$uname]); sendMessage( $from_id, "✅ کاربر `{$uname}` با موفقیت ادمین شد.", $adminMainKeyboard ); setStep($from_id, "admin_panel"); die; } if ($text == "➖ حذف ادمین" && isAdmin($user->login_username)) { sendMessage( $from_id, "👤 نام کاربری ادمینی که میخواهید حذف شود را ارسال کنید:", $backToAdminKeyboard ); setStep($from_id, "admin:remove-admin"); die; } if ($user->step == "admin:remove-admin" && isAdmin($user->login_username)) { $uname = trim($text); // آیا کاربر وجود دارد؟ $stmt = $pdo->prepare("SELECT username, is_admin FROM accounts WHERE username = ? LIMIT 1"); $stmt->execute([$uname]); $acc = $stmt->fetch(); if (!$acc) { sendMessage($from_id, "❌ کاربری با این نام یافت نشد.\nدوباره ارسال کنید:"); die; } // جلوگیری از حذف ادمین اصلی خودش if ($uname == $user->login_username) { sendMessage($from_id, "⚠️ نمیتوانید *خودتان* را از مدیریت حذف کنید.", $adminMainKeyboard); setStep($from_id, "admin_panel"); die; } // اگر اصلاً ادمین نبود if ($acc->is_admin == 0) { sendMessage($from_id, "ℹ️ این کاربر جزو ادمینها نبوده است.", $adminMainKeyboard); setStep($from_id, "admin_panel"); die; } // حذف ادمین $stmt = $pdo->prepare("UPDATE accounts SET is_admin = 0 WHERE username = ?"); $stmt->execute([$uname]); sendMessage( $from_id, "🗑 ادمین `{$uname}` با موفقیت حذف شد.", $adminMainKeyboard ); setStep($from_id, "admin_panel"); die; }
Simpan
Batal
Isi Zip:
Unzip
Create
Buat Folder
Buat File
Terminal / Execute
Run
Chmod Bulk
All File
All Folder
All File dan Folder
Apply