プログラム(主にメールフォーム)に関してよくある質問まとめ


このサイトで配布や販売しているプログラム(主にメールフォーム)に関して、よくある質問をまとめました。
「餅は餅屋」と言うように、

「最初からプロであり専門家である私に設置代行依頼をすれば時間や手間、つまり人件費を節約できるので、トータルで見ればプラスになるのに…。」

なんて思う部分も正直あったりしますが、自分で設置にチャレンジするのは勉強になりますし、設置のしやすさを売りにしているプログラムもありますので、ぜひこのページで問題解決のヒントを見つけて設置を成功させてください。

このページを見る前に「正しい設置手順」に従って設置するのも、成功確率を高めるでしょう。

ちなみに、このページはよくある質問を思いつき次第、随時追加していく予定です。

必須や任意のラベルが表示されない。

index.htmlからJavaScriptファイルが読み込めていません。
index.html内の以下の部分でJavaScriptファイルへのパスが正しいかどうか確認しましょう。

<script type="text/javascript" src="js/mailform-js.php"></script>

日時選択カレンダーをカスタマイズしたい。

日時選択カレンダーはDateTimePickerというjQueryライブラリを使用していますので、それについて公式サイトを見たり、検索して調べたりすると良いでしょう。

ロリポップやヘテムルのサーバで403エラーになる

ロリポップやヘテムルのサーバをお使いの場合、PHPプログラムが403エラーになる可能性があります。
これらのサーバでは「WAF設定」というのがデフォルトでONに設定されており、それを無効に変更しなければPHPプログラムが動作しないようです。

ロリポップのWAF設定
https://lolipop.jp/manual/user/waf-set/

ロリポップとヘテムルは同じGMOが運営しているレンタルサーバとなるのですが、ロリポップは2013年にサーバ設定の不備からWordPressサイトが改ざんされる被害を受けたり、FTPのアクセス制限やWordPressログイン画面へのアクセス制限など、他のレンタルサーバではないような変な制限をかけていたりするので、技術力が低いのかもしれません。

「安かろう悪かろう」の典型のように思えますが、さくらインターネットは同じような安さで問題がないため(私自身が過去10年近く使用経験あり)、私個人としてはサーバ移転をおすすめします。
(さくらインターネットもWAF設定がありますがデフォルトではオフとなっているため、あまり問題になることがありません)

このようなおかしなサーバはPHPやCGIプログラムの設置で困るケースが多いだけでなく、サイト運用でも上述のような面倒な事態が発生しうるため、さくらインターネットエックスサーバーのようにごく一般的な設定で運用されているサーバに移行したほうが、今後のためにはベターかと思います。

え? なに? Yahoo!ジオシティーズ?
そんなサーバは即解約でしょう。(個人的主観)
補足説明:YahooジオシティーズのサーバではYahooのメールアドレスが送信元じゃないとSendmail、つまりプログラムでのメール送信ができません。

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 type="text/javascript" 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で強引に行ってしまうほうが無難です。

サポートBBS

サイト内を検索
サイト運用事例
ダウンロード

ダウンロード一覧へ

Web制作のブログ

ブログ記事一覧へ

カテゴリ別
制作者の詳細
  • 谷元博のブログ
  • Google+