TOP > 野良猫のCGI講座 > 5.「劇ぱわ2」改造方法 > 管理画面でチーム名・監督名・パスワード・アイコン変更
凡田クンが教えます! 【初心者コース】 虎猫が教えます♪
『5.「劇ぱわ2」改造方法』

管理画面でチーム名・監督名・パスワード・アイコン変更
おことわり
ここに記載してある「セキュリティ対策」「不具合対策」「改造方法」を含む全てのコンテンツの無断転載を禁止します。

参考にされる方の自己責任でご覧下さい。
参考にされた方は、リンクを貼ってくれると嬉しいです♪
『参考:"Take it easy !"』
URL:http://ryoquest.sakura.ne.jp/
バナー:tie_8831an.gif(3611 byte)
当サイトの改造スクリプトを使用された方は、
当サイトトップページにリンクを貼って下さい♪
参考にされる方は、下のリンクからクリック募金をして下さい♪
あなたの善意をクリックにのせて♪
アドバイス!
@コピペ(コピー&ペースト)
改造方法をコピペで写す事は出来るだけ止めましょう。
『500エラー』がよく出ます。
原因は、コピーした時に不要な物(と言うか、あってはならない物)までコピーしてしまう事が有るからです。
例えば、空白(全角)が含まれているとか、HTMLのスクリプトがコピーされちゃったとか^^
面倒だけど、出来るだけ「打つべし!」(間違えない様に♪)
コピペするなら、「1行づつコピペするべし!」(おかしな空白がないか、おかしな改行がないか、気を付けながら♪)
A意味を考えながら、改造法を参考にしましょう
単純にコピペして、改造終了!なんて事は、止めましょう!
改造されたスクリプトの意味を考えながら参考にすれば、参考資料が間違っていても自分で改造できます。
『ちゃんとコピーしたのに動かない!』と嘆く前に、何故、こうすると改造できるのかを考える様にしましょう。
スクリプトの意味や、組み立て方が分かってきます♪
そうすれば、
『投手4人制』も自分で改造出来ちゃいます♪
画面下にリンク先を追加する
「劇ぱわ」の下部著作権部分に「Take it easy!」へのリンクを貼って下さい。

##### 著作権表示
sub chosaku{
print <<"_CHOSAKU_";
</center>
<hr size="1">
<div align="right"><a href="http://homepage2.nifty.com/osktaka/" target="_blank"
title="気ままなまま"><font size="2">劇空間ぱわふるリーグ2 ver 3.00b (Free)</font></a></div>
<div align="right"><a href="http://ryoquest.sakura.ne.jp/" target="_blank" title="改造:"Take it easy !"RYOQUEST presents(虎猫 presents)"><font size="2">改造:"Take it easy !"RYOQUEST presents(虎猫 presents)</font></a></div>
<!--広告バナー挿入位置、ページ下部-->
</body>
</html>
_CHOSAKU_
}#end chosaku


すると下記の様に表示されます。
管理画面でチーム名・監督名・パスワード・アイコン変更
「劇ぱわ」管理者を手助けする改造です。
管理画面中でチームデータを表示し、
「チーム名」「監督名」「パスワード」「アイコン」の変更を出来る様に改造します。
user.datファイルをエディタで編集する煩わしさを解消します。
参加者からの「チーム名」「監督名」の変更依頼や、
「パスワード」変更によるログイン禁止、
「専用アイコン」への変更などに大いに使えると思います♪
(最後に記載してある【使用上の注意】もよく読んで下さい。)


gekipawa.cgi(90行目付近だと思う……^^;)

if($form{'rule'}) { &rule; exit; }
&top;
exit;
##### デコード&ローカル変数へ受け渡し


