IT仕事

phpESPつまづいたところ

投稿日:2008年9月2日 更新日:

AKI ON WEB: Webアンケートシステム「phpESP」を試してみた

を参考に、このソフトのインストールに挑戦。

しかし、DB作成で、まず転ぶ。

mysql_populate.sqlが通らない。スキルがないのでDBの作成がレンサバの管理画面+MySQLAdminでしかできなかったが、しかし何とか作成。sqlite_populate.sql はあっさり通過。

次にブラウザでページにアクセスしたところ、Connectがうまくいかないエラーが返ってくる。
phpESP.ini.phpの以下の部分を書き換えることで、何とかクリア。

$ESPCONFIG[‘db_host’] = ‘localhost’;
$ESPCONFIG[‘db_user’] = ‘phpesp’;
$ESPCONFIG[‘db_pass’] = ‘ないしょ’;
$ESPCONFIG[‘db_name’] = ‘phpesp’;

そして、アンケート入力フォームにて、転ぶ。

質問項目は200以上あるのでフォームを5ページに分けたい。
しかし方法がわからなかった。
区切りを入れることでできることをやがては気づいたが、喜びもつかの間。なぜか呼び出し直後の最初のページが表示されないことがたまにある。

編集画面のOrderで区切り記号をいったん全部削除して再度作り直すことでうまくいった。

パブリック・プライベートなアンケートの設定で、転ぶ。

パブリックの場合は、IPアドレスが重複するととってくれないので、LAN内の別人が回答することができない・・・不正防止のための至極当たり前の仕組みだけど、今回自分が使いたいやり方では、それは困ること。
プライベートにすると、ログインしてからの回答となるので解決できるのだが、設定が良くわからなかった。
以下、試行錯誤の結果。

handler.phpの2行目あたりに、以下のコードを貼り付ける(handler-prefix.phpの中ごろにあったもの)。

<!– ここから
if(empty($_REQUEST[‘userid’])) {
// find remote user id (takes the first non-empty of the following)
// 1. a GET variable named ‘userid’
// 2. the REMOTE_USER set by HTTP-Authentication
// 3. the query string
// 4. the remote ip address
if (!empty($_REQUEST[‘userid’])) {
$_REQUEST[‘userid’] = $_REQUEST[‘userid’];
} elseif(!empty($_SERVER[‘REMOTE_USER’])) {
$_REQUEST[‘userid’] = $_SERVER[‘REMOTE_USER’];
} elseif(!empty($_SERVER[‘QUERY_STRING’])) {
$_REQUEST[‘userid’] = urldecode($_SERVER[‘QUERY_STRING’]);
} else {
$_REQUEST[‘userid’] = $_SERVER[‘REMOTE_ADDR’];
}
}
ここまで –>

それでもって管理画面で、回答者アカウント管理でアカウントを追加し、グループをAutoにして、アンケートアクセス変更(回答者制限)でプライベートに設定し、OK。

とおもいきや、それでもうまくいかない。

グループ 最大回答 保存/リストア 戻る/進む

にそれぞれ適当な値をセットして、クリア。
アカウントはguestだけ作ったけど、それを使いまわして何度回答してもいいみたい。はじかれない。

アンケート結果のデータエクスポートで文字化け
形式をCSVではなくTABにし、UTF-8が読めるエディタで開くとOK。

苦労の連続。しかし何とか使い物になりそうだ。

-IT仕事

執筆者:

関連記事

no image

まだやってる、IT講師。

今日はWordでPOPを作るセミナー。 いわゆる「おばちゃん」相手。 楽しい。 なかに、とても入力が苦手な人が一人、「産業会館」という字を、「惨状会館」と入力して、しかしどう直してよいか分からなくて悩 …

no image

GWも出勤をしている企業戦士とはオレのことだ

出勤はしていても、「仕事はしない、勉強をする」と決めた今日は、 http://www.moug.net/tech/exvba/ のサイトで学習三昧。今度この手の仕事があるから。 関数関連のテクニックま …

no image

Titanimu Studioを試している。

書籍を揃えて試しているのだが、以下の部分でエラーになる。 win1.hideTabBar(); エラーメッセージは、 <TiBaseWindow> has no method &#8216 …

no image

CliborとPythonで明日(昨日)の日付を出す

Clibor、使ってますか? 私は毎日使っています 例えば、「2018/07/02(月)」のように明日の日付を書きたいと思ったら、どうやって入力していますか? キーボードで13個以上のキーを押して、曜 …

no image

Cliborのマクロでウィンドウ操作&コピペを楽にする

Clibor、便利だわ~。もう大好き。 今回はこんなコードをご紹介。私が作った。えへ。 まあProの方々から見れば、全然大した頃は無いのでしょうが。 [code] # -*- coding: utf- …