プロが教えるわが家の防犯対策術!

お世話になります。
これまで、管理してもらってたホームページ屋さんが
つぶれてしまい、いくつか預けていたホームページを
返してもらいました。
ですがそのうち1つのサイトの問い合わせフォームに不具合が出て
困っています。

問い合わせフォームを記入して「確認」ボタンを押すと
次のようなエラーメッセージが出ます。


Internal Server Error
The server encountered an internal error or misconfiguration and was unable to complete your request.
Please contact the server administrator, and inform them of the time the error occurred, and anything you might have done that may have caused the error.
More information about this error may be available in the server error log.
Additionally, a 404 Not Found error was encountered while trying to use an ErrorDocument to handle the request.
----------------------------------------------------------


正常に使えるようにするにはどうすればいいでしょうか?
ちなみにサーバへはいつでも入れます。中はよくわかりませんが。

A 回答 (3件)

まず、正常に動作していたものが変更したら動かなくなったという事で、その変更に問題があるという事は間違いないでしょうね。



元の『正常に動作していた』という、問い合わせフォームのファイルは残っていますか?
残っていれば解決が早い可能性が高いです。
CD-Rで貰っていれば、そこから再度パソコン内にコピーすればいいと思います。(原本)とでも名前を付けて、更新しないようにしておくと良いですね。

また、変更点は問い合わせフォームのみでしょうか?
同時に複数個所を変更していると、問い合わせフォームの間違いだと決めつけて問題点を探しても見つからず、最終的に別のファイル(フォルダ)に加えた変更が原因だったという事が見つかるまでに無駄に時間を費やしてしまうかも知れません。

まずは、新旧のファイル比較をする際に便利なソフトを紹介します。
二つのファイルを比較して、変更された箇所を色着けで表示してくれます。
変更箇所が原因で問題が発生した場合に役に立ちます。
http://www.vector.co.jp/soft/win95/util/se113286 …
http://www.vector.co.jp/soft/win95/util/se381869 …


次に、このあたりが怪しいと思われる点を書いてみます。

捕捉で書かれていた、formタグの中の以下の部分です。
action="php/postmail/postmail.cgi"

まず、ここを書き換えていないかですね。
書き換えていた場合は、書き間違いなどで対象のファイルが存在しない可能性が高いです。
書き換えていない場合、サーバー上で言えば例えば
"[public_html]/php/postmail/postmail.cgi"
にファイルが存在するかどうかを確認する必要があります。
[public_html]の部分は、そのサーバーによって変化します。
途中のフォルダ名、[php]や[postmail]なども変更されていないか、大文字小文字を変更していないか[PHP]/[PostMail]など、ファイル名も同様ですね[PostMail.cgi]など。
新サイト完成まで以下のように動かしたいといった形で、フォルダ構造を変更しなかったかも重要です。
"[public_html]/[old]/**********"(完成まで公開している旧サイト)
"[public_html]/[new]/**********"(完成までのテスト用)

他に確認する点は、[確認]ボタンが
<input type="submit" value="確認" />
であればOKですが、
<input type="button" value="確認" onclick="xxxxxxxxx" />
となっていないか。
後者では、クリック時にJavaScriptで画面遷移しているので、
<form action="xxxxxxxxxxxxx">
は無視されます。

とにかく、動かなくなる前と後でどこをどう変更したか、それを考えてみれば解決すると思います。

あと、そのエラーメッセージが出ている際の、ブラウザのアドレスバーのURL
ここも良く見てください。
本来であれば
http://******.co.jp/php/postmail/postmail.cgi
を見に行かなければならないのに
http://******.co.jp/abcde/php/postmail/postmail. …
を表示しているなどがないか、など。
    • good
    • 0
この回答へのお礼

とてもわかりやすい解説ありがとうございました。おかげで復旧する事に成功しました。どうやら原因はタグの記述ミスだったようです。
本当に助かりましたm(__)m

お礼日時:2008/12/05 10:49

404 Not Foundですから、ファイルがないんでしょうね。


[確認]ボタンのリンク先のファイル名を調べる方法はわかりますか?
直前の
<form action="./*****.php">
に書かれているか、JavaScriptなどで書かれていると思います。
そこが相対パスであれば、すべて返してもらったという事で動作すると思いますが、"http://"から始まるか、"/"から始まるHTTPサーバー上の絶対パスで書かれているのではないでしょうか。
それで階層の違いにより、動作しないという現象が発生しているのかも知れません。
もしくは、ディレクトリ名を変更したため発生しているか。

個人的には、別の業者さんを探すことを勧めます。

この回答への補足

回答ありがとうございます。
業者から引き取った直後は正常でしたが
新しい問い合わせフォームをdreamweaverでアップロード
してからおかしくなってしまいました。

私が素人過ぎてイマイチ理解できませんが
フォームのソースは以下のようにはじまっています。
<form name="form1" method="post" action="php/postmail/postmail.cgi">

引き続きご教授お願い致します。

補足日時:2008/12/04 02:48
    • good
    • 0

単なるサーバエラーならばパーミッションが違うとか、必要なファイルがないとかが考えられます。


詳しくはサーバーのerror logを見れば分かるかもしれません。
    • good
    • 0

お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!