//---------------------------------------------- // カウンターと連動したダウンロード・ディスパッチャ //---------------------------------------------- // Akira Nagata (Yukos World Co., Ltd.) // E-Mail:akira@yukosworld.com // URL:http://www.yukosworld.com/ //---------------------------------------------- //##--- 初期設定など ------------* $prog = "../../cgi-bin/download.cgi"; // $cntdir = "./counter/"; // カウンタ記録用のファイルが格納されたディレクトリ $logdir = "./logs/"; // ログ記録用のファイルが格納されたディレクトリ //##--- ログに関する設定 --------* $log = TRUE; // ダウンロードした日時とホストのIPを記録する?(1=YES 0=NO) $trgName = ""; // ダウンロードするファイルの名前 $trgCounter = ""; // カウンタファイルの名前 $trgLog = ""; // ログファイルの名前(使用は$logに依存) //##--- 以下は状況に応じて設定---* //$t_mail= 0; // メール通知する?(1=YES 0=NO) //$mailto= 'info\@yukosworld.com'; // 通知するメールアドレス //$s_mail= '/usr/lib/sendmail'; // sendmailパス $ips = file("wayout.dat"); // 閲覧を許可しないIPアドレス(数字/最初の3区切りを指定) //##--- 設定ここまで ------------* if(!isset($id) || !isset($lang)){ header("Location: unexpected_call.html"); exit(); }else{ $addr3 = substr($REMOTE_ADDR, 0, strrpos($REMOTE_ADDR, ".")); if(array_search($addr3, $ips) !== FALSE){ header("Location: forbidden.html"); exit(); } } $err = 0; $trgCounter = $cntdir.sprintf("%04d",$id).sprintf("%02d",$lang).".dat"; $trgLog = $logdir.sprintf("%04d",$id).sprintf("%02d",$lang).".dat"; switch($id){ case 1: //Autostart Hunter switch($lang){ case 1: //Japanese $trgName = "AutostartHunter1_1J.sit"; break; case 2: //English $trgName = "AutostartHunter1_1.sit"; break; default: $err = 1; // no such language break; } break; case 2: //STSoundRecorder switch($lang){ case 1: //Japanese $trgName = "STSoundRecorder1_1a0J.cpt"; break; //case 2: //English //$trgName = "STSoundRecorder1_1a0.cpt"; //break; default: $err = 1; // no such language break; } break; case 3: //OpenWithApp switch($lang){ case 1: //Japanese $trgName = "OpenWithApp1_0b0J.cpt"; break; //case 2: //English //$trgName = "OpenWithApp1_0b0.cpt"; //break; default: $err = 1; // no such language break; } break; case 4: //OTZIPCarbon switch($lang){ case 1: //Japanese $trgName = "OTZIPCarbon1_21J.cpt"; break; //case 2: //English //$trgName = "OTZIPCarbon1_21.cpt"; //break; default: $err = 1; // no such language break; } break; //case 5: //MacOTPing // break; default: $err = 2; // no such file break; } if($log && file_exists($trgLog)){ $line = date("Y/m/d\tH:i:s")."\t".$REMOTE_ADDR."\t".$HTTP_REFERER."\n"; $fref = fopen($trgLog, "a"); // Open the file with append mode if(flock($fref, LOCK_EX)){ fwrite($fref, $line); //fputs($fref, $line); flock($fref, LOCK_UN); } else $err = -1; // I/O error fclose($fref); } if(file_exists($trgCounter)){ $line = file($trgCounter); $line = strval((int)$line[0] + 1); $fref = fopen($trgCounter, "w"); // Open the file with write only mode if(flock($fref, LOCK_EX)){ fwrite($fref, $line); //fputs($fref, $line); flock($fref, LOCK_UN); } else $err = -1; // I/O error fclose($fref); } if($err != 0){ header("Location: result.php?code=".$err."&lang=".$lang); exit(); } ?>