PHP工房トップ

HOME > 【CalendarForm02】予約・応募フォーム連動 営業日カレンダー CSV保存機能付き(有料)版

【CalendarForm02】予約・応募フォーム連動 営業日カレンダー CSV保存機能付き(有料)版

【2024/05/09 重要なお知らせ】
祝日の自動取得機能が正常に動作しない問題。

対象バージョン:ver1.0.4以下。ver1.0.5以降は問題ありません。
※バージョンはconfig.phpの上部に記載されています。
症状:祝日の自動取得が行えない。
原因:GoogleカレンダーAPIの仕様が変わったためと思われます。
対象者:祝日の自動取得機能をONにしている方のみ。(config.phpでON、OFF可能。デフォルト値はOFF)
修正方法:以下をご参考の上で修正してください。
function.phpを開き、以下の記述をファイル内検索してください。

//$holidays_id = 'japanese__ja@holiday.calendar.google.com'; // Google 公式版日本語

この先頭のスラッシュ2つ「//」を削除してコメントアウトを解除(有効化)してください。
これだけです。

フリー版の【CalendarForm01】にCSVファイル保存機能を追加したプログラムです。
申込内容をCSVファイルで確認可能です。CSVファイルは管理画面内でダウンロードできます。

CSVファイルにはメールで送信した内容と同じものが累積データとして保存されます。
CSVファイルはエクセルはもちろんその他対応のソフトで開くことができ、もちろん編集も可能です。

申込の対応漏れの対策や集計、日毎の予約管理をエクセル上で行いたい場合などに適します。
またメール送信の不具合などの場合のバックアップとしても使用できます。
(メール送信とは別処理で行われるためCSVファイルには必ず保存されます)

CSVファイルは累積データとなります。リセット(削除)も管理画面で可能です。

ただし、個人情報をサーバー上に保存する形になりますので、CSVファイルの取り扱いには注意が必要です。
デフォルトではhtaccessにより保存CSVファイルへは直接アクセスできないように設定しています。
その他CSVファイルのセキュリティ対策、セッション認証法についての詳細はこちらをご参考ください

主な機能と特徴

  1. 申込データのCSV保存機能が付いています。CSVファイルは初回送信時にcsvディレクトリ内に自動生成されます。
  2. CSV保存機能のON、OFFも可能です。(デフォルトはON)
    ※設定ファイル(config.php)で設定可
  3. CSVに保存する項目を指定可能です。(デフォルトはフォームの全項目を自動取得)
    たとえば、あまり個人情報は保存したくない場合、CSVには名前と選択日時のみを保存することも可能です。
    ※設定ファイル(config.php)で設定可
  4. 管理者、ユーザー宛ともメールを送信せずCSVのみで管理することも可能です。
    ※設定ファイル(config.php)で管理者のメールアドレスを空に、自動返信メールをOFFに設定下さい。
    (あまりないと思いますがクライアントがアドレスを持っていない場合など)
  5. その他の機能はフリー版【CalendarForm01】と全く同じですのでフリー版のページをご参照下さい。

CSV生成について

初回のメール送信時にcsvフォルダ内に「entry.csv」が生成されます。同時にCSVファイルの1行目に現在のフォーム全項目名が追加され、2行目に送信データが追加されます。この1行目の項目名追加は初回送信時のファイル生成時のみ追加されます。その後は3行目、4行目・・・と送信のたびに送信データが追加されていきます。

【重要】 フォームにチェックボックス、またはラジオボタンがある場合で、かつ必須ではない場合、未選択のまま送信できてしまいますが、そうするとCSVデータの列がずれます。(登録データには影響ありません)
※チェックボックス、ラジオボタンは未選択の場合、空データのPOSTすらされないためです。

チェックボックス、ラジオボタンがある場合で、かつ必須ではない場合、列ズレを防ぐため設定ファイル(config.php)のオプション設定で「CSVに保存する項目を指定する」でCSVに保存したい項目すべてのname属性の値を指定して下さい。
こうすれば1行目にここで指定した項目がヘッダとして記述され、さらに未選択の場合には空データが挿入されますので列ズレも発生しません。

