雨谷の日和

過去19年で2,600を超えるアニメの第1話だけは見続けた僕のお勧めアニメがハズレなはずがない

人狼BBS作成日記60

さて、メインルーチンの方も見ておきましょう。
ここでコマンド入力もできるようにするので、入力系の処理分岐が増えます。

&SYSIN_TIME;
&STDIN_QUERY_STRING;

if( $Query_Tbl{'mode'} == 51){
  if( $Query_Tbl{ 'msg' } ne "" ){
    &FILEIN_MSG;
    &FILEOUT_VOTE;
  }
  print "Location: $Cgi_Main\n\n";
}elsif( $Query_Tbl{'mode'} == 52){
  if( $Query_Tbl{ 'msg0' } ne "" and  $Query_Tbl{ 'msg1' } ne ""){
    &FILEIN_MSG;
    &FILEOUT_ATTACK;
  }
  print "Location: $Cgi_Main\n\n";
}elsif( $Query_Tbl{'mode'} == 53){
  if( $Query_Tbl{ 'msg0' } ne "" and  $Query_Tbl{ 'msg1' } ne ""){
    &FILEIN_MSG;
    &FILEOUT_FORTUNE;
  }
  print "Location: $Cgi_Main\n\n";
}elsif( $Query_Tbl{'mode'} == 54){
  if( $Query_Tbl{ 'msg0' } ne "" and  $Query_Tbl{ 'msg1' } ne ""){
    &FILEIN_MSG;
    &FILEOUT_GUARD;
  }
  print "Location: $Cgi_Main\n\n";
}elsif( $Query_Tbl{'mode'} ){
  if( $Query_Tbl{ 'msg' } ne "" ){
    &FILEIN_MSG;
    &FILEOUT_MSG;
  }
  print "Location: $Cgi_Main\n\n";
}else{
  &FILEIN_MSG;
  &STDOUT_HTML;
}

入力が51〜54の場合、コマンド入力と見なしてその出力用のサブルーチンを呼び出します。また、それ以外の入力の時には、単なる発言として扱っています。
入力が無かった場合には、表示だけを行うようにしています。