ここに1行追加します。(
赤字部分


if($form{'rule'}) { &rule; exit; }
if($form{'henko'}) { require './geki_login.cgi'; &henko; &kanri; exit; } # 管理機能追加
&top;
exit;
##### デコード&ローカル変数へ受け渡し



geki_login.cgi(304行目付近だと思う……^^;)

if($form{'kanri_mode'}){
print "管理モード画面です。\n";
}elsif($win + $lose >= $league_game){
print "1回のリーグは$league_game試合までだよ。次のリーグが始まるまで待っててね。\n";

ここに11行程追加します。(
赤字部分

if($form{'kanri_mode'}){
print "管理モード画面です。\n";
# 管理モード機能追加
$kanri_team_check = $team;
print "<br><br><center><TABLE border=\"1\" cellpadding=\"5\"><TBODY>\n";
print "<TR align=\"center\"><TD></TD><TD>変更前</TD><TD>変更後</TD></TR>\n";
print "<TR><TD>チーム名</TD><TD>(<b>$kanri_team_check</b>)</TD><TD><input type=text value=$team name=team_s size=20></TD></TR>\n";
print "<TR><TD>監督</TD><TD>(<b>$saku</b>)</TD><TD><input type=text value=$saku name=saku_s size=20></TD></TR>\n";
print "<TR><TD>アイコン</TD><TD>(<b>$icon</b>)</TD><TD><input type=text value=$icon name=icon_s size=20></TD></TR>\n";
print "<TR><TD>パスワード</TD><TD>(<b>$pass</b>)</TD><TD><input type=text value=$pass name=pass_s size=20></TD></TR>\n";
print "<TR><TD align=\"center\" colspan=\"3\">\n";
print "<br><input type=submit name=henko value=\"チームデータ変更する?\">\n";
print "<br><br></TR>\n";
print "</TBODY></TABLE></center>\n";
# 管理機能追加 ここまで

}elsif($win + $lose >= $league_game){
print "1回のリーグは$league_game試合までだよ。次のリーグが始まるまで待っててね。\n";



geki_login.cgi(327行目付近だと思う……^^;)

_EOF_
&footer;
&chosaku;
}#end login
##### 試合登録確認


ここに1行入れます。(
赤字部分

_EOF_

print "<input type=hidden name=kanri_team_check value=\"$kanri_team_check\">"; # 管理機能追加

&footer;
&chosaku;
}#end login
##### 試合登録確認



geki_login.cgi(最後の2行です)

}#end delete
<< ここに入れてね >>
1;

<< ここに入れてね >>< ここから > < ここまで >を入れて下さい。

}#end delete

#------------< ここから >--------------------- (←この行は無くてもOK!)
#### チームデータ変更(管理用)
sub henko{

$kanri_team_check = $form{'kanri_team_check'};
$team_s = $form{'team_s'};
$saku_s = $form{'saku_s'};
$icon_s = $form{'icon_s'};
$pass_s = $form{'pass_s'};

# ロック開始
open(GL,"+<$leaguefold/$lockfile") || &error('指定されたファイルが開けません。');
eval 'flock(GL,2);';
@gamelock = <GL>;
($gamecheck, $gametime) = split(/<>/, $gamelock[0]);
if($gamecheck eq 0 || $times > $gametime + 60 * 2){
$gamelock = "1<>$times<>\n";
}else{ &error('メンテナンス中です。もうちょっと待っててね。'); }
truncate (GL, 0);
seek(GL,0,0); print GL $gamelock;
close(GL);
eval 'flock(GL,8);';
# ロック終了

open(US,"+<$leaguefold/$userfile") || &error('指定されたファイルが開けません。');
eval 'flock(US,2);';

@users = <US>;
foreach(@users){
($checksaku,$checkpass,$d,$checkteam) = split /<p>/;
($saku, $pass, $home, $team, $icon, $date, $ip, $teamdata, $pointdata, $bosstype, $charadata, $gamedata, $campflag) = split /<p>/;

if($team eq $kanri_team_check){
$_ = "$saku_s<p>$pass_s<p>$home<p>$team_s<p>$icon_s<p>$date<p>$ip<p>$teamdata<p>$pointdata<p>$bosstype<p>$charadata<p>$gamedata<p>$campflag<p>\n";
last;
}
}
truncate (US, 0);
seek(US,0,0); print US @users;
close(US);
eval 'flock(US,8);';

# ロック解除
$gamelock = "0<>$times<>\n";
open(GL,"+<$leaguefold/$lockfile") || &error('指定されたファイルが開けません。');
eval 'flock(GL,2);';
truncate (GL, 0);
seek(GL,0,0); print GL $gamelock;
close(GL);
eval 'flock(GL,8);';
# ロック解除終了

$form{'$key'} = "kanri";
$form{'kanripass'} = $kanri_pass;

} #end_henko
#------------
< ここまで >--------------------- (←この行は無くてもOK!)

1;



【使用上の注意】
用量用法を守って正しくお使い下さい。(ピンポ〜ン♪)
管理画面中のチーム表示の下に、
「チーム名」「監督名」「パスワード」「アイコン(画像ファイル名)」が表示されます。
変更したい項目を書き換えて、「チームデータ変更する?」をクリックして下さい。
文字数チェックなどは行っていません。(ご自分で確認して入力して下さい。)
アイコン(画像ファイル)の指定は、拡張子(.gif)まで入力して下さい。
メンテナンス中には使用できません。通常の状態で使用して下さい。
作業中に試合が行われても参加者には「メンテナンス中」と表示します。(書き込み作業の一瞬だけです。)
運悪く、試合と重なった場合は、書きかえられません。(ほんの一瞬のタイミングで……)
書き換えられなかった場合は、作業をやり直して下さい。

ホームページURLなど他の項目も変更したい方は、ご自分で追加しましょう♪

参考にされた方は、リンクを貼ってくれると嬉しいです♪
『参考:"Take it easy !"』
URL:http://ryoquest.sakura.ne.jp/
バナー:tie_8831an.gif(3611 byte)
当サイトの改造スクリプトを使用された方は、
当サイトトップページにリンクを貼って下さい♪
2005/06/20
TOP > 野良猫のCGI講座 > 5.「劇ぱわ2」改造方法 > 管理画面でチーム名・監督名・パスワード・アイコン変更