または隠し要素(ダミー要素)を埋め込んでおくということでも対処は可能です。

隠し要素(ダミー要素)の記述例(赤字が追加する要素です)

ラジオボタンの場合
<input type="hidden" name="性別" />
<input type="radio" name="性別" value="男" />男
<input type="radio" name="性別" value="女" />女

チェックボックスの場合
<input type="hidden" name="サイトを知ったきっかけ" />
<input type="checkbox" name="サイトを知ったきっかけ[]" value="インターネット" />インターネット
<input type="checkbox" name="サイトを知ったきっかけ[]" value="広告" />広告

このようにtype="hidden"の隠し要素を直前に記述しておくことで未選択の場合でも項目が送信されます。
チェックされた場合には、そちらが優先(上書き)されますので問題ありません。

サンプルデモ(CSVダウンロードのみ)

ユーザ名:admin
パスワード:13971397

CSV機能以外の動作についてはフリー版のページをご参照下さい。

料金とお支払い方法

仕様が比較的複雑であり、また実際の要件を満たせているかどうかが微妙な場合もあります。またサーバーによっては稀に正常に動作しない可能性もありますので、 基本的には一度フリー版を設置の上で要件が満たせているかや動作をご確認いただいたほうがスムーズです。(設置法や主な仕様はフリー版と同じです)

【CalendarForm02】予約・応募フォーム連動 営業日カレンダー CSV保存機能付き 有料版
プログラム本体料金 2,000円+消費税

基本的には即日、遅くとも翌日までにはダウンロード用URLをお送りいたします。

 

設置方法

設置方法やファイル構成などはフリー版のページをご参照下さい。

CSV保存版の独自事項

calendar_form/内のcsvディレクトリのみ書き込み可能なパーミッション(777等)に変更下さい。
適切な値はサーバーにより異なりますが、変更が不要な場合もあります。
正常にCSVファイルが生成されていればOKということです。
その他はフリー版と全く同じです。

よくある質問

フリー版のページをご参照下さい。

不具合、バグ等について

十分な検証は行っておりますが、リリース直後は未知の不具合が無いとも限りません。もし不具合などを発見されましたら遠慮なくお問い合わせ下さい。不具合かどうか分からないようなものでも遠慮なくお問い合わせ下さい。
お問い合わせはこちら

動作確認済PHPバージョン

PHP5.1~PHP8.5.5まで対応(2026/06/10現在)

※古いPHP環境にも配慮していますが、可能であればPHP7以降でのご利用をおすすめします。

動作確認済レンタルサーバー

  • エックスサーバー [PR]
    ※個人的にはここが好きで、もうずっとここです。このサーバーで困ることはまずないでしょう。
  • ロリポップ! [PR]
    ※ただしここはWAF機能がONの場合、CMSプログラムで問題が発生する可能性が高いです。詳細はこちら
    またサーバーがブラックリストに登録されてしまいメール系のプログラムで受信できない大問題も多々確認されています。詳細はこちら
     ただコスパ的には有りだと思います。
  • カゴヤのレンタルサーバー [PR]
    ここは高機能、高スペック、良心的な価格でありながら風俗系のサイトがOKという非常に貴重なサーバーです。個人的には風俗系のサイトであればこのサーバー以外の選択肢はないと思ってます。
  • さくらのレンタルサーバ [PR]

その他一般的なレンタルサーバーであれば問題なく動作するはずですが、
すべての環境(サーバー)での動作を保証するものではありませんのでご了承下さい。

問題が出る可能性が高い、またはそのままでは必ず問題が出ることが分かっているサーバー

※現状私自身が把握している範囲です。(実際に確認していますのでちゃんと根拠もあります)
1,Yahoo系(ジオプラス、ウェブホスティングとも)※Softbankも含む
2,KDDI系(CPI含む)
3,NTT系(WebArena(suiteX)、NTTビズリンク(BizLink))
※プロバイダー系は特に問題が多いです。(個人的には絶対に借りてはいけないと考えています)
4,スマイルサーバー
5,ファーストサーバ

