こんにちは。
internal server errorが出る原因を知りたい
さくらのレンタルサーバーを使用してサイトを運営しています。
開発環境で全くエラーが表示されず公開したのですが、あるユーザーさんより
フォーム送信後にエラーが出ると指摘されました。(添付画像)
テスト環境では何度やってもエラーがです、ユーザーさんに連絡したのですが、細かい事を聞くことが出来ず自分でどうやって対応したら良いか困って質問してみました。
状況は問い合わせフォームより必要事項を入力してもらい → 確認ボタン押下 → 送信ボタン押した時に添付画像が出るようです。
しつこいですが、テスト環境では普通に送信ありがとうございました。の画面に飛びます。
テスト環境について
OS
Windows vista
Windows 7
ブラウザ
Firefox 16
ie 8
chrome 26.0.1410.64 m
safari 5.17
言語等
PHP 5.2.17
SQL 5.5.28
ソース
エンコードの種類 UTF-8
なのでメタで
<meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
エラー出てるのが、メール送信部のようなのですが、テスト環境ではエラーが出ません。
確認ボタン押下 から 送信ボタン押して 次の画面までの処理の中で、文字のエンコードをしています。
phpのエラーが出てる部分と思われる場所。(確証はありせんが、確認ボタン押下した時、送信ボタン押下した時の処理の違いが、このあたりだけなので・・・)
$body = "■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■\n";
$body.= "■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■\n";
$body.= $disp_name."\n";
$body.= "\n";
$body.= "今後ともよろしくお願いいたします。\n";
$body.= "━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━".$conf["SITE_NAME_SUB"]."\n";
//再設定
mb_language("Japanese");
mb_internal_encoding("UTF-8");
$from = $conf["SITE_MAIL"];
$addheader = "From: ".$from."\n";
$addheader.= "Reply-To: ".$from."\n";
$subject = "【".$conf["SITE_NAME_SUB"]."】登録ありがとうございます。";
$subject = mb_convert_kana( $subject , "KV" );
$body = mb_convert_kana( $body , "KV" );
$to_mail = $inp_mail1;
mb_send_mail( $to_mail , $subject , $body , $addheader );
で、internal server errorなのでphp.iniも関係あるかな?って思って下記に記載しました。
php.iniの設定
-----------------------------------------------------
register_globals = On
language = "Japanese"
mbstring.encoding_translation = Off
mbstring.internal_encoding = “UTF-8″
mbstring.http_input = auto
mbstring.http_output = “UTF-8″
include_path = .:/usr/lib/php:/usr/local/lib/php
| ;include_path = "/home/username/www/install/PEAR"
-----------------------------------------------------
知りたい事
internal server errorが出る原因を知りたい
↓
出ないようにしたい。
なにぶんテスト環境下でエラーが出ないので、構文と設定を見直す事しか出来ないので、良きアドバイスください。
また、エラーを教えてくれたユーザーさん以外は通常に利用していますので、(教えてくれない方もいると思うし)この問題を解決したいので、よろしくお願いします。
A 回答 (6件)
- 最新から表示
- 回答順に表示
No.6
- 回答日時:
さくらのレンタルサーバーだと、エラーログは見られない可能性が高いですね。
サーバー単位の全ユーザーのエラーログ、となっているはずなので。
問題は示していただいた箇所とは違うソースです。
最後に画面にHTMLを出力する部分で失敗しているのだと思います。
ここで一番多いのが、Content-typeの出力忘れ、あるいは構文ミスですが、テスト環境ではうまく行っているとのことなので、考えづらい。
開発環境がWindowsで、さくらのレンタルサーバーはFreeBSD(EUC)その辺りも大丈夫でしょうか。
ブラウザへの出力部分、プログラムだけでも示せませんでしょうか?(文字列の内容は当然NGだとおもいますので***等黒塗りして)
No.5
- 回答日時:
>>メールは送信されていて、画面がinternal server errorが表示されている状態です
であれば該当箇所とは別の部分のエラーだっぺ。
エラーログ見れるなら一番手っ取り早い、記録されている。
No.4
- 回答日時:
php.iniにおいて、sendmail_path の設定を確認いただきたいと思います。
http://support.sakura.ad.jp/manual/rs/tech_cgi.h … にあります通り、
/usr/sbin/sendmail
となっておりますでしょうか。基本的なところでありますが、デフォルトのままですと気になるところです。関連質問を示します。
http://oshiete.goo.ne.jp/qa/3560357.html
No.3
- 回答日時:
そのエラーが発生しているサーバー上に、テストプログラムを置いてトライ&エラーで原因を探すしかないんじゃないかな?
質問の記述を読む限り、(エラー発生後も)エラーが起こっている実サーバ上で動作検証はしていないように読めるんですが…
(私の読み違いなら申し訳ない)
もしそうだとすると、実サーバ上で操作したユーザさん全ての場合にエラーが発生しているけれど、連絡をくれたのは一人だけだったんじゃないかな?と思えて仕方ない。
※あくまでシステム内容が判らない状態で、勝手に想像しているだけですが
100%エラーが発生していると仮定すると、エラー発生で一番怪しいのはやはりsendmail
サクラ sendmail エラーで検索してみると、事例として似たものがいくつか。
http://www.dollpaper.com/info/363.html
http://blog.longkey1.net/archive/812
スパム送信対策として、サクラサーバ上に作成済みのユーザーメールアドレス以外からは送信できないという仕様になっている?
その制限に引っ掛かっている?
上記の記事からそんな風に想像しましたが、私はサクラサーバを使用した事がないので、実際は違うのかも知れません。
この回答への補足
おはようございます。
回答ありがとうございます。
私の説明の仕方が悪く本意が伝わっていませんでした。
テスト環境と言うのは、私の通信環境とPC環境の事をいいます。テストも本番も同じURLで行なっています。
ソースが2つ存在する事はありまん。
なので、テストでは通常通り、sendmailもしょうりゃく しているデータボースへの登録も成功しています。
ユーザーさまも送信ボタン後にメールは届いていますし、データの登録も出来ています。
重複しますが、送信ボタンを押すと、「登録ありがとうございました」がめんが表示されずに、internal server errorが表示されてしまうと言う状態です。
あらためて紹介いただいたリンク先等熟読させて頂きたいと思います。
No.1
- 回答日時:
サーバ内のPHPプログラムの動作でエラーが出てるので、
ユーザーの環境ごとに異なる動作をするような内容で無ければ、
ユーザー(のブラウザとかの環境)によってはエラーが出る のではなく、
入力内容によってはエラーが出てるのだと推測します。
今はおそらく手元で再現できてない状態とおもいます。
※テストと本番はまったく同じ環境・設定ではないですよね?
1,レンタルサーバの環境しだいでは取れませんが、apacheのエラーログを見てみましょう。
エラーの内容が書きだされてるかと思います。
2,エラーが出た時に入力した内容を教えてもらえれば教えてもらいましょう。
入力したデータのスクリーニングが甘くて意図しない値を入力されてエラーになってる気がするけど、
全体見てるわけでないのであくまでも推測。
外部からスパムメールの発信基地に利用されないようデータのチェックは必須
この回答への補足
ありがとうございます。
>※テストと本番はまったく同じ環境・設定ではないですよね?
全く同じ環境です。
私のテスト環境と言う説明がおかしかったので、誤解されたと思いますが、テスト環境は実サイトで自分の接続環境と言う意味です。(回線、PC等)
メールは送信されていて、画面がinternal server errorが表示されている状態です。(自分がテストしてもメールは届いて、最終画面に行きます。)
入力のスクリーニングですが、ユーザーさんが「aaaa」と入力してもエラーが出ているようです。
(ユーザーさんと話したのですが、パソコン初心者でお客様と言う事もあり、強くテストのお願いも出来ないのです。お客様使ってテストって言うのも失礼ですし。ここ割愛で!)
apacheのエラーログ見れるか確認してみます。
お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!
似たような質問が見つかりました
- JavaScript ①入力フォーム→②確認表示画面→③送信完了画面のコードを書いているのです、 入力フォームから受け取っ 2 2022/05/10 16:45
- JavaScript 入力フォームの javascript で メールアドレスの正規チェックをを行い、ボタンをクリックして 2 2022/04/27 16:06
- PHP PHPのエラーの解消法について教えて下さい。 1 2023/02/06 10:48
- HTML・CSS ボタンをクリックした時に、入力フォームのすぐ下部に、「入力欄が空白です」というテキストメッセージが表 1 2022/04/27 16:25
- PHP PHP MySql 画像を取得 1 2022/06/04 14:05
- PHP php テーブルが作成できない 1 2022/11/17 23:41
- PHP phpのメールフォームの完了画面でメール受信のコードを書いています。 1 2023/05/31 11:39
- PHP php ログイン 1 2022/11/01 00:24
- PHP 入力した部分を表示させたまま(保持)するにはどうすれば良いでしょうか? 1 2023/01/25 11:14
- AJAX JavascriptからPHPへのAjax通信でnullが返ってくる 3 2022/08/03 22:00
関連するカテゴリからQ&Aを探す
おすすめ情報
デイリーランキングこのカテゴリの人気デイリーQ&Aランキング
-
ワードプレスサイト PHP8.0.25...
-
パースエラーとは?
-
phpでクラスのメソッドで同名の...
-
phpでPEAR::DBを使っているので...
-
ローカルでは正常に動くのにサ...
-
PHPのHttpRequestモジュールに...
-
fgetcsv_regについてのご質問
-
フォントの色を変えるには?
-
preg_replace() で、 urlencode()
-
centOSにcakePHPを入れた際のエ...
-
awsにApacheとPHPを入れて、何...
-
php pear mdb2に質問です。
-
phpの imap_search で漢字コード
-
onedrive にexcelファイルをア...
-
こちらはただの直列処理ですか?
-
ワードプレス、Contact Form 7...
-
拡張子php画像をjpg画像等に変...
-
PHPとCSVで簡易データベースな...
-
include先でのinclude元の変数...
-
リダイレクト元のURLの取得方法...
マンスリーランキングこのカテゴリの人気マンスリーQ&Aランキング
-
フォントの色を変えるには?
-
PHP8を使うと、大量のWarningが...
-
awsにApacheとPHPを入れて、何...
-
phpでPEAR::DBを使っているので...
-
ワードプレスサイト PHP8.0.25...
-
パースエラーとは?
-
phpでクラスのメソッドで同名の...
-
PHPで、エラーがない場合のみ画...
-
トランザクションが原因?DBに...
-
「@$変数」の「@の意味は?」
-
PHPでfatal errorが出ても無視...
-
PHPで特定のURLにジャンプす...
-
正規表現での最後尾のバックス...
-
PHPでネットワークドライブのop...
-
bindValueエラー
-
error_reporting(0);にも関わら...
-
これは例外処理でしょうか?
-
ある条件に当てはまったときに...
-
php5.6でsimplexml_load_string...
-
PHPでSMTPを使ってメール送信で...
おすすめ情報