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仕事

執筆者:

関連記事

Chrome拡張機能isearでWebベースの受注管理システムのアシスト(めちゃ楽!)

毎日の仕事で、CSV入出力でのデータ消込ができないブラウザベースの受注管理システムを使っている(GoQってやつ)。 やりたいことは 未入金の注文データについて、その中から該当する複数ある注文番号でフィ …

no image

FileMaker Pro 12 での汎用カウントアップボタンの作り方

前日に続き、調子に乗ってFileMaker Pro 12ネタ。 フィールド名を名前で設定[Get ( スクリプト引数 );GetField(Get ( スクリプト引数 ))+1] のようなスクリプトを …

no image

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

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

no image

迷惑メール

仕事にプライベートにYahooメールを使っている。 ここのところ、やけに迷惑メールが多い。 Yahooメールにはオプションで受信拒否やフィルタ機能もあるのでそれらを使ってはいるのだが、それぞれ100ア …

Arigato Automation(Shopifyのアプリ)の備忘録

EC業務で「特定顧客の注文につき、注文から1日経ったら、自動で発送済みにする」・・・ということを、したい。 うちの会社の場合は、店頭受取の顧客については、発送の管理をしないため。 以下、Arigato …