アンケートの作り方

2009/12/17 | その他

アンケートを簡単に作成して運用できるツールを複数のサイトで運用している。

無料アンケートASPサービス「CubeQuery」
アンケートフォームレンタル「jpForm.net」

これらのサイトは利用者も相応に増えている。一つ気がついたことがあって「アンケートの作り方」を意味するキーワードでやってくる訪問者がとにかく多いことだ。おそらくこれらの訪問者は、アンケートを無料でレンタルできるサービスを探しているのではなく、本当の意味で「アンケートってどうやって作るべきなんだろう」ということを調べていると思われる。おそらくどこのアンケートサービス提供会社でも、自社サービスにおけるアンケートの作り方は紹介しているだろうから、同様のアクセス解析結果を得ているに違いない。

そこで数年間サービスを運営して得た情報を元に、アンケートの作り方を取りまとめてみた。まだまだ足らない部分はあるが、実際にアンケートを作成する際に注意すべき事項等参考になる部分もあるかもしれないので、公開してみることにした。とりあえず、思いつき、ということで。

アンケートの正しい作り方

参考になれば。

short_open_tag

2009/12/16 | PHPの基本

PHPでプログラムを記述する際は、プログラムの前後を「<?php」「?>」でくくらなければならないのは当たり前中の当たり前。その省略形「<?」「?>」でもOK。後者の記述はPHPの設定でshort_open_tagが有効になっているかどうかによって決定されるが、たいていの場合は有効になっている。

この場合<?=$hoge ?>なんていう省略した記述が出来るので便利といえば便利なのだが、時として厄介や問題を生じさせることがある。

例えば、一昔前はHTMLの記述は<html>で始まるのが当たり前だった。しかし今ではDOCTYPEの宣言やらXML宣言を冒頭に記述することがほぼ常識的となっている。ここでXML宣言が問題となる。XML宣言の記述例は以下のとおりだ。

<?xml version=”1.0″ encoding=”UTF-8″ standalone=”yes”?>

問題はこの宣言もPHPタグの省略形と同様に「<?」「?>」でくくっているからだ。だからこの宣言を記述したHTML文書の拡張子を単に.phpとし、PHPプログラムを記述しようとすると当然のごとくエラーになる。これには注意が必要だ。さらに最近のレンタルサーバの設定ではdisplay_errorsの設定が無効になっているのでエラーも吐いてくれない。だから拡張子を.phpにしたとたん「何も表示されなくなった」という事象も発生する。

この問題を回避するためには、やはりデフォルトの設定としてshort_open_tagを無効にして、PHPは必ず「<?php」「?>」でくくることをオススメする。具体的には.htaccessを作成して(これも最近のレンタルサーバでは当たり前のように使えるようになっている)、そこに次の一行を加えておけばよい。

php_flag short_open_tag off

PHPの次のバージョンあたりで消え去ってほしい記述方法だ。

アンケートフォームレンタル「jpForm.net」の取り扱いデータ量

2009/12/11 | その他

公開して約1ヶ月がたとうとしているアンケートフォームレンタルサービス「jpForm.net」。まだまだ作成アンケート数という面では非常に少ないが、システムの動作状況を確認するのに格好のアンケートが現在実施されているようだ。注目しているのは回答数。すでに1500件以上のデータを集めている。「CubeQuery」の運用実績を通じても、一つのアンケートでこれだけのデータが収集されたのは初めてだと思う。

大量のデータだが、プログラムは正常に動作しているようだ。とても安心した。早く「jpForm.net」がアンケートレンタルサービスとして浸透することを願うばかりだ。

無料で使えるアンケートフォームレンタルサービス「jpForm.net」

日付関連の便利な関数

2009/12/09 | MySQL

今、MySQLが熱い。MySQLの日付関連の便利な関数(もしくは使い方)を列挙しておく。

  • SELECT NOW();
    現在の日時。年-月-日 時:分:秒。
  • SELECT CURDATE();
    今日。年-月-日。
  • SELECT DATE(CURRENT_DATE( )-1);
    昨日。年-月-日。DATE_ADD関数とか使うほうがいいかも。
  • SELECT UNIX_TIMESTAMP();
    現在のUNIX TIMESTAMP。
  • SELECT FROM_UNIXTIMESTAMP(UNIX_TIMESTAMP());
    UNIX TIMESTAMP値から日付を返す。年-月-日。

他にもいろいろある。類似の関数で時刻出したりとかもできる。VIEW作るときに幅が広がりそう。

持続的接続を理解するために(その8)

2009/12/08 | apache, MySQL

ここまでやってきてだいぶん理解が深まった。「apacheの子プロセスごとに持続的接続が管理される」かどうかを今一度調べないといけないが、仮にそうだとすると、世間のブログで書かれていることには結構嘘が多いことになる(嘘というかしったかぶり)。

例えばとあるブログで「同じホスト、ユーザ、パスワードのコネクションであれば前回のコネクションを使いまわす」という記述があるが、前述の論理にもとづけばこれは嘘。処理する子プロセスが違えば、当然コネクションなんて残っていない(初めからそんなものは存在しない)ので、最初から接続することになる。

何度かいろいろな処理があるうちに、たまたま、以前に使用したプロセスが処理を担当することになった時だけ、以前使用したコネクションが使いまわせることになる。

難しいことをさらっと書いてあるブログは多数存在するけれど、全てが信用できるわけではないって改めて理解した。


守谷市(まちの情報ポータル) 無料アンケートレンタルjpForm.net