このサイトで配布や販売しているプログラム(主にメールフォーム)に関して、よくある質問をまとめました。
「餅は餅屋」と言うように、
「最初からプロであり専門家である私に設置代行依頼をすれば時間や手間、つまり人件費を節約できるので、トータルで見ればプラスになるのに…。」
なんて思う部分も正直あったりしますが、自分で設置にチャレンジするのは勉強になりますし、設置のしやすさを売りにしているプログラムもありますので、ぜひこのページで問題解決のヒントを見つけて設置を成功させてください。
このページを見る前に「正しい設置手順」に従って設置するのも、成功確率を高めるでしょう。
ちなみに、このページはよくある質問を思いつき次第、随時追加していく予定です。
必須や任意のラベルが表示されない。
index.htmlからJavaScriptファイルが読み込めていません。
index.html内の以下の部分でJavaScriptファイルへのパスが正しいかどうか確認しましょう。
<script src="js/mailform-js.php"></script>
日時選択カレンダーをカスタマイズしたい。
日時選択カレンダーはDateTimePickerというjQueryライブラリを使用していますので、それについて公式サイトを見たり、検索して調べたりすると良いでしょう。
PHPファイルにブラウザで直接アクセスしてみると、コードがそのまま画面に表示される
index.htmlからのメール送信が失敗する場合、mailform.phpやconfig.phpに直接ブラウザでアクセスしてみるといいかもしれません。
その際、PHPのソースコードがそのまま画面に表示されている場合は、お使いのサーバでPHPが動作しておりません。
無料のレンタルサーバなどだとPHPが動作しない場合もありますので、お使いのサーバでPHPが使えるかどうか確認してみましょう。
ページの表示やメール本文が文字化けする
文字化けが起きるのは、文字コードの設定がファイルごとに統一されていないことが原因です。
HTMLファイルやCSSファイル、JavaScriptやPHPファイルすべてが同じ文字コードになっていないといけません。
ソースコード内で文字コードを設定している部分を合わせるだけでなく、そのファイルを保存する際にも文字コードを合わせる必要があります。
ファイル保存のやり方のページも参考にどうぞ。
またそれだけでなく、サーバ側の設定も同じ文字コードである必要があります。
がしかし、サーバ側の設定はPHPファイル側で設定変更可能なので、問題にならないかもしれません。(当サイトで配布・販売しているプログラムはすべてUTF-8です)
古いバージョンから新しいバージョンへの移行の際に正常動作しない場合
ダウンロードページにも記載してありますが、過去バージョンとの互換性はありません。
ですので、新しいバージョンに移行する際には、PHPファイルやJavaScriptファイルだけでなく、HTMLやCSSファイルすべてを上書きして置き換える前提で設置する必要があります。
例えば過去バージョンではmailform.jsというファイル名だったのが、新しいバージョンではmailform-js.phpに変わっていたり、気づきにくい変化があったりします。
ファイル名が変わっているということは、HTMLファイルからの読み込みパスも以下のように変更する必要があります。
<script src="js/mailform-js.php"></script>
上記例の他にも、過去バージョンではid=”gender_1″だったのが、新しいバージョンではclass=”gender”というように、id名からclass名に変更になっていたりします。
ここが間違っているとCSSでのデザイン設定がうまく適用されなかったり、JavaScriptからの入力チェックなども正常に動作しなくなったりします。
それに連動してPHPファイル側も正常に動作しなくなります。
というわけで、設置する方にはお手数ですが、新しいバージョンに移行させる場合にはHTMLファイルからすべて移行させる前提でお願いいたします。
過去バージョンのコードをそのまま流用したりすると、正常に動作しない原因となりえます。
入力項目を追加すると正常に動作しない。または追加した項目がメールに記載されていない
バージョン5.0未満では入力項目を追加することが難しかったのですが、バージョン5.0からは各項目を簡単に追加できるようになりました。
しかし、どのように追加しても正常に動作するわけではありません。
初期状態のように、
dt要素には項目名。
dd要素には1行テキストボックスやラジオボタン・チェックボックスなどのフォーム部品。
という形が原則となります。
不自由に感じるかもしれませんが、現状ではこのような仕様のメールフォームであるとお考えください。
また、dd要素内に複数のフォーム部品を入れると、現状(バージョン5.0現在)では正常に動作しないと思います。
おそらくメールは送信されるけども、そのメール内に記載されない気がします。
ただ例外として、1行テキストボックスだけは2つまでdd要素内に入れても正常に動作します。(初期状態で姓と名や住所欄が2つ連続であるように)
2017年4月18日追記:バージョン5.1からは1つのdd要素内に1行テキストボックス(input type=”text”)がいくつあっても正常に動作するようになりました。
このような仕様になっておりますので、項目を追加したい場合はdt・dd要素ごと追加する形でカスタマイズするのが良いと思われます。
「メールフォームの各ファイルの相関図」のページでも解説していますが、CSSファイルはメールフォームの動作に関与していないため、見た目のデザインに関してはなるべくHTMLを変更せず、CSSで強引に行ってしまうほうが無難です。