www.pudn.com > sangoku_26_zh_tw.rar > admin.cgi


#!/usr/bin/perl 
 
################################################################# 
#   【免責事項】                                                # 
#    這個腳本是免費軟體。使用了這個腳本的任何損失作者不承擔一切 # 
#    的責任。有關設定的問題對支援公告版提出。或直接由於郵件說明 # 
#    問題。                                                     # 
################################################################# 
 
require 'jcode.pl'; 
require './ini_file/index.ini'; 
require 'suport.pl'; 
 
if($MENTE) { &ERR2("系統維護中。請稍後再試。"); } 
&DECODE; 
 
if(!$ADMIN_SET) { &ERR2("使用管理工具與設定。"); } 
	$adminid = "admin"; 
	$adminpass = "admin"; 
 
if($mode eq 'CHANGE') { &CHANGE; } 
elsif($mode eq 'MENTE') { &MENTE; } 
elsif($mode eq 'MENTE2') { &MENTE2; } 
elsif($mode eq 'CHANGE2') { &CHANGE2; } 
elsif($mode eq 'BBS') { &BBS; } 
elsif($mode eq 'DEL') { &DEL; } 
elsif($mode eq 'DEL2') { &DEL2; } 
elsif($mode eq 'DEL_LIST') { &DEL_LIST; } 
elsif($mode eq 'ALL_DEL') { &ALL_DEL; } 
elsif($mode eq 'INIT_DATA') { &INIT_DATA; } 
else{⊤} 
 
 
#_/_/_/_/_/_/_/_/_/# 
#_/   MAIN畫面   _/# 
#_/_/_/_/_/_/_/_/_/# 
 
