<?PHP
/*************************************************************************************************
Name    questionnaire.php
Action    アンケート入力フォームの表示&結果の表示    
    
                                2007.08.26 Ver.0.01  Genki wrote
                                2007.08.27 Ver.0.02  Genki edit.
                                2008.02.14 Ver.0.03  Genki edit.
                                2008.03.20 Ver.0.04  Genki edit.

    仕様
    Ver.0.01    とりあえず。
    Ver.0.02    リロード対策。
    Ver.0.03    スコア追加。
    Ver.0.04    ボタン画像に。
        
***************************************************************************************************/
//各種設定
mb_internal_encoding("euc-jp");
mb_http_output("utf-8");

$ratio = array('a' => '2',
        
'b' => '1',
        
'c' => '0',
        
'd' => '-2',
        
'e' => '-2');
$this_script "/etc/questionnaire.php";
$table "questionnaire";
$dat ereg_replace("\.php$",null,$_SERVER['PHP_SELF']);
$dat ereg_replace("^\/",null,$dat);
if(
$_POST['id']){
    
$id $_POST['id'];
}else{
    
$id str_replace("/","_",$dat);
}

/*-------------------------------------------------------------
DB接続および初めてのには行作成
$itemにデータを格納
-------------------------------------------------------------*/
if($cn pg_connect("host=hogehoge.hoge port=**** user=hogehoge")){    //接続成功したら
    
$rs pg_query("select * from $table where id='$id'");        //そのエントリ用の行を読む
    
$ct pg_num_rows($rs);                        //該当行数を確認(1or0)
    
if(!$ct){                            //該当行が無ければ
        
$rs pg_query("insert into $table values ('$id')");    //作って
        
$rs pg_query("select * from $table where id='$id'");    //読み直し
    
}
    
$item pg_fetch_array($rs,0);                    //配列に格納
}else{                                    //接続できなかったら
    
echo "データベースに接続できませんでした。<br />\n";        //エラー

}
pg_close($cn);

