mode='rec' (アクセスログ記録実行) set_rec_scripts($my_checked_parms['pgid']); exit; } elseif ( "start" == $my_checked_parms['mode'] ){ //->記録開始(onLoad時) inc_file_count($my_checked_parms['pgid']); // 指定ページのファイルカウンタ++ // 結果用画像表示 show_dynamic_image($myExecParms['home_dir'].'./img/myhome.gif'); exit; } else { // modeパラメタが想定外の時は初期表示 show_page($my_checked_parms); exit; } exit; //-------------------------------------------------------------------------- // 動的JS出力処理 //-------------------------------------------------------------------------- function set_rec_scripts($vPgid, $debug = 0){ //---- phpのプロセスIDをjs変数として事前に出力する ---- header("Content-type: text/html"); echo "var gPid=".getmypid().";\n"; echo "var pgid='".$vPgid."';\n"; //---- 動的表示用JSファイル表示 ---- // edit read js fname $js_src = f_readFileToArray("./ac_counter.ihtml"); // output source code foreach($js_src as $line){ echo $line; } //---- debug 情報表示 ---- # if( $debug = 1 ){ # echo "document.write('HTTP_REFERER(php)=".$_SERVER["HTTP_REFERER"]."
');"; # echo "document.write('REMOTE_HOST=".$_SERVER["REMOTE_HOST"]."
');"; # echo "document.write('REMOTE_ADDR=".$_SERVER["REMOTE_ADDR"]."
');"; # echo "document.write('SERVER_NAME=".$_SERVER["SERVER_NAME"]."
');"; # echo "document.write('HTTP_USER_AGENT=".$_SERVER["HTTP_USER_AGENT"]."
');"; # echo "document.write('SCRIPT_NAME=".$_SERVER["SCRIPT_NAME"]."
');"; # #echo "document.write('');"; # } } //-------------------------------------------------------------------------- // 動的画像表示 //-------------------------------------------------------------------------- function show_dynamic_image($vFname){ header("Content-type: image/gif"); echo file_get_contents($vFname); f_PutLog($gLogFname,"show_dynamic_image file-path=".$vFname); exit; } //-------------------------------------------------------------------------- // ファイルカウントをINCする //-------------------------------------------------------------------------- function inc_file_count($vPageID){ //---- define valiable ---- $myFn="inc_file_count()"; $mySaveCount = 1; // global valiables global $myExecParms; global $page_count_parms; global $gLogFname; if( $myExecParms['debug'] ){ f_PutLog($gLogFname,"### ".$myFn."args -> vPageID=".$vPageID); } // edit count file name $myReadFname = $page_count_parms[$vPageID]['cfile']; f_PutLog($gLogFname,"myReadFname = ".$myReadFname); // File Open $myFh=fopen($myReadFname,'r'); if( $myFh ){ //-> File Open // read 1 line $str = fgets($myFh); // File Close fclose($myFh); f_PutLog($gLogFname,"ac:read count=".$str); } $mySaveCount = $str + 1; f_PutLog($gLogFname,"save count=".$mySaveCount); $myFh=fopen($myReadFname,'w'); // save 1 line $a = fputs($myFh, $mySaveCount); // File Close fclose($myFh); //---------------------------------------------- return; } //========================================================================== // 受信項目の文字コード変換を行う //========================================================================== function conv_request_parms(){ //---- 変数初期化 ---- $rs_request_parms = array(); global $my_input_charcode, $my_inner_charcode, $my_output_html_charcode, $my_output_mail_charcode; //---- post/getのマージ(with文字コード変換) ---- foreach($_GET as $k => $v){ $rs_request_parms[$k] = mb_convert_encoding($v, $my_inner_charcode, $my_input_charcode); } foreach($_POST as $k => $v){ $rs_request_parms[$k] = mb_convert_encoding($v, $my_inner_charcode, $my_input_charcode); } #print_r($_GET); #print "
"; #print_r($_POST); #print "
"; #print_r($rs_request_parms); return $rs_request_parms; } //========================================================================== // 画面を表示する //========================================================================== function show_page($my_checked_parms){ //---- 変数定義 ---- global $HTMLV; global $form_logic_parms; global $page_count_parms; global $gLogFname; //---- CSSのURLをセット ---- $HTMLV['base_href'] = ''; //---- カウンタ情報をセット ---- $myCounts = array(); read_file_count(); //グラフ用表示値をセット foreach($page_count_parms as $k => $v){ $HTMLV[$k]['t'] = '・'.$page_count_parms[$k]['title']; $HTMLV[$k]['c'] = $page_count_parms[$k]['cnt']; $HTMLV[$k]['p'] = $page_count_parms[$k]['per'].'%'; } //---- ihtmlの画面を表示する ---- require_once $form_logic_parms['form_inp']; } //-------------------------------------------------------------------------- // すべてのファイルカウントを読み込み表示用に集計する //-------------------------------------------------------------------------- function read_file_count(){ //---- define valiable ---- global $page_count_parms; global $gLogFname; $myMax = 0; foreach($page_count_parms as $k => $v){ // edit count file name $myReadFname = $page_count_parms[$k]['cfile']; // File Open if( file_exists($myReadFname) ){ $myFh=fopen($myReadFname,'r'); if( $myFh ){ //-> File Open // read 1 line $str = fgets($myFh); // File Close fclose($myFh); $page_count_parms[$k]['cnt']=$str; if("counter" != $k ){ if( $page_count_parms[$k]['cnt'] > $myMax ){ $myMax=$page_count_parms[$k]['cnt']; } } } } } //グラフ用割合の計算 foreach($page_count_parms as $k => $v){ if( 1 <= $page_count_parms[$k]['cnt'] ){ $page_count_parms[$k]['per']=round(($page_count_parms[$k]['cnt'] / $myMax)*100); } else { $page_count_parms[$k]['per']=1; } f_PutLog($gLogFname,"graph:k=".$k." cnt=".$page_count_parms[$k]['cnt']." myMax=".$myMax." per=".$page_count_parms[$k]['per']); } return; } ?>