sub TOP { 
 
	if($in{'id'} ne "$adminid" || $in{'pass'} ne "$adminpass"){ 
	&ERR2("帳號、密碼錯誤 請返回首頁 $num ");} 
 
 
	&HEADER; 
 
	print <<"EOM"; 
 
         
 
 

管理工具首頁

管理目錄
•編輯會員帳號資料庫。一般都在此修改。註冊玩家數量不能使用增加的\可\能\性。
劃清界限=================================劃清界限=================================
劃清界限=================================劃清界限=================================
劃清界限=================================劃清界限=================================
劃清界限=================================劃清界限=================================
劃清界限=================================劃清界限=================================
劃清界限=================================劃清界限=================================
劃清界限=================================劃清界限=================================
•格式到三國遊戲設定早期年份。
管理員 專用留言板
發話內容: 名稱:
防刷機制剩下

↓↓↓以下屬於管理員留言板↓↓↓
EOM open(IN,"$ADMIN_BBS"); @A_BBS = ; close(IN); # 管理者筆記 print "
@A_BBS
"; &FOOTER; exit; } #_/_/_/_/_/_/_/_/_/# #_/ MENTE畫面 _/# #_/_/_/_/_/_/_/_/_/# sub MENTE { if($in{'id'} ne "$adminid" || $in{'pass'} ne "$adminpass"){ &ERR2("帳號、密碼錯誤 $num ");} $dir="./charalog/main"; opendir(dirlist,"$dir"); $i=0; while($file = readdir(dirlist)){ if($file =~ /\.cgi/i){ $datames = "檢索:$dir/$file
\n"; if(!open(page,"$dir/$file")){ $datames .= "$dir/$file 沒找到。
\n"; return 1; } @page = ; close(page); $list[$i]="$file"; ($eid,$epass,$ename,$echara,$estr,$eint,$elea,$echa,$esol,$egat,$econ,$egold,$erice,$ecex,$eclass,$earm,$ebook,$ebank,$esub1,$esub2,$epos,$emes,$ehost,$edate,$email,$eos) = split(/<>/,$page[0]); if("$in{'serch'}" ne ""){ if("$ename" =~ "$in{'serch'}"){ $human_data[$i]="$ehost<>$ename<>$eid<>"; }else{ next; } }else{ if($in{'no'} eq "2"){ $human_data[$i]="$ename<>$ehost<>$eid<>"; }elsif($in{'no'} eq "3"){ $human_data[$i]="$eid<>$ehost<>$ename<>"; }else{ $human_data[$i]="$ehost<>$ename<>$eid<>"; } } push(@newlist,"@page
"); $i++; } } closedir(dirlist); @human_data = sort @human_data; $tt = time - (60 * 60 * 24 * 34); ($sec,$min,$hour,$mday,$mon,$year,$wday,$yday) = localtime($tt); $year += 1900; $mon++; $ww = (Sun,Mon,Tue,Wed,Thu,Fri,Sat)[$wday]; $daytime = sprintf("%4d\/%02d\/%02d\/(%s) %02d:%02d:%02d", $year,$mon,$mday,$ww,$hour,$min,$sec); &HEADER; print <<"EOM";

刪除雙重帳號

•雙重註冊嫌疑犯強制刪除(勿用此項目~指定的是全部帳號都刪除)。
← 刪除所有帳號 或 雙重註冊帳號
如出現以下紅色訊息,就是雙重註冊嫌疑犯

$mess


帳號管理工具


•帳號名稱 跟 資料庫的檔案名稱相同 請勿隨意更改帳號 避免資料庫錯亂。
• 角色名隨時更新。帳號
顯示可編輯帳號:
對照上方排列            帳號   角色名稱  註冊IP

IP排列(檢查IP註冊雙重註冊
角色名稱排列
帳號排列
名前檢索

防刷機制剩下
EOM open(IN,"$ADMIN_LIST"); @A_LOG = ; close(IN); print "@A_LOG"; &FOOTER; exit; } #_/_/_/_/_/_/_/_/_/_/_/# #_/ DEL LIST畫面 _/# #_/_/_/_/_/_/_/_/_/_/_/# sub DEL_LIST { if($in{'id'} ne "$adminid" || $in{'pass'} ne "$adminpass"){ &ERR2("帳號、密碼錯誤 $num ");} $tt = time - (60 * 60 * 24 * 34); ($sec,$min,$hour,$mday,$mon,$year,$wday,$yday) = localtime($tt); $year += 1900; $mon++; $ww = (Sun,Mon,Tue,Wed,Thu,Fri,Sat)[$wday]; $daytime = sprintf("%4d\/%02d\/%02d\/(%s) %02d:%02d:%02d", $year,$mon,$mday,$ww,$hour,$min,$sec); $dir="./charalog/main"; opendir(dirlist,"$dir"); $i=0; while($file = readdir(dirlist)){ if($file =~ /\.cgi/i){ $datames = "檢索:$dir/$file
\n"; if(!open(page,"$dir/$file")){ $datames .= "$dir/$file 沒找到。
\n"; return 1; } @page = ; close(page); $list[$i]="$file"; ($eid,$epass,$ename,$echara,$estr,$eint,$elea,$echa,$esol,$egat,$econ,$egold,$erice,$ecex,$eclass,$earm,$ebook,$ebank,$esub1,$esub2,$epos,$emes,$ehost,$edate,$email,$eos) = split(/<>/,$page[0]); if($edate < $tt){ $i++; ($sec2,$min2,$hour2,$mday2,$mon2,$year2,$wday2,$yday2) = localtime($edate); $mon2++; $last_login = "$mon2月$mday2日$hour2時$min2分"; $LIST .= "$ename$eid$email$last_login"; } } } closedir(dirlist); @human_data = sort @human_data; $a = "ss"; $dir="./charalog/main"; unlink("$dir/$a\.cgi"); &HEADER; print <<"EOM";

刪除多重帳號&或帳號全部刪掉


刪除文件

$LIST
名稱IDMAIL最後更新
>>刪掉以上的人。合適嗎


EOM &FOOTER; exit; } #_/_/_/_/_/_/_/_/_/# #_/ 文件刪除 _/# #_/_/_/_/_/_/_/_/_/# sub ALL_DEL { if($in{'id'} ne "$adminid" || $in{'pass'} ne "$adminpass"){ &ERR2("輸入帳號跟密碼錯誤 $num ");} $tt = time - (60 * 60 * 24 * 34); $dir="./charalog/main"; opendir(dirlist,"$dir"); $i=0; while($file = readdir(dirlist)){ if($file =~ /\.cgi/i){ $datames = "檢索:$dir/$file
\n"; if(!open(page,"$dir/$file")){ $datames .= "$dir/$file 沒找到。
\n"; } @page = ; close(page); $list[$i]="$file"; ($eid,$epass,$ename,$eurl,$echara,$esex,$ehp,$emaxhp,$emp,$emaxmp,$eele,$estr,$evit,$eint,$emen,$eagi,$ecom,$egold,$e_ex,$ecex,$eunit,$econ,$earm,$epro,$eacc,$esub1,$esub2,$etac,$esta,$epos,$emes,$ehost,$edate,$esyo,$eclass,$etotal,$ekati) = split(/<>/,$page[0]); if($edate < $tt){ $dir2="./charalog/main"; unlink("$dir2/$eid\.cgi"); $dir2="./charalog/bank"; unlink("$dir2/$eid\.cgi"); $dir2="./charalog/arm"; unlink("$dir2/$eid\.cgi"); $dir2="./charalog/item"; unlink("$dir2/$eid\.cgi"); $dir2="./charalog/chara_max"; unlink("$dir2/$eid\.cgi"); $dir2="./charalog/map"; unlink("$dir2/$eid\.cgi"); $i++; } } } closedir(dirlist); &HOST_NAME; &TIME_DATA; unshift(@S_MOVE,"\[刪除\] 刪掉了34日以後登入的沒有的帳號(或是刪除全部帳號)。($mday日$hour時$min分)
\n"); splice(@S_MOVE,20); open(OUT,">$MAP_LOG_LIST") or &ERR2('紀錄 不能寫上新的數據。'); print OUT @S_MOVE; close(OUT); &HEADER; print <<"EOM";

