質問をすることでしか得られない、回答やアドバイスがある。

15分調べてもわからないことは、質問しよう!

ただいまの
回答率

90.36%

  • PHP

    21243questions

    PHPは、Webサイト構築に特化して開発されたプログラミング言語です。大きな特徴のひとつは、HTMLに直接プログラムを埋め込むことができるという点です。PHPを用いることで、HTMLを動的コンテンツとして出力できます。HTMLがそのままブラウザに表示されるのに対し、PHPプログラムはサーバ側で実行された結果がブラウザに表示されるため、PHPスクリプトは「サーバサイドスクリプト」と呼ばれています。

HTTP ERROR 500エラーの解消

受付中

回答 1

投稿 編集

  • 評価
  • クリップ 0
  • VIEW 239

tenjikun

score 2

 HTTP ERROR 500エラーの解消

以下のPHPの記述で該当ページが500エラーとなってしまいます。

当方PHPの知識が皆無のため、問題個所をご指示いただきたいです。

以前は正常に処理されていたのですが、おそらくPHPのバージョンが5.6.3に上がってからエラーが出るようになりました。ですがそれも定かではありません。

 発生している問題・エラーメッセージ

HTTP ERROR 500

 該当のソースコード

<?php
/******************************************************************
確認画面
******************************************************************/
    /********************************************************
    基本処理
    ********************************************************/
    // 共通定数を読み込みます(必須)
    include_once "riCommon.inc";
    // キャッシュを制御を行います(必須)
    include_once "riCache.inc";
    // 初期処理ルーチンを読み込みます(必須)
    include_once "riProcStart.inc";
    // フォーム定義読み込み
    include_once "./form_info01.inc";

    // 表示項目の初期化
    $ShowVal = array();

    // エラーテンプレートを変更
    $appl->setErrorTemplate( "./loansim01_error.html" );

    /********************************************************
    送信情報処理
    ********************************************************/
    // 送信データをセッションに保存
    rcTrans::ar2ar($_POST, &$_SESSION, $form->FormInfo);

    // フォーム値の加工処理
        // 必須をはずす
//        rcTrans::rmValueFromArray(&$essentialItem, "sample");

    // エラーチェック用変数にセッション値をコピー
    foreach ($_SESSION as $key => $value) {
        if (is_array($value)) {
            $CheckData[$key] = implode(",", $value);
        } else {
            $CheckData[$key] = $value;
        }
    }

    // その他のエラーチェック
    include_once "./value_check01.inc";
    // 汎用エラーチェック
    $errChecker = new rcErrorCheck(&$appl, &$form, &$CheckData, &$arError);


    /********************************************************
    表示用加工処理
    ********************************************************/

//    $h_mon     = 100000; 
//    $ritu      = 3; 
//    $h_bonus   = 100000; 
//    $kikan     = 360;

    // 月額のお支払い希望額
    $h_mon     = $CheckData["shiharai"];

    // 金利
//    $ritu      = $CheckData["kinri"];
    if(!$CheckData["kinri_check"]){
        $ritu = $CheckData["kinri"];
    }else{
        $ritu = IEZO_KINRI;
        $ShowVal["kinri"] = "「※個人名のため※特別金利」<br>".※個人名のため※;
    }

    // 返済期間(年単位を月へ修正)
    $kikan     = $CheckData["year"] * 12;

//月額のお支払い希望額×4. ボーナス返済額÷100)×6(ヶ月)
//    $h_bonus   = $CheckData["bonus2"];
    if($CheckData["bonus"] == "あり"){
        $h_bonus = $h_mon * $CheckData["bonus2"] / 100 * 6;
    }else{
        $h_bonus = 0;
        $ShowVal["bonus2"] = 0;
    }



    $yearkikan = $kikan;

    $riritu    = $ritu;

    $kai_mon = $kikan;
    $kai_bonus = $kikan / 6;

    $tukiri1 = $riritu / (100*12);
    $tukiri2 = pow(1 + $tukiri1, $kai_mon);

    $yusi_mon = $h_mon * ($tukiri2 - 1) / ($tukiri1 * $tukiri2);

    $tukiri1_b = $riritu / (100 * 2);
    $tukiri2_b = pow(1 + $tukiri1_b, $kai_bonus);

    $yusi_bonus = $h_bonus * ($tukiri2_b -1) / ($tukiri1_b * $tukiri2_b);

    $kari = $yusi_mon + $yusi_bonus;

    $r_bonus = $yusi_bonus / $kari;

    $ShowVal["all"] = number_format($kari);
//    $ShowVal[""] = number_format($yusi_mon)."<BR>";
//    $ShowVal[""] = number_format($yusi_bonus)."<BR><BR>";
// 金利
//    $ShowVal["kinri"] = "";

    $temp = rcTrans::multiShowEscape($CheckData);
    $ShowVal = $ShowVal + $temp;