/*-------------------------------------------------------------
アンケート回答のpostデータがあればその処理
一応二重読み込みを防止するために間ページを作って転送。
-------------------------------------------------------------*/
if($_POST['questionnaire'] && $_POST['id']){
    
$inc $_POST['questionnaire'];        //インクリメントするやつ
    
if(ereg("^[a-j]{1}$",$inc)){        //a-jの1文字なら
        
$item[$inc]++;            //インクリメントして、
        
if($cn pg_connect("host=hogehoge.hoge port=**** user=hogehoge")){        //接続
            
$rs pg_query("update $table set $inc='{$item[$inc]}' where id='$id'");    //更新
        
}else{
            echo 
"データベースに接続できませんでした。<br />\n";
        }
        
pg_close($cn);
    }else{
        echo 
"送信されたデータが不正です。<br />\n";
    }

    if(
$cn pg_connect("host=hogehoge.hoge port=**** user=hogehoge dbname=mt用DB名")){        //MT用DBに接続成功したら
        
$basename substr($id,8);
        
$rs pg_query("select entry_title from mt_entry where entry_basename='$basename'");    //エントリーのタイトルを取得
        
pg_close($cn);
    }
    
$title pg_fetch_array($rs,0);                    //配列に格納
    
if($title[0]){
        
$title mb_convert_encoding($title[0],"utf-8","euc-jp")."に戻る。";            //もとのページに戻るリンクにエントリーのタイトルを表示。
    
}else{
        
$title="戻る";
    }
    
$url "/".substr($id,0,4)."/".substr($id,5,2)."/".substr($id,8).".php";

//ありがとうございました&戻るページ作成。
    
echo <<<EOH
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN"
   "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml" id="sixapart-standard">
<head>
 <meta http-equiv="Content-Type" content="text/html; charset=UTF-8" />
 <meta http-equiv="refresh" content="5;URL=$url">
 <link rel="stylesheet" href="http://blog.genkikko.net/styles-site.css" type="text/css" />
 <title>Genkikko Server 徒然</title>
</head>
<body class="layout-two-column-right individual-entry-archive" onload="individualArchivesOnLoad(commenter_name)">
<div id="container">
 <div id="container-inner" class="pkg">
  <div id="banner">
   <div id="banner-inner" class="pkg">
    <h1 id="banner-header"><a href="http://blog.genkikko.net/" accesskey="1">Genkikko Server 徒然</a></h1>
    <h2 id="banner-description">試行錯誤の覚え書き。愚痴。日記。</h2>
   </div>
  </div>
  <div id="pagebody">
   <div id="pagebody-inner" class="pkg">
    <table border=0>
     <tr>
      <td width=15>
       <br />
      </td>
      <td>
       <h3>アンケートにご協力ありがとうございました。</h3>
       <h4>自動的に元のページに帰ります。<br />のつもりですが、帰る気配のない場合は下のリンクで戻ってください。</h4>
       <h3><a href="$url">$title</a></h3>
      </td>
     </tr>
    </table>
   </div>
  </div>
 </div>
</div>

</body>
</html>
EOH;


/*-------------------------------------------------------------
POSTデータがidのみの場合、そのまま転送
(空で送信したとき用)
-------------------------------------------------------------*/
}elseif($_POST['id']){
    
$url "/".substr($id,0,4)."/".substr($id,5,2)."/".substr($id,8).".php";
    
header("Location: $url");

/*-------------------------------------------------------------
何も送られてきてない場合、入力フォームと集計結果の表示
-------------------------------------------------------------*/
}else{
    
$array = array(array('a',$ratio['a'],'役に立った',"plus_2_b.png"),        //アンケート項目の設定
                   
array('b',$ratio['b'],'おもしろかった',"plus_1_b.png"),
               array(
'c',$ratio['c'],'ふつー',"zero_b.png"),
               array(
'd',$ratio['d'],'つまらなかった',"minus_2_b.png"),
               array(
'e',$ratio['e'],'欲しい情報と違った',"minus_2_b.png")
           );

//グラフの幅を決める。
    
for($i=1;$item[$i];$i++){        //$item[0]は文字列なので、それ以外を数字にして配列に格納。
        
$num[$i-1] = (int)$item[$i];
    }
    
$max max($num);
    if(
$max <= 30){
        
$w_ratio 4;
    }elseif(
$max <= 60){
        
$w_ratio 2;
    }elseif(
$max <= 120){
        
$w_ratio 1;
    }elseif(
$max <= 240){
        
$w_ratio 0.5;
    }elseif(
$max <= 480){
        
$w_ratio 0.25;
    }else{
        
$w_ratio 0.1;
    }                    
//かなり先のことまで見越して作っとく。

//表示
    
echo <<<EOF
<h2 class="module-header">アンケート</h2>
このページの内容はいかがでしたか?<br />
片手間にポチっと送信してやってください。<br />
 <table border=0>
EOF;

    for(
$i=0;$array[$i];$i++){
        if(!
$item[$array[$i][0]]){
            
$item[$array[$i][0]] = "0";
            
$width 0;
        }else{
            
$width round($item[$array[$i][0]]*$w_ratio);
        }
        echo <<<EOF
  <tr>
   <td>
    <form action="$this_script" method="post">
     <input type="hidden" name="id" value="$id">
     <input type="hidden" name="questionnaire" value="
{$array[$i][0]}">
     <input type="image" src="/etc/
{$array[$i][3]}">
    </form>
   </td>
   <td>
    
{$array[$i][2]}
   </td>
   <td>
    <img src="/etc/questionnaire.png" width=$width height=12>
   </td>
   <td align="right">
    
{$item[$array[$i][0]]}
   </td>
   <td>
    件
   </td>
  </tr>
EOF;
        
$score += $item[$array[$i][0]] * $array[$i][1];    //ついでに同じループでトータルの計算もしとく。
    
}
    echo <<<EOF
  <tr>
   <td colspan=3 align="left">
   </td>
   <td colspan=3 align="right">
       Score:
{$score}
   </td>
  </tr>
 </table>
EOF;

}

?>