刪掉了所有帳號(刪掉 共$i名)。



EOM &FOOTER; exit; } #_/_/_/_/_/_/_/_/_/# #_/ WRITE畫面 _/# #_/_/_/_/_/_/_/_/_/# sub BBS { &TIME_DATA; if($in{'id'} ne "$adminid" || $in{'pass'} ne "$adminpass"){ &ERR2("帳號、密碼錯誤 $num ");} open(IN,"$ADMIN_BBS"); @AD_DATA = ; close(IN); if($in{'message'} eq "") { &ERR2("消息沒有被寫上。"); } $bbs_num = @AD_DATA; if($bbs_num > 40) { pop(@AD_DATA); } unshift(@AD_DATA,"$in{'message'} $in{'name'} ($mday日$hour時$min分)

\n"); open(OUT,">$ADMIN_BBS"); print OUT @AD_DATA; close(OUT); &HEADER; print <<"EOM";

發言完成。


EOM &FOOTER; exit; } #_/_/_/_/_/_/_/_/_/# #_/ 編輯畫面 _/# #_/_/_/_/_/_/_/_/_/# sub CHANGE { if($in{'id'} ne "$adminid" || $in{'pass'} ne "$adminpass"){ &ERR2("帳號、密碼錯誤 $num ");} $dir="./charalog/main"; if(!open(page,"$dir/$in{'fileno'}")){ $datames .= "$dir/$file 沒找到。
\n"; return 1; } @page = ; close(page); ($eid,$epass,$ename,$echara,$estr,$eint,$elea,$echa,$esol,$egat,$econ,$egold,$erice,$ecex,$eclass,$earm,$ebook,$ebank,$esub1,$esub2,$epos,$emes,$ehost,$edate,$email,$eos) = split(/<>/,$page[0]); ($sec,$min,$hour,$mday,$mon,$year,$wday,$yday) = localtime($edate); $year += 1900; $mon++; $ww = (Sun,Mon,Tue,Wed,Thu,Fri,Sat)[$wday]; $daytime = sprintf("%4d\/%02d\/%02d\/(%s) %02d:%02d:%02d", $year,$mon,$mday,$ww,$hour,$min,$sec); &HEADER; print <<"EOM";
  刪除會紀錄榜上
  刪除不紀錄