?>

 試したこと

 補足情報(FW/ツールのバージョンなど)

ソース上の※個人名のため※は、個人名のため変更しています。

静的サイトのhtmlファイルに.htaccesを使ってPHPを記述しています。

ローンシュミレーションをおこなうページで、別ファイルからform actionでsubmitしたときに該当ページに飛びますが、その時に500エラーとなります。

上記のPHPコードを削除し、submitした場合データは反映されませんがページは表示されます。

※追記
サーバーログで確認したところ
PHP Fatal error: Call-time pass-by-reference has been removed in /var/www/~ on line 27, referer: https://www~
というエラー内容でした。

// 送信データをセッションに保存
rcTrans::ar2ar($_POST, &$_SESSION, $form->FormInfo);
の部分だと思うのですがよろしくお願いいたします。

  • 気になる質問をクリップする

    クリップした質問は、後からいつでもマイページで確認できます。

    またクリップした質問に回答があった際、通知やメールを受け取ることができます。

    クリップを取り消します

  • 良い質問の評価を上げる

    以下のような質問は評価を上げましょう

    • 質問内容が明確
    • 自分も答えを知りたい
    • 質問者以外のユーザにも役立つ

    評価が高い質問は、TOPページの「注目」タブのフィードに表示されやすくなります。

    質問の評価を上げたことを取り消します

  • 評価を下げられる数の上限に達しました

    評価を下げることができません

    • 1日5回まで評価を下げられます
    • 1日に1ユーザに対して2回まで評価を下げられます

    質問の評価を下げる

    teratailでは下記のような質問を「具体的に困っていることがない質問」、「サイトポリシーに違反する質問」と定義し、推奨していません。

    • プログラミングに関係のない質問
    • やってほしいことだけを記載した丸投げの質問
    • 問題・課題が含まれていない質問
    • 意図的に内容が抹消された質問
    • 広告と受け取られるような投稿

    評価が下がると、TOPページの「アクティブ」「注目」タブのフィードに表示されにくくなります。

    質問の評価を下げたことを取り消します

    この機能は開放されていません

    評価を下げる条件を満たしてません

    評価を下げる理由を選択してください

    詳細な説明はこちら

    上記に当てはまらず、質問内容が明確になっていない質問には「情報の追加・修正依頼」機能からコメントをしてください。

    質問の評価を下げる機能の利用条件

    この機能を利用するためには、以下の事項を行う必要があります。

質問への追記・修正、ベストアンサー選択の依頼

  • Lulucom

    2018/04/20 15:54

    「静的サイトのhtmlファイルに.htaccesを使ってPHPを記述しています。」は具体的にはどういうことでしょうか。

    キャンセル

  • tenjikun

    2018/04/20 16:08

    AddType application/x-httpd-php .php .htmlを記述しています。その他のincludeファイルの呼び出しなどは正常に動いています。よろしくお願いします。

    キャンセル

回答 1

+4

500エラーの原因は本当に多岐に渡るので様々な角度から調べる必要があります。

  • .htaccessに記載ミスはないか
  • サーバーのログにエラーは出力されていないか(必須確認事項
  • どこまで処理が正常に行われているか(どこで落ちているか)

下記の質問にも色々と方法が提示されていますので、ご確認を。

投稿

編集

  • 回答の評価を上げる

    以下のような回答は評価を上げましょう

    • 正しい回答
    • わかりやすい回答
    • ためになる回答

    評価が高い回答ほどページの上位に表示されます。

  • 回答の評価を下げる

    下記のような回答は推奨されていません。

    • 間違っている回答
    • 質問の回答になっていない投稿
    • スパムや攻撃的な表現を用いた投稿

    評価を下げる際はその理由を明確に伝え、適切な回答に修正してもらいましょう。

  • 2018/04/20 15:33

    Internal Server Error はWebサーバソフトウェア(この質問ではapache)が出力するものでは?

    キャンセル

  • 2018/04/20 19:16

    回答のどの部分に対するご指摘か分からないですが、色々見ていく必要があると思い、書きだしました。
    過不足ありましたら教えてください。

    キャンセル

  • 2018/04/20 19:28

    apacheが出力しているので、以下の確認は必要ないと考えました。
    > サーバー(Apache)は起動しているか

    キャンセル

同じタグがついた質問を見る

  • PHP

    21243questions

    PHPは、Webサイト構築に特化して開発されたプログラミング言語です。大きな特徴のひとつは、HTMLに直接プログラムを埋め込むことができるという点です。PHPを用いることで、HTMLを動的コンテンツとして出力できます。HTMLがそのままブラウザに表示されるのに対し、PHPプログラムはサーバ側で実行された結果がブラウザに表示されるため、PHPスクリプトは「サーバサイドスクリプト」と呼ばれています。