特にCPI、NTT系、スマイルサーバー、ファーストサーバで問題がある場合はこちらも参照下さい

経験上、結局は「餅は餅屋です」。プロバイダー系はプラン、金額に関係なく特に問題が多いです。サーバーの問題で時間を取られるのは非常に無駄ですし、その先ずっと影響しますのでサーバー選びは慎重にされることをオススメします。 特に理由がなければあえてこれらのサーバーは借りないほうが得策でしょう。高いから良い、安いからダメという安易なものでもありませんので難しいところですね。(まぁ安いには安いなりの理由があるのですが・・)

カスタマイズ、設置代行について

カスタマイズ(改造等)方法などのサポートは行っておりません。
カスタマイズや仕様変更、設置代行などは2,000円~の有料にて承ります。

ご利用規約

・無料版プログラムはフリーウェアです。ただし、著作権は放棄するものではありません。
・プログラムの著作権表示リンク(ページ下部にある当サイトへのリンク)を無断で削除することはできません。
(一律2,000円+消費税の削除依頼をいただいた場合を除く)
・プログラムの再配布、再販売は禁止です。
 ※ただしクライアントへの納品などでシステム費用、設置費用として請求されるのは問題ありません。
・プログラムによって何らかの不利益、損害が生じても一切の責任を負いません。
 あらかじめご了承の上ご使用ください。
 もし何らかのトラブルがあった場合には、ご相談いただければ解決策が見つかるかもしれません。
 (クライアントへの原因の説明など)
・プログラムは全ての環境(サーバー)での動作を保証するものではありません。
・改変等は自由ですが、自己責任でお願いします。
・有料版をご購入いただいた場合、初期不良を除き、ご使用後の返金には応じ兼ねます。
・有料版(著作権リンク削除含む)は1サイト(同一ドメイン)内であれば複製の上で複数利用可能です。
 2サイト目以降は都度サイトより購入申込みが必要になります。
 ※サブドメインはその性質上、別サイト(別ドメイン)とみなします。  

 ダウンロードいただいた時点で利用規約に同意したものとみなされます。

CSVファイルのセキュリティ、アクセス制限について

はじめに書きましたが、CSVファイルをサーバー上に置いている以上、一般ユーザがアクセスできてしまうとそれはそのまま個人情報の流出になってしまいます。よくニュースでサイトから○○名分の顧客情報が漏洩などがありますが、これは単純にこのCSVファイルのように顧客情報をどこかに保存しており、それを何の制限も無くサーバー上に置いてしまっていたために流出してしまったなどが多いと言われます。もちろんデータベース上のデータ流出も考えられます。サーバー上に置いている以上、どこからもリンクされていないから大丈夫と考えるのは大変危険です。

デフォルトではすでに対策済です。htaccessでのアクセス制限を導入しております。
デフォルトでcsvディレクトリ内にhtaccessファイルを設置し、ブラウザ上から直接CSVファイルにはアクセスできないよう設定しております。

CSVダウンロードは管理画面にアクセスすることで可能です。管理画面のログインには一般的なPHPのセッション(ログイン認証)を使った認証システムを採用しています。ただ、これは100%の安全を保証するものではありません。ユーザ名、パスワードでの認証はその性質上100%安全では無いからです(まぁこれは世のすべてのシステムに言えることです)。ユーザ名、パスワード設定時はなるべく長い文字列、かつ複雑な文字列で設定することがセキュリティを高めます。また、定期的にパスワードを変更する、保存データも定期的に削除するなども有効です。

PHPセッションによる認証は一般的な認証法ですので、個人的には十分なセキュリティを保っていると考えています。これが突破されるようであれば他のサイトの認証やBasic認証なども突破されることになります。
またよりセキュリティを高めるためsession_regenerate_id関数にて現在のセッションIDを常に新しいものと置き換えるような実装も行っております。