防刷機制剩下

$ename 個人資料文件

帳號 密碼 角色 圖像
武力 智力 統率 人望
兵數 訓練 國編 金錢
米糧 貢獻 官值 武器
書籍 忠誠 輔助1 輔助2
目前都市 消息 註IP 更新日時
信箱 認證

認證位址欄 0 代表認證沒通過 1 代表認證已通過
管理各欄位解釋
帳號會員所申請的登錄名稱 密碼會員所申請的登錄密碼 角色遊戲人物的名稱 圖像遊戲人物的圖片編號
武力設定該角色武力值 智力設定該角色智力值 統率設定該角色統率值 人望設定該角色人望值
兵數設定該角色帶兵量 訓練設定該角色兵種訓練度 國編設定該角色所屬國家 金錢該角色擁有多少金錢
米糧設定該角色擁有多少米 貢獻設定該角色為國貢獻度 官值設定該角色官位經驗 武器該角色擁有武器編號
書籍該角色擁有書籍編號 忠誠設定該角色為國忠誠度 輔助1未定義 輔助2未定義
目前都市該武將所在城市 消息未查詢 註IP該角色註冊IP 更新日時該角色更新次數
信箱該帳號註冊信箱 認證角色認證

EOM &FOOTER; exit; } #_/_/_/_/_/_/_/_/_/# #_/ 編輯畫面 _/# #_/_/_/_/_/_/_/_/_/# sub CHANGE2 { if($in{'id'} ne "$adminid" || $in{'pass'} ne "$adminpass"){ &ERR2("帳號、密碼錯誤 $num ");} $dir="./charalog/main"; $newdata = "$in{'eid'}<>$in{'epass'}<>$in{'ename'}<>$in{'echara'}<>$in{'estr'}<>$in{'eint'}<>$in{'elea'}<>$in{'echa'}<>$in{'esol'}<>$in{'egat'}<>$in{'econ'}<>$in{'egold'}<>$in{'erice'}<>$in{'ecex'}<>$in{'eclass'}<>$in{'earm'}<>$in{'ebook'}<>$in{'ebank'}<>$in{'esub1'}<>$in{'esub2'}<>$in{'epos'}<>$in{'emes'}<>$in{'ehost'}<>$in{'edate'}<>$in{'email'}<>$in{'eos'}<>\n"; open(page,">$dir/$in{'fileno'}"); print page $newdata; close(page); &HOST_NAME; &ADMIN_LOG("$in{'ename'} $dir/$in{'fileno'}最後更新記錄。登錄IP位置「$host」"); &HEADER; print <<"EOM";

$in{'ename'}的文件紀錄$dir/$in{'fileno'}已經更新。



