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

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

ただいまの
回答率

88.57%

require_onceの後の処理が行われない

解決済

回答 2

投稿

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

romukuro0328

score 15

 困っていること

初歩的な問題かもしれませんが、ご教示願いたいです。
phpで記述した処理の分岐処理の確認をしたくて
phpでrequire_onceを用いて外部ファイルを読み込むと、そのあとに記述したechoが表示されません。
require_onceの前に記述したechoは正常に出力されますし、エラー表示もでてきません。
require_onceの部分をコメントアウトすると表示がうまくいくのですが、
何が影響しているのでしょうか?
調べてもそのような事例が出てこず、困っています。
今まで自分が書いてきたコードでもrequire_onceを用いたものはありますが、処理が行われない(行われているが表示されない?)ことはありませんでした。
単純に出力だけを行うことがなかったので気づかなかったのかもしれませんが…
ご存知の方がいらっしゃいましたら回答いただけると幸いです。

 ソースコード

記述途中で見づらいですがご容赦ねがいます。

<?php       

    ini_set( 'display_errors', 1 );

    print "hi";


    require_once('./MainController.php');
    require_once('./DetailController.php');
    require_once('./SearchController.php');
    require_once('./AnslistController.php');
    require_once('./OblistController.php');
    require_once('./ReportlistController.php');
    require_once('./BanwordlistController.php');



        /* $getdata = $_GET["c"]; */
        $getdata="Banwordlist";
        print "HI";

        if(strstr($getdata,'Main')==true){//質問一覧取得
            $url = './Controller/'. $getdata .'Controller.php';//リダイレクト先URLの指定
            header('Location: ' . $url, true, 301);//httpレスポンスのヘッダー
            exit;//全ての出力を終了
        }else if(strstr($getdata,'Detail')==true){//詳細一覧取得
            $url = './Controller/'. $getdata .'Controller.php';//リダイレクト先URLの指定
            header('Location: ' . $url, true, 301);//httpレスポンスのヘッダー
            exit;//全ての出力を終了
        }else if(strstr($getdata,'Search')==true){//検索一覧取得
            $url = './Controller/'. $getdata .'Controller.php';//リダイレクト先URLの指定
            header('Location: ' . $url, true, 301);//httpレスポンスのヘッダー
            exit;//全ての出力を終了
        }else if(strstr($getdata,'Anslist')==true){//回答者一覧取得
            $url = './Controller/'. $getdata .'Controller.php';//リダイレクト先URLの指定
            header('Location: ' . $url, true, 301);//httpレスポンスのヘッダー
            exit;//全ての出力を終了
        }else if(strstr($getdata,'Oblist')==true){//監視者一覧取得
            $url = './Controller/'. $getdata .'Controller.php';//リダイレクト先URLの指定
            header('Location: '. $url, true, 301);//httpレスポンスのヘッダー
            exit;//全ての出力を終了
        }else if(strstr($getdata,'Reportlist')==true){//通報一覧取得
            $url = './Controller/'. $getdata .'Controller.php';//リダイレクト先URLの指定
            header('Location: '. $url, true, 301);//httpレスポンスのヘッダー
            exit;//全ての出力を終了
        }else if($getdata=="Banwordlist"){//禁止ワード一覧取得
            /* $url = './Controller/'. $getdata .'Controller.php';//リダイレクト先URLの指定
            header('Location: '. $url, true, 301);//httpレスポンスのヘッダー */
            echo "Hi";
            //$test=new $BanwordlistController();
            //$test->Banwordlist();
            exit;//全ての出力を終了
        }else{
            header("HTTP/1.0 404 Not Found");//404エラーを返す
            exit;
        }



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

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

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

    クリップを取り消します

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

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

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

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

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

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

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

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

    質問の評価を下げる

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

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

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

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

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

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

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

    詳細な説明はこちら

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

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

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

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

  • romukuro0328

    2018/11/07 16:56

    リファレンスだけでは少しかみ砕けなかったので他のサイトも閲覧してきました(汗なるほど、httpの仕様上やってはいけないことだったのですね。こちらも初めて知りました。学校で教わることがない事ばかりで改めて勉強不足を痛感致しました。ご丁寧にコメントやアドバイスありがとうございました!解決しましたので、閉じさせていただきますね。本当にありがとうございました。

    キャンセル

  • m.ts10806

    2018/11/07 16:56

    ただ、本件は解決したようですし、私のコメントで解決したようでしたらほぼそのまま回答にしておきますので解決済みにして次にいきましょう。

    キャンセル

  • m.ts10806

    2018/11/07 16:59

    学校でどのような内容を教わるか学校でPHPを教わったことがないのでわかりませんが、プログラミング言語にとっての教科書は公式マニュアル・ドキュメントです。PHPマニュアルは内容も細かいですし私としては読みやすいですし、ユーザー同士の意見交換もなされていたりして確実な情報が必ず載っているものです。何かあったら必ずPHPマニュアルで仕様を確認して検証していくようにしてください。

    キャンセル

回答 2

+2

requireの前は出力される、そのあとは出力されないとなるとどこかでexit()なりdie()なりで処理が終了しているのかもしれませんが、提示内容からはわかりません。
まずは1つずつコメントアウトしていってどこが原因か確かめてみては? 

投稿

  • 回答の評価を上げる

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

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

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

  • 回答の評価を下げる

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

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

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

check解決した方法

0

読み込みファイルの内容の見落としでした。ありがとうございました。

投稿

  • 回答の評価を上げる

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

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

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

  • 回答の評価を下げる

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

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

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

  • 2018/11/07 16:59

    あ、すみません。自己解決にされると思ってなかったので回答におこしてしまいました。

    キャンセル

  • 2018/11/07 17:01

    あ、こちらこそteratailに慣れてなくてすれ違ってしまい申し訳ないです(汗

    キャンセル

  • 2018/11/07 17:02

    いえいえ。解決につながり、今後の理解につながったようで何よりです。

    キャンセル

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

  • ただいまの回答率 88.57%
  • 質問をまとめることで、思考を整理して素早く解決
  • テンプレート機能で、簡単に質問をまとめられる

関連した質問

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