もしさらに安全な方法を望むのであれば、下記「CSV保存ディレクトリを公開領域外に設置する」、または管理画面内のCSVダウンロードボタンを削除し(単なるHTMLです)、管理画面からはダウンロードできないようにし、CSVをFTPソフトでサーバーからダウンロードし、それをクライアントにメール等で送る、またはクライアントにFTPソフトで直接ダウンロードしてもらうかのどちらかになります。この場合セキュリティは高まりますが、不便さは避けられませんので、クライアントなどに合わせて選択下さい。

以下でパスワード作成時のポイント、及びページ内のリンクにパスワードの強度を測ってくれるページもあります。
マイクロソフト セーフティとセキュリティセンター
http://www.microsoft.com/ja-jp/security/online-privacy/passwords-create.aspx

Basic認証やhtaccessでのアクセス制限はレンタルサーバーであればほぼ設置可能と考えられますが、すべての環境での動作を保証するものではありません。必ずテスト段階でブラウザで直接サーバー上のCSVファイルへのアクセスができないことを確認下さい。(サーバ上のCSVファイルをブラウザで絶対パス(http~)にて見るということ)
「403 Forbidden」等のエラーが表示されるはずです。もしCSVが見れてしまっているならそれは大問題ですので、CSVと同じ階層(ディレクトリ)にhtaccessがあるかどうか、またhtaccessが使用可能なサーバーか(レンタルサーバーであればほぼ使えます)ご確認ください。無料サーバー等ではほぼ使えないと思います。(まぁその場合、そもそもPHP自体使えないと思います)

CSV保存ディレクトリを公開領域外に設置する

デフォルトではadminやmailディレクトリと同じ階層にcsvディレクトリが設置されていますが、これを公開領域外に設置することでセキュリティは高まります。

公開領域外とはたとえば、「public_html」や「htdocs」ディレクトリより上の階層のことです。
※またはこれらと同じ階層でもOKですね。
※サイトのトップページのファイルがある階層のさらに上の階層ということです。
※ただし、サーバーによっては公開領域より上の階層へは入れない場合もあります。
ここはブラウザではアクセスできないため安全と言えます。

設定ファイル内にCSV保存ディレクトリパスを設定する箇所がありますので、そちらにフルパスにて任意のパスを指定して下さい。パスはサーバーにより異なりますので割愛させていただきます。

フルパスの確認方法は内容は異なりますが以下ページをご参考下さい。
http://www.php-factory.net/trivia/01.php
※path.phpのみアップの上でパスを確認すればOKです。htaccessなどは使用しないので無視してOKです。

以上のことをご留意の上でご使用下さい。
セキュリティーには必要十分な対応、対策を行なっておりますが、何らかの損失、損害等が発生したとしても当方は一切の責任を負いかねますのでご了承の上でご利用下さい。

セキュリティ対策について

メールフォームプログラムのセキュリティ対策についてはメールフォームプログラムのフリー版と同じになりますので、そちらをご参照下さい。

更新履歴

その他の更新履歴はフリー版と同じです。フリー版のページをご参照下さい。

2016.08.05 有料版としてリリースを開始しました。

PHPメールフォーム(無料)

PHPメールフォーム(有料)

新着情報・お知らせCMS

中古車・車両在庫CMS

よくある質問(FAQ)CMS

スタッフ紹介、プロフィールCMS

受付状況・待ち人数CMS

掲示板(BBS)管理画面付

写真ギャラリーCMS

投票・アンケートシステム

テロップ・ニュースティッカーCMS

営業日カレンダーCMS

カレンダー予約フォーム

リンク集ページCMS

アクセスカウンター

ダウンロードカウンター

その他

AIに仕事を奪われそうな人の集い
フォーム制作ならお任せください
メールフォーム自動テスト送信
PHPレスキュー
メールフォームの各種カスタマイズならお任せ下さい
業務効率化が可能なPHPオリジナルCMS制作します

役立つかも?なもの

豆知識や役立ち事など

PHPについて

各種情報