'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 "データベースに接続できませんでした。
\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 "データベースに接続できませんでした。
\n"; } pg_close($cn); }else{ echo "送信されたデータが不正です。
\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 << Genkikko Server 徒然

アンケートにご協力ありがとうございました。

自動的に元のページに帰ります。
のつもりですが、帰る気配のない場合は下のリンクで戻ってください。

$title

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; 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; $score += $item[$array[$i][0]] * $array[$i][1]; //ついでに同じループでトータルの計算もしとく。 } echo <<
{$array[$i][2]} {$item[$array[$i][0]]}
Score:{$score}
EOF; } ?>