管理画面から登録、管理できる投票、アンケートなどに最適なシステムです。テキストのほか、画像もアップできますので様々な要件に対応可能です。たとえば、一般的なテキストのみのアンケート「このページは役に立ちましたか?」や、デザイン画や写真の投票システムとしても使用可能です。
ただし、このシステムは重複投票をクッキーによって制御していますが、完全な1人1票ということはできませんので予めご了承下さい。詳細は以下をご確認下さい。
2重投票を完全に防止できるものではありません
こちらでも十分に検証を行なっておりますが、配布直後は未知のバグが無いとも限りません。不具合やお気づきの点がございましたら遠慮なくご連絡いただけますと幸いです。また使用感やこのページでの間違い、分かりにくい点等ありましたらお知らせいただけたら大変ありがたいです。いずれもお問い合わせよりご連絡いただければと存じます。
ユーザID:admin
パスワード:13971397
テスト投稿してみてください。下記のページに反映されます。削除も可能です。
※この一覧部分はvote_list.phpをiframeで表示しています。実際にはこの一覧ページを使う機会はあまり無いでしょう。実際には「投票する」を押した後のページを表示することがほとんどかと思います。
※またサンプルでは再投票可能までの期間を10秒に設定しています。
事前にご利用規約をご確認、ご同意下さい。
クリックで自分のPCにダウンロード保存して下さい。または右クリック⇒「対象をファイルに保存」
表示側はUTF-8、Shift-JIS、EUC-JPに対応。デフォルトはUTF-8。
直接埋め込む場合で埋め込みページがUTF-8以外の場合、埋め込み用ファイル(vote.php)内で文字コードを設定可能です。
※PCはUTF-8、携帯はShist_JISのように別々の文字コードでも問題ありません。
ファイルの文字コードはUTF-8です。必ず対応したエディタで開いてください。
メモ帳(UTF-8非対応)は使用禁止です。TeraPad(無料)やDreamWeaver等で開いてください。
(そこまで意識する機会はありませんが、必ずBOM無しで保存して下さい。※多くのエディタのデフォルトはBOM無しのはずです。BOMについて詳しく知りたい方はこちら)
※ PHPでは、スラッシュ2回「//」の後からその行の末尾までがコメント扱いとなります。「#」、「/**/」もです。
zipファイルになっていますので解凍下さい。解凍ソフトは何でも構いません。Windowsであれば標準で付いている「展開」などでもOKです。
一般的なサイトの階層構造を意識して配置しています。要するにvote.phpがある階層がサイトのトップページの階層と同じということですね。
■色のものはパーミッション変更が必要なものです。
vote.php、 |
投票、アンケートデータの表示ページです。登録した投票、アンケート項目が表示され、実際に投票も行うページです。これを一般ユーザーに公開することになります。 表示する投票、アンケートデータのID番号をファイル内、またはパラメータにより指定下さい。これで該当のアンケートのみを表示できます。 指定方法はファイル内にも記載しています。 iframeでの指定方法はこちらもご参考下さい。 vote.phpは各項目ごとに投票ボタンが付きワンクリックで投票出来ます。 vote_radio.phpはラジオボタンを選択してからの投票となります。 お好きな方を使用下さい。逆に違いはこれだけですので使わないほうは無視して下さい。 既存のページ(既存ページを複製したものなど)に直接埋め込みでもOKですし、iframeでもOKです。 直接埋め込みの場合は埋め込み先のファイルの拡張子が.phpである必要があります。 また直接埋め込みの場合にはコピペ箇所がコメントにて指示してありますので参考下さい。 投票、アンケートという性質上SEO的な意味あいはあまり無いのでiframeで表示してしまうのが最も手っ取り早いかと思います。 |
---|---|
vote_list.php | ページング機能が付いた一覧ページです。このページはほとんどの場合、使用することは無いでしょう。必要に応じて使用下さい。 |
iframe.html | iframeで埋め込む場合用のHTMLタグです。あくまでコピペ用ですので削除いただいて構いません。 |
┗ pkobo_vote/ | システム全体のディレクトリです。リネームは可能ですが、変更した場合、各表示側ファイルのパス部分も変更が必要です。検索、置換などで対応下さい。 自信が無い場合、特に理由が無い場合は変更しないことをオススメします。 |
┗ admin/index.php | 管理画面です。登録や変更、削除を行います。クライアントにはこのURLだけを教えることになるかと思います。 |
┗ include/config.php | 設定ファイル。管理画面ログイン情報の設定やその他設定が可能です。 エディタで開きコメントを参考に必要に応じて設定下さい。 特にログイン情報は必ず変更下さい。 セキュリティ上の観点から念のためパーミッションを「444」に設定下さい。 (ただし、444だとFTPソフトでも上書きできなくなることがあるので、その場合は一時的に666等に変更する必要があります) |
┗ その他ファイル | すべて必要なファイルになりますが意識する機会はないと思います。特に触らずそのままアップ下さい。特に「copy.inc」は触らないで下さい。システムエラーが発生します。 |
┗ data/ | データ保存用ディレクトリ(パーミッションを777等書き込み可能なものに) |
┗ data.dat | データを保存するファイル(パーミッション666等書き込み可能なものに) |
┗ backup/ | データファイルのバックアップを保存するディレクトリです。 (パーミッションを777等書き込み可能なものに) バックアップはオプションです。デフォルトはOFF。 バックアップをONにすると新規投稿時にだけbackupディレクトリ内に「backup年月日時分秒_○○.dat」のファイル名で最新のdata.datが複製されて保存されます。古いものは自動で削除されます。保存期間は指定可能です(デフォルトは3ヶ月 ※本日から3ヶ月前までのデータを保存します)。このあたりは設定ファイル内にも詳しく記述しています。 |
┗ upload/ | アップロードファイル保存用ディレクトリです。 (パーミッションを777等書き込み可能なものに) |
admin/include/config.phpをエディタソフトで開き、ログインのためのID、パスワードを変更してください。
初期値は
ID:admin
パスワード:13971397
になっています。必ず変更してください。(半角の英数字、記号が設定可能です)
※パスワードはできるだけ13文字以上かつ大文字、小文字のローマ字、数字、記号(+_?*等)などを含めて下さい。
その他必要に応じてコメントを参考に設定してください。
pkobo_voteフォルダ、及び表示先のページなどすべてアップしてください。
上記の■色のファイル、ディレクトリのパーミッションを変更下さい。
(ただし、config.phpは444だとFTPソフトでも上書きできなくなることがあるので、その場合は一時的に666等に変更する必要があります。ってことで戸惑われる方もいると思うので本当はややこしいので「444」にして下さいとかあまり言いたくは無いのですが、WPの改ざん問題とかもありましたので、念のため変更しておいたほうがいいでしょうっていう程度のことです)
サーバーによっては変更自体が不要な場合があります。また値もサーバーにより異なることがあります。
パーミッションが異常の場合には、管理画面で警告メッセージが表示されますので、すぐに気づくことができます。
逆に正常に管理画面にアクセできて、登録もできていれば、正常なパーミッションになっていると考えてOKです。ちなみにエックスサーバーの場合、今のところパーミッション変更は不要です。
極々稀にPHPファイル自体のパーミッション変更が必要なサーバーもあります。
「あなたのサイトのURL(設置した階層)」/pkobo_vote/admin/を表示し、管理画面にログイン後、登録、変更、削除を行ってみてください。正常に登録、編集、削除ができればOKです。
表示側のページも確認下さい。 登録データが反映されていればOKです。
必要に応じてスタイルシート、HTML等で見た目の調整を行ってください。じゆ~です!
特にvote.phpのデフォルトは画像での投票を考慮したCSSとしています。実際の要件に合わせて自由に編集下さい。
こちらでも十分に検証を行なっておりますが、配布直後は未知のバグが無いとも限りません。お気づきの点がございましたら遠慮なくご連絡下さい。大変ありがたいです。
同梱のiframe.htmlにも書いていますが、以下のタグをページの表示させたい場所に貼り付ければOKです。必要に応じて幅、高さ、パス等を調整してください。
ただ、実際には表示するアンケート、投票を指定することがほとんどかと思います。
(パラメータを省略した場合にはID番号「1」のアンケートを表示します)
通常は以下のようにパラメータを設定することがほとんどでしょう。
パラメータを設定することで指定のデータを表示可能です。例 「vote.php?id=2」とすればID番号「2」のデータが表示されます。ID番号は管理画面で確認可能です。(管理画面トップの「ID」欄)
たとえば以下の様にですね。
(この場合、ID番号が「2」のアンケートが表示されます)
テスト時などにはカウント用のクッキーを削除したい場合もあると思います。
ブラウザにより方法は異なりますが削除は可能です。
ツール → オプション → プライバシー → Cookie を個別に削除
にて検索ボックスに「pvote_」と入力して検索して下さい。
該当のクッキーが表示されますので、
それを選択し、下部の「選択されたcookieを削除」を押すことで削除できます。
デフォルトでは全ページの下部に著作権表示リンク(クレジット)表示があります。
無断での削除は禁止となります。
クライアントへの納品やリンクが煩わしい、または寄付の意味でなどクレジットを削除されたい場合には、
1サイトあたり2,000円+消費税のライセンス料金が必要になります。申請いただければ開発の励みにもなります。
お支払いいただければ場合、すべてのページでクレジットが削除されます。
2サイト目以降は都度料金が必要になります。
尚、プログラム自体に変更を要するものではございませんので、すでに導入済みであればそのままお使いいただけます。まだ導入されていない場合でも、導入作業を行なっていただいて問題ございません。
※システムには無関係の1ファイルを差替えしていただくだけになります。
※差替えするファイルはご入金確認後にメールにてお送りいたします。
クレジットカードでのお支払いはこちら
(完全自動化によりクレジットカード払いの場合、決済完了後即ダウンロード可能です。手数料無し)
PHP4.3.9~PHP8.1
その他一般的なレンタルサーバーであれば問題なく動作するはずですが、
すべての環境(サーバー)での動作を保証するものではありませんのでご了承下さい。
問題が出る可能性が高い、またはそのままでは必ず問題が出ることが分かっているサーバー
※現状私自身が把握している範囲です。(実際に確認していますのでちゃんと根拠もあります)
1,Yahoo系(ジオプラス、ウェブホスティングとも)※Softbankも含む
2,KDDI系(CPI含む)
3,NTT系(WebArena(suiteX)、NTTビズリンク(BizLink))
※プロバイダー系は特に問題が多いです。(個人的には絶対に借りてはいけないと考えています)
4,スマイルサーバー
5,ファーストサーバ
特にCPI、NTT系、スマイルサーバー、ファーストサーバで問題がある場合はこちらも参照下さい
経験上、結局は「餅は餅屋です」。プロバイダー系はプラン、金額に関係なく特に問題が多いです。サーバーの問題で時間を取られるのは非常に無駄ですし、その先ずっと影響しますのでサーバー選びは慎重にされることをオススメします。
特に理由がなければあえてこれらのサーバーは借りないほうが得策でしょう。高いから良い、安いからダメという安易なものでもありませんので難しいところですね。(まぁ安いには安いなりの理由があるのですが・・)
HTMLやCSSなどをある程度理解されている方を対象としています。
設置、カスタマイズ方法などのサポートは行っておりませんのでご了承ください。
設置法、HTMLタグ、CSS等に関するサポートは申し訳ありませんが有料にて承ります。
カスタマイズについてもすべてお見積りの上で有償対応となります。
もちろん不具合などがありましたら遠慮なく何でもご相談ください。
・無料版プログラムはフリーウェアです。ただし、著作権は放棄するものではありません。
・プログラムの著作権表示リンク(ページ下部にある当サイトへのリンク)を無断で削除することはできません。
(一律2,000円+消費税の削除依頼をいただいた場合を除く)
・プログラムの再配布、再販売は禁止です。
※ただしクライアントへの納品などでシステム費用、設置費用として請求されるのは問題ありません。
・プログラムによって何らかの不利益、損害が生じても一切の責任を負いません。
あらかじめご了承の上ご使用ください。
もし何らかのトラブルがあった場合には、ご相談いただければ解決策が見つかるかもしれません。
(クライアントへの原因の説明など)
・プログラムは全ての環境(サーバー)での動作を保証するものではありません。
・改変等は自由ですが、自己責任でお願いします。
・有料版をご購入いただいた場合、初期不良を除き、ご使用後の返金には応じ兼ねます。
・有料版(著作権リンク削除含む)は1サイト(同一ドメイン)内であれば複製の上で複数利用可能です。
2サイト目以降は都度サイトより購入申込みが必要になります。
※サブドメインはその性質上、別サイト(別ドメイン)とみなします。
ダウンロードいただいた時点で利用規約に同意したものとみなされます。
どのようなカスタマイズでもまずはお気軽にご相談下さい。お見積りをお出しします。
PHPのクッキーによりユーザーを判別し連続送信防止を制御しています。クッキーはブラウザの機能を利用しています。そのため簡単に言ってしまうとブラウザを変えてしまえば同じ人間が2回も3回も投票できてしまいます。(またはブラウザのクッキーを削除しても同じことになります。)
要するに完全に1人1票というのは非常に難しいのが現状です。現実的には「不可」と言ってしまって差し支え無いと思います。逆にこれができればすべての投票がネットで行えることになりますね。
(個人的には選挙もこれにしてしまえば莫大なお金を節約できてすごく良いことだと思うんですけどね)
このシステムはあくまでもそういった厳密な投票には対応できませんのでご了承下さい。
IPアドレスも基本的には定期的に変わるため(スマホの場合は特に頻繁に)、実装しても意味が無い上に可能性は低いですが、正規のユーザーを弾いてしまうリスクがあるため、あえて実装していません。
その他より厳密にする方法としては、メールアドレスを登録してもらう、携帯番号を登録してもらう、Facebookのアカウントを申請してもらうなども考えられますが、
いずれも完全ではありませんし、そもそも手間がかかってしまうデメリットも有りますのであまり現実的ではありません。
最近出てきたマイナンバーを利用すれば多少は良くなるかもしれませんが、なりすましもあるだろうし、名前、住所なども申請してもらったところでその情報とマイナンバーが一致するかどうかも個人では判断できないでしょう。
こういった理由から厳密に1人1票のシステムは非常に難しいのが現状です。
当プログラムで行なっている対策をご紹介します。
一般的に考えうるリスクには対策を施しています。無料版だからこのぐらいでいいだろうというような妥協は一切していません。
このシステムは管理者が更新を行うCMSシステムです。管理画面での更新は特定の人間(社内や管理者のみなど)のみが行うことを前提としています。不特定多数の人間が管理画面に入って投稿できるような一般公開型の掲示板のような使用は絶対に行わないで下さい。(第三者が投票を行うことはもちろん問題ありません)
具体的な対策(この下に展開されます)
2020.07.30 v1.0.2リリース
認証不備の脆弱性の指摘と修正方法について
-- 脆弱性に該当する製品名およびバージョン
※ver.1.0.1及びそれ以前
(バージョンはReadmeまたはconfig.php内に記載しています)
確認済対象ブラウザ:(Firefox/Chromeで確認)
-- 脆弱性の内容
特定の条件下において、遠隔の第三者に管理者権限で当該製品にログインされる問題。
この条件が成立するには第三者があなたのサイトのサーバー上に無断でファイルを設置する必要があることから、この問題が実際に発生する可能性は限りなく低いと思われます。これまでに実害の報告などは届いておりません。
ユーザーにとって利便性が良いため、あえてそうしていたということもありますので、
非常に判断が難しいものでしたが、今回の指摘を真摯に受け止め、また利便性よりも安全性を優先するという判断としました。
-- 脆弱性への対応方法と適用方法
以下手順で修正を行なってください。
1,pkobo_vote/admin/内直下にある7つのPHPファイル(index.phpやregist.php)をエディタソフトで開いていただき、
「session_start();」を見つけて下さい。(ファイル内に1箇所しかないため検索すればすぐに見つかります)
2,この「session_start();」の上に以下1行をコピペして下さい。
※「PHPSystem」部分の文字は変更して下さい。英数字のみとして下さい。
例
session_name('PHPSystem123');
session_start();
※順番に注意して下さい。必ずsession_start();の上に追加下さい。
以上、これだけです。
もしすでに「session_name()」がある場合はすでに対策済のバージョンですので変更不要です。
尚、当サイトの管理画面があるプログラムを複数設置している場合で一度のログイン認証で相互に行き来出来たほうが良い場合はsession_nameの文字列を同じものとして下さい。
-- 謝辞
ご報告いただきました「三井物産セキュアディレクション株式会社 東内様」、
並びに情報処理推進機構 IPA様、JPCERT/CC 脆弱性ハンドリングチーム様にはこの場を借りて感謝申し上げます。
2016.02.06 v1.0.1 定期アップデート実施 データファイルの区切り文字をタブに変更。項目ごとにリンク設定可能に。
2015.10.05 v1.0.0 配布開始