# GMR for Keitai sub routine
# ver 0.5
sub header_i{
print "Content-type: text/html\n\n";
print "
$topic\n";
}
sub footer_i{
print "";
}
sub list_i{
&get_cookie;
if(!open(IN,"$datafile")){&error_message('datafile error','data file access failed.');}
@all=;
close IN;
$sort=16;
$mode=r;
&sort_table;
$count=0;
$pagenow=1;
foreach $i (@all){
($no,$name,$pass,$anon,$race,$relm,$mainjob,$supportjob,$prof,$handle,$polhn,$mail,$home,$comment2,$point,$class,$time,$comment,$mrank,$etc[0],$etc[1],$etc[2],$prod[0],$prod[1],$prod[2],$prod[3],$prod[4],$prod[5],$prod[6],$prod[7],$prod[8],$prod[9],$prod[10],$prod[11],$prod[12],$prod[13],$prod[14],$prod[15],$lev[0],$lev[1],$lev[2],$lev[3],$lev[4],$lev[5],$lev[6],$lev[7],$lev[8],$lev[9],$lev[10],$lev[11],$lev[12],$lev[13],$lev[14],$lev[15])=split(/\t/,$i);
$count++;
if($count==15){$count=0;$pagenow++;}
if($pagenow==$page){
$date=substr($time,0,8);
$diary="";
$diaryfile="$diarydir$name.$diaryletter";
if(-e "$diaryfile"){
if((-M $diaryfile)<1){
$diary.="UP!";
}
print "$date:$name";
print " ■$diary
";
}
else{
print "$date:$name
";
}
}
}
$page++;
print "
Next";
print "
ListTop";
print <<"EOM";
新規
";
}
sub prof_i{
print "Profile: $name
";
if(!open(IN,"$datafile")){&error_message('datafile error2098','data file access failed.');}
@all=;
close IN;
$match="";
foreach $i(@all){
($r_no,$r_name,$r_pass,$r_dummy)=split(/\t/,$i);
if($r_name eq $name){
$match=$i;
}
}
if($match eq ""){&header; &error_message('id/pass error','access failed.');}
($no,$name,$pass,$anon,$race,$relm,$mainjob,$supportjob,$prof,$handle,$polhn,$mail,$home,$comment2,$point,$class,$time,$comment,$mrank,$etc[0],$etc[1],$etc[2],$prod[0],$prod[1],$prod[2],$prod[3],$prod[4],$prod[5],$prod[6],$prod[7],$prod[8],$prod[9],$prod[10],$prod[11],$prod[12],$prod[13],$prod[14],$prod[15],$lev[0],$lev[1],$lev[2],$lev[3],$lev[4],$lev[5],$lev[6],$lev[7],$lev[8],$lev[9],$lev[10],$lev[11],$lev[12],$lev[13],$lev[14],$lev[15])=split(/\t/,$match);
if($class_edit==0){
$class =~ s/<//g;
}
print "$no/[$class]
";
print "$racelist[$race]($facetypename[$etc[0]])/$relmlistl[$relm]/$point/rank $mrank
";
if(($anon ne "on") || ($anon_mode != 1 )){
if($lev[$mainjob]<10){
$main_level="0$lev[$mainjob]";
} else {
$main_level=$lev[$mainjob];
}
if($supportjob <99){
$mod_level=int($lev[$mainjob]/2);
if($mod_level==0){$mod_level=1;}
if($mod_level>$lev[$supportjob]){$mod_level=$lev[$supportjob];}
if($mod_level<10){
$mod_level="0$mod_level";
}
print "$joblist[$mainjob]$main_level/$joblist[$supportjob]$mod_level
";
} else {
print "
$joblist[$mainjob]$main_level
";
}
print "ジョブレベル
";
for ($j=0;$j<$job_max;$j++){
print "$joblist[$j]:$lev[$j]
";
}
print "合成
";
for ($j=0;$j<$prod_max;$j++){
print "$prodlist[$j]:$prod[$j]
";
}
}
print "コメント[$comment]
";
if($prof ne "off"){
print "ハンドル[$handle]
";
print "POLハンドル[$polhn]
";
print "e-mail[$mail]
";
print "ホームページ[$home]
";
print "コメント
$comment2";
} else {
print "
プロフィール非公開";
}
print "
ListTop";
}
sub diary_i{
print "$name 's diary
";
if(!open(IN,"$datafile")){&error_message('datafile error2098','data file access failed.');}
@all=;
close IN;
$match="";
foreach $i(@all){
($r_no,$r_name,$r_pass,$r_dummy)=split(/\t/,$i);
if($r_name eq $name){
$match=$i;
}
}
if($match eq ""){&header; &error_message('id/pass error','access failed.');}
($no,$name,$pass,$anon,$race,$relm,$mainjob,$supportjob,$prof,$handle,$polhn,$mail,$home,$comment2,$point,$class,$time,$comment,$mrank,$etc[0],$etc[1],$etc[2],$prod[0],$prod[1],$prod[2],$prod[3],$prod[4],$prod[5],$prod[6],$prod[7],$prod[8],$prod[9],$prod[10],$prod[11],$prod[12],$prod[13],$prod[14],$prod[15],$lev[0],$lev[1],$lev[2],$lev[3],$lev[4],$lev[5],$lev[6],$lev[7],$lev[8],$lev[9],$lev[10],$lev[11],$lev[12],$lev[13],$lev[14],$lev[15])=split(/\t/,$match);
$diaryfile="$diarydir$name.$diaryletter";
if($diarybg ne ""){$dbg=" bgcolor=$diarybg";}
if (!open(DB,"$diaryfile")) {
print "$name さんの日記はありません。";
}
elsif($prof ne "off"){
@lines = ;
close(DB);
$pagenow=1;
foreach $i (@lines){
($no,$today2,$title,$body,$imgexist,$res)=split(/\t/,$i);
if($pagenow==$page){
print "●$title/$today2($no)
";
if($imgexist ne ""){print "[PC画像あり]
";}
if ($FORM{'all'} ne "true")
{
@diarylines = split(/
/,$body);
if ($#diarylines > 8)
{
$body = join("
", @diarylines[0..8])."(略
[全文を読む]";
}
}
print "$body";
if($res ne ""){print "
$res
";}
if($diaryres){
print "";
}
}
$pagenow++;
}
$page++;
print "
Next";
print "
DiaryTop";
print "
ListTop";
}
else {
print "$name さんの日記は非公開になっています。";
}
}
sub res_diary_i{
if($body eq ""){&header;&error_message('本文がありません','');}
if($name eq ""){&header;&error_message('名前がありません','');}
$diaryfile="$diarydir$name2.$diaryletter";
&dirlock;
if (!open(DB,"$diaryfile")) {
&header;
print "
";
} else {
@lines = ;
close(DB);
foreach $i(@lines){
($r_no,$r_today,$r_title,$r_body,$r_img,$r_res)=split(/\t/,$i);
if($no !=$r_no){
push(@out,$i);
} else {
$r_res =~ s/\n//g;
$body =~ s/
//g;
$r_res.="$name > $body ($today2)
";
$r_body =~ s/\n//g; #旧バージョン対策
push(@out,"$r_no\t$r_today\t$r_title\t$r_body\t$r_img\t$r_res\t\n");
}
}
if (!open(OUT,">$diaryfile")) {&header; &error_message('filesystem error','access failed.');}
print OUT @out;
close(OUT);
if(!open(IN,"$datafile")){&error_message('datafile error2480','data file access failed.');}
@all=;
close IN;
@out=();
foreach $i(@all){
($no,$r_name,$pass,$anon,$race,$relm,$mainjob,$supportjob,$prof,$handle,$polhn,$mail,$home,$comment2,$point,$class,$time,$comment,$mrank,$etc[0],$etc[1],$etc[2],$prod[0],$prod[1],$prod[2],$prod[3],$prod[4],$prod[5],$prod[6],$prod[7],$prod[8],$prod[9],$prod[10],$prod[11],$prod[12],$prod[13],$prod[14],$prod[15],$lev[0],$lev[1],$lev[2],$lev[3],$lev[4],$lev[5],$lev[6],$lev[7],$lev[8],$lev[9],$lev[10],$lev[11],$lev[12],$lev[13],$lev[14],$lev[15])=split(/\t/,$i);
if($r_name eq $name2){
push(@out,"$no\t$r_name\t$pass\t$anon\t$race\t$relm\t$mainjob\t$supportjob\t$prof\t$handle\t$polhn\t$mail\t$home\t$comment2\t$point\t$class\t$timenow\t$comment\t$mrank\t$etc[0]\t$etc[1]\t$etc[2]\t$prod[0]\t$prod[1]\t$prod[2]\t$prod[3]\t$prod[4]\t$prod[5]\t$prod[6]\t$prod[7]\t$prod[8]\t$prod[9]\t$prod[10]\t$prod[11]\t$prod[12]\t$prod[13]\t$prod[14]\t$prod[15]\t$lev[0]\t$lev[1]\t$lev[2]\t$lev[3]\t$lev[4]\t$lev[5]\t$lev[6]\t$lev[7]\t$lev[8]\t$lev[9]\t$lev[10]\t$lev[11]\t$lev[12]\t$lev[13]\t$lev[14]\t$lev[15]\t\n");
} else {
push(@out,$i);
}
}
if(!open(OUT,">$datafile")){&header; &error_message('datafile error2494','data file access failed.');}
print OUT @out;
close OUT;
rmdir($lockdir);
}
$name=$name2;
}
sub new_regist_i{
if(($g_pass ne $reg_pass && $reg_mode==0)){&error_message('illegal login','password is not correct.');}
if($mode eq "regist"){
&new_regist_regist_i;
} else {
&new_regist_normal_i;
}
}
sub new_regist_regist_i{
if(!open(IN,"$datafile")){&error_message('datafile error1791','data file access failed.');}
@all=;
close IN;
if( !($pass =~ /^[A-Za-z0-9_]+$/) ){
&error_message('そのパスワードは登録に利用できません。','パスワードは半角英数字で登録してください。');
}
if( !($name =~ /^[A-Za-z0-9_]+$/) ){
&error_message('その名前は使えません。','名前は半角英数字で登録してください。');
}
if($mainjob == $supportjob){&error_message('main/job error','メインとサポートは同一のジョブにはできません');}
$min_no=0;
foreach $i (@all){
($r_no,$r_user,$dummy)=split(/\t/,$i);
if($r_user eq $name){&error_message('already registed',"'$name' has already registed.");}
}
$no=$#all+2;
if($no<10){$no="0$no";}
if($no<100){$no="0$no";}
push(@all,"$no\t$name\t$pass\t$anon\t$race\t$relm\t$mainjob\t$supportjob\t$prof\t$handle\t$polhn\t$mail\t$home\t$comment2\t$point\t$class\t$timenow\t$comment\t$mrank\t$etc[0]\t$etc[1]\t$etc[2]\t$prod[0]\t$prod[1]\t$prod[2]\t$prod[3]\t$prod[4]\t$prod[5]\t$prod[6]\t$prod[7]\t$prod[8]\t$prod[9]\t$prod[10]\t$prod[11]\t$prod[12]\t$prod[13]\t$prod[14]\t$prod[15]\t$lev[0]\t$lev[1]\t$lev[2]\t$lev[3]\t$lev[4]\t$lev[5]\t$lev[6]\t$lev[7]\t$lev[8]\t$lev[9]\t$lev[10]\t$lev[11]\t$lev[12]\t$lev[13]\t$lev[14]\t$lev[15]\t\n");
&dirlock;
if(!open(OUT,">$datafile")){&error_message('datafile error1819','data file access failed.');}
print OUT @all;
close OUT;
rmdir($lockdir);
print "新規メンバー'$name'($no)の登録を完了しました。";
print "
ListTop";
}
sub new_regist_normal_i{
print <<"EOM";
必要事項を入力してください。
";
}
sub login_i {
if(!open(IN,"$datafile")){&header; &error_message('datafile error/system','data file access failed.');}
@all=;
close IN;
$match="";
foreach $i(@all){
($r_no,$r_name,$r_pass,$r_dummy)=split(/\t/,$i);
if($r_name eq $name && $pass eq $r_pass){
$match=$i;
}
}
if($match eq ""){&header; &error_message('id/pass error','access failed.');}
if ($mode ne "modify"){
&login_enter_i;
} else {
&login_modify_i;
}
}
sub login_enter_i {
($no,$name,$pass,$anon,$race,$relm,$mainjob,$supportjob,$prof,$handle,$polhn,$mail,$home,$comment2,$point,$class,$time,$comment,$mrank,$etc[0],$etc[1],$etc[2],$prod[0],$prod[1],$prod[2],$prod[3],$prod[4],$prod[5],$prod[6],$prod[7],$prod[8],$prod[9],$prod[10],$prod[11],$prod[12],$prod[13],$prod[14],$prod[15],$lev[0],$lev[1],$lev[2],$lev[3],$lev[4],$lev[5],$lev[6],$lev[7],$lev[8],$lev[9],$lev[10],$lev[11],$lev[12],$lev[13],$lev[14],$lev[15])=split(/\t/,$match);
print "MemberList Top
";
print "No. $no : '$name' 修正
";
#print "日記を修正・削除する記事番号
";
}
sub login_modify_i{
if($mainjob == $supportjob){&header; &error_message('main/job error','メインとサポートは同一のジョブにはできません');}
&dirlock;
if(!open(IN,"$datafile")){&error_message('datafile error2034','data file access failed.');}
@all=;
close IN;
$etc[2]=$ietc;
@out=();
foreach $i(@all){
($r_no,$r_name,$r_pass,$r_dummy)=split(/\t/,$i);
if($r_name eq $name && $pass eq $r_pass){
push(@out,"$r_no\t$name\t$pass\t$anon\t$race\t$relm\t$mainjob\t$supportjob\t$prof\t$handle\t$polhn\t$mail\t$home\t$comment2\t$point\t$class\t$timenow\t$comment\t$mrank\t$etc[0]\t$etc[1]\t$etc[2]\t$prod[0]\t$prod[1]\t$prod[2]\t$prod[3]\t$prod[4]\t$prod[5]\t$prod[6]\t$prod[7]\t$prod[8]\t$prod[9]\t$prod[10]\t$prod[11]\t$prod[12]\t$prod[13]\t$prod[14]\t$prod[15]\t$lev[0]\t$lev[1]\t$lev[2]\t$lev[3]\t$lev[4]\t$lev[5]\t$lev[6]\t$lev[7]\t$lev[8]\t$lev[9]\t$lev[10]\t$lev[11]\t$lev[12]\t$lev[13]\t$lev[14]\t$lev[15]\t\n");
} else {
push(@out,$i);
}
}
if(!open(OUT,">$datafile")){&header; &error_message('datafile error2048','data file access failed.');}
print OUT @out;
close OUT;
rmdir($lockdir);
print "修正終了";
print "
ListTop";
}
sub write_diary_i{
$diaryfile="$diarydir$name.$diaryletter";
if(!open(IN,"$datafile")){&header; &error_message('datafile error2249','data file access failed.');}
@all=;
close IN;
$match="";
foreach $i(@all){
($r_no,$r_name,$r_pass,$r_dummy)=split(/\t/,$i);
if($r_name eq $name && $pass eq $r_pass){
$match=$i;
}
}
if($match eq ""){&header; &error_message('id/pass error','access failed.');}
if ($mode eq "write"){
if($body eq ""){&header;&error_message('本文がありません','');}
if (!open(DB,"$diaryfile")) { @lines=(); }
@lines = ;
close(DB);
($maxno,$dummy1,$dummy2,$dummy3)=split(/\t/,$lines[0]);
$maxno++;
$fnt="";
if($imgexist){$fnt="$name$maxno.$fileexst";}
@lines=reverse(@lines);
push(@lines,"$maxno\t$today2\t$title\t$body\t$fnt\t\t\n");
@lines=reverse(@lines);
@out=();
$count=0;
foreach $i(@lines){
if($count<$diarymax){
push(@out,$i);
$count++;
}
}
if (!open(OUT,">$diaryfile")) {&header; &error_message('filesystem error','access failed.');}
print OUT @out;
close(OUT);
if(!open(IN,"$datafile")){&error_message('datafile error2315','data file access failed.');}
@all=;
close IN;
@out=();
foreach $i(@all){
($no,$r_name,$pass,$anon,$race,$relm,$mainjob,$supportjob,$prof,$handle,$polhn,$mail,$home,$comment2,$point,$class,$time,$comment,$mrank,$etc[0],$etc[1],$etc[2],$prod[0],$prod[1],$prod[2],$prod[3],$prod[4],$prod[5],$prod[6],$prod[7],$prod[8],$prod[9],$prod[10],$prod[11],$prod[12],$prod[13],$prod[14],$prod[15],$lev[0],$lev[1],$lev[2],$lev[3],$lev[4],$lev[5],$lev[6],$lev[7],$lev[8],$lev[9],$lev[10],$lev[11],$lev[12],$lev[13],$lev[14],$lev[15])=split(/\t/,$i);
if($r_name eq $name){
push(@out,"$no\t$r_name\t$pass\t$anon\t$race\t$relm\t$mainjob\t$supportjob\t$prof\t$handle\t$polhn\t$mail\t$home\t$comment2\t$point\t$class\t$timenow\t$comment\t$mrank\t$etc[0]\t$etc[1]\t$etc[2]\t$prod[0]\t$prod[1]\t$prod[2]\t$prod[3]\t$prod[4]\t$prod[5]\t$prod[6]\t$prod[7]\t$prod[8]\t$prod[9]\t$prod[10]\t$prod[11]\t$prod[12]\t$prod[13]\t$prod[14]\t$prod[15]\t$lev[0]\t$lev[1]\t$lev[2]\t$lev[3]\t$lev[4]\t$lev[5]\t$lev[6]\t$lev[7]\t$lev[8]\t$lev[9]\t$lev[10]\t$lev[11]\t$lev[12]\t$lev[13]\t$lev[14]\t$lev[15]\t\n");
} else {
push(@out,$i);
}
}
if(!open(OUT,">$datafile")){&header; &error_message('datafile error2329','data file access failed.');}
print OUT @out;
close OUT;
print "日記を書き込みました。
";
print "
ListTop";
} else {
print "新規日記
";
print "\ntitle
body
";
print"";
}
}
1;