EOM &FOOTER; exit; } #_/_/_/_/_/_/_/_/_/# #_/ 文件刪掉 _/# #_/_/_/_/_/_/_/_/_/# sub DEL { if($in{'id'} ne "$adminid" || $in{'pass'} ne "$adminpass"){ &ERR2("帳號、密碼錯誤 $num ");} &HOST_NAME; open(IN,"./charalog/main/$in{'filename'}") or &ERR2('不能刪掉文件。'); @CN_DATA = ; close(IN); ($kid,$kpass,$kname) = split(/<>/,$CN_DATA[0]); $dir2="./charalog/main"; unlink("$dir2/$in{'filename'}"); $dir2="./charalog/log"; unlink("$dir2/$in{'filename'}"); $dir2="./charalog/command"; unlink("$dir2/$in{'filename'}"); &ADMIN_LOG("管理員將$kname該帳號已經刪除。「管理員執行紀錄 IP $host」 "); open(IN,"$MAP_LOG_LIST"); @S_MOVE = ; close(IN); &TIME_DATA; open(IN,"$DEF_LIST"); @DEF_LIST = ; close(IN); @NEW_DEF_LIST_DEL=(); foreach(@DEF_LIST){ ($tid,$tname,$ttown_id,$ttown_flg,$tcon) = split(/<>/); if("$tid" eq "$kid"){ }else{ push(@NEW_DEF_LIST_DEL,"$_"); } } open(OUT,">$DEF_LIST"); print OUT @NEW_DEF_LIST_DEL; close(OUT); unshift(@S_MOVE,"\[刪除\] $kname 被刪除。管理員執行紀錄 IP($mday日$hour時$min分)
\n"); splice(@S_MOVE,20); open(OUT,">$MAP_LOG_LIST") or &ERR2('新的數據不能寫上紀錄。'); print OUT @S_MOVE; close(OUT); &HEADER; print <<"EOM";

$kname 已經刪除。



EOM &FOOTER; exit; } #_/_/_/_/_/_/_/_/_/# #_/ 文件刪除 _/# #_/_/_/_/_/_/_/_/_/# sub DEL2 { if($in{'id'} ne "$adminid" || $in{'pass'} ne "$adminpass"){ &ERR2("帳號、密碼錯誤 $num ");} &HOST_NAME; open(IN,"./charalog/main/$in{'filename'}") or &ERR2('不能刪除文件。'); @CN_DATA = ; close(IN); ($kid,$kpass,$kname) = split(/<>/,$CN_DATA[0]); $dir2="./charalog/main"; unlink("$dir2/$in{'filename'}"); $dir2="./charalog/log"; unlink("$dir2/$in{'filename'}"); $dir2="./charalog/command"; unlink("$dir2/$in{'filename'}"); &ADMIN_LOG("$kname 已經刪除。「$host」 "); open(IN,"$DEF_LIST"); @DEF_LIST = ; close(IN); @NEW_DEF_LIST_DEL=(); foreach(@DEF_LIST){ ($tid,$tname,$ttown_id,$ttown_flg,$tcon) = split(/<>/); if("$tid" eq "$kid"){ }else{ push(@NEW_DEF_LIST_DEL,"$_"); } } open(OUT,">$DEF_LIST"); print OUT @NEW_DEF_LIST_DEL; close(OUT); &HEADER; print <<"EOM";

$kname 已經刪除。



EOM &FOOTER; exit; } #_/_/_/_/_/_/_/_/_/# #_/ 管理者紀錄 _/# #_/_/_/_/_/_/_/_/_/# sub ADMIN_LOG { open(IN,"$ADMIN_LIST"); @A_LOG = ; close(IN); &TIME_DATA; unshift(@A_LOG,"$_[0]($mday日$hour時$min分)
\n"); splice(@A_LOG,20); open(OUT,">$ADMIN_LIST") or &ERR2('新的數據不能寫上紀錄。'); print OUT @A_LOG; close(OUT); } #_/_/_/_/_/_/_/_/_/# #_/ 初期化 _/# #_/_/_/_/_/_/_/_/_/# sub INIT_DATA { if($in{'id'} ne "$adminid" || $in{'pass'} ne "$adminpass"){ &ERR2("帳號、密碼錯誤 $num ");} require "reset.cgi"; &RESET_MODE; &HOST_NAME; &ADMIN_LOG("遊戲資料已經全部格式化。[$host]"); &HEADER; print <<"EOM";

遊戲資料已經全部格式化。




EOM &FOOTER; exit; } 1;