アプリ版:「スタンプのみでお礼する」機能のリリースについて

こんにちは。

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が出る原因を知りたい

出ないようにしたい。


なにぶんテスト環境下でエラーが出ないので、構文と設定を見直す事しか出来ないので、良きアドバイスください。
また、エラーを教えてくれたユーザーさん以外は通常に利用していますので、(教えてくれない方もいると思うし)この問題を解決したいので、よろしくお願いします。

「internal server errが」の質問画像

A 回答 (6件)

さくらのレンタルサーバーだと、エラーログは見られない可能性が高いですね。


サーバー単位の全ユーザーのエラーログ、となっているはずなので。

問題は示していただいた箇所とは違うソースです。

最後に画面にHTMLを出力する部分で失敗しているのだと思います。
ここで一番多いのが、Content-typeの出力忘れ、あるいは構文ミスですが、テスト環境ではうまく行っているとのことなので、考えづらい。

開発環境がWindowsで、さくらのレンタルサーバーはFreeBSD(EUC)その辺りも大丈夫でしょうか。

ブラウザへの出力部分、プログラムだけでも示せませんでしょうか?(文字列の内容は当然NGだとおもいますので***等黒塗りして)
    • good
    • 0

>>メールは送信されていて、画面がinternal server errorが表示されている状態です



であれば該当箇所とは別の部分のエラーだっぺ。

エラーログ見れるなら一番手っ取り早い、記録されている。
    • good
    • 0

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
    • good
    • 0

そのエラーが発生しているサーバー上に、テストプログラムを置いてトライ&エラーで原因を探すしかないんじゃないかな?



質問の記述を読む限り、(エラー発生後も)エラーが起こっている実サーバ上で動作検証はしていないように読めるんですが…
(私の読み違いなら申し訳ない)

もしそうだとすると、実サーバ上で操作したユーザさん全ての場合にエラーが発生しているけれど、連絡をくれたのは一人だけだったんじゃないかな?と思えて仕方ない。
※あくまでシステム内容が判らない状態で、勝手に想像しているだけですが

100%エラーが発生していると仮定すると、エラー発生で一番怪しいのはやはりsendmail
サクラ sendmail エラーで検索してみると、事例として似たものがいくつか。

http://www.dollpaper.com/info/363.html
http://blog.longkey1.net/archive/812

スパム送信対策として、サクラサーバ上に作成済みのユーザーメールアドレス以外からは送信できないという仕様になっている?
その制限に引っ掛かっている?

上記の記事からそんな風に想像しましたが、私はサクラサーバを使用した事がないので、実際は違うのかも知れません。

この回答への補足

おはようございます。
回答ありがとうございます。
私の説明の仕方が悪く本意が伝わっていませんでした。
テスト環境と言うのは、私の通信環境とPC環境の事をいいます。テストも本番も同じURLで行なっています。
ソースが2つ存在する事はありまん。
なので、テストでは通常通り、sendmailもしょうりゃく しているデータボースへの登録も成功しています。
ユーザーさまも送信ボタン後にメールは届いていますし、データの登録も出来ています。
重複しますが、送信ボタンを押すと、「登録ありがとうございました」がめんが表示されずに、internal server errorが表示されてしまうと言う状態です。

あらためて紹介いただいたリンク先等熟読させて頂きたいと思います。

補足日時:2013/05/11 07:58
    • good
    • 0

関係ないかもしれないが、旧漢字とか、このソースだとメールにて文字化けして?にならない?

この回答への補足

ありがとうございます。
旧漢字チェックしていませんでした。
テストしてみたいと思います。

補足日時:2013/05/10 22:36
    • good
    • 0

サーバ内のPHPプログラムの動作でエラーが出てるので、


ユーザーの環境ごとに異なる動作をするような内容で無ければ、
ユーザー(のブラウザとかの環境)によってはエラーが出る のではなく、
入力内容によってはエラーが出てるのだと推測します。

今はおそらく手元で再現できてない状態とおもいます。
※テストと本番はまったく同じ環境・設定ではないですよね?


1,レンタルサーバの環境しだいでは取れませんが、apacheのエラーログを見てみましょう。
  エラーの内容が書きだされてるかと思います。

2,エラーが出た時に入力した内容を教えてもらえれば教えてもらいましょう。


入力したデータのスクリーニングが甘くて意図しない値を入力されてエラーになってる気がするけど、
全体見てるわけでないのであくまでも推測。

外部からスパムメールの発信基地に利用されないようデータのチェックは必須

この回答への補足

ありがとうございます。
>※テストと本番はまったく同じ環境・設定ではないですよね?
全く同じ環境です。
私のテスト環境と言う説明がおかしかったので、誤解されたと思いますが、テスト環境は実サイトで自分の接続環境と言う意味です。(回線、PC等)

メールは送信されていて、画面がinternal server errorが表示されている状態です。(自分がテストしてもメールは届いて、最終画面に行きます。)

入力のスクリーニングですが、ユーザーさんが「aaaa」と入力してもエラーが出ているようです。
(ユーザーさんと話したのですが、パソコン初心者でお客様と言う事もあり、強くテストのお願いも出来ないのです。お客様使ってテストって言うのも失礼ですし。ここ割愛で!)

apacheのエラーログ見れるか確認してみます。

補足日時:2013/05/10 22:48
    • good
    • 0

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