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

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

新規登録して質問してみよう
ただいま回答率
85.48%
PHP

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

Q&A

解決済

1回答

3259閲覧

header('Content-Type: text/plain')についてです

newyee

総合スコア213

PHP

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

0グッド

0クリップ

投稿2019/04/09 10:36

編集2019/04/09 10:46

header('Content-Type: text/plain')を指定した場合と指定しなかった場合の違いについて、お聞きしたいことがございます。
以下は、183529.phpになります。

php

1<?php 2 header('Content-Type: text/plain'); 3 echo 'SANITIZE OFF:' . filter_input(INPUT_POST, 'a') . "\n"; 4 echo 'SANITIZE ON :' . filter_input(INPUT_POST, 'a', FILTER_SANITIZE_SPECIAL_CHARS) . "\n";

以下は、1800.phpになります。

php

1<body> 2<form action="183529.php" method="POST"> 3A:<input name="a"><br> 4<input type="submit"> 5</form> 6</body>

上記2つのファイルは、こちらで質問させて頂いた際に、頂いたご回答のコードになります。
1800.phpのフォームのテキストエリアにて、「<a href ="2222">」と入力すると、以下のように表示されます。

SANITIZE OFF:<a href ="2222"> SANITIZE ON :&#60;a href =&#34;2222&#34;&#62;

しかし、header('Content-Type: text/plain');」ここの部分をコメントアウトしますと、以下のように表示されます。
イメージ説明
何故上記のような違いが出るのでしょうか?
ご助言頂けましたら、幸いです。よろしくお願いします

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

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

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

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

m.ts10806

2019/04/09 10:44

前の質問の回答に質問投げられてますが、その返信を待たれてはどうでしょうか。飛ばしたところで特に支障はないはずの内容です。 質問するにしろ、前の質問で得た回答のコードであるので出典と関連性は明示してください。 (自身で組んだコードか否かの話をまた繰り返すことになります)
newyee

2019/04/09 10:49

んーまぁそうとも思ったのですが、あの方が他の質問の回答もされていましたし、時間も経ったので、気になり質問させて貰いました
m.ts10806

2019/04/09 10:59

あまりそこは気にしなくて良いかと。基本的には回答者は無責任であるもので、義務はありませんし。気が向いたら返ってくるのではないでしょうか。 焦ったところで何も良い結果は生まれませんし、「なんで別の質問に回答してるのに俺の質問には返事がないんだ!」と憤慨したところで印象が悪くなるだけです。 回答してるからと暇とは限りません。目についたものをたまたま手をとっただけかもしれない。 それに回答するのも相手の理解が得られるような文章を書くにもそれなりの労力がかかります。 あなた選任の家庭教師を雇っているのならともかく、無料の質問サイトです。 せっかく確固たる地位をもっている方からアドバイスをもらえるかもしれないチャンスを失したいですか? まあ、こちらの質問にかえて回答としてもらえるかもしれませんし、あまりそこは焦らず急かさずいきましょう。時間の流れはみんな違います。
newyee

2019/04/09 11:03

返信もらえました。
m.ts10806

2019/04/09 11:29

良かったですね
newyee

2019/04/09 11:31

はい!
guest

回答1

0

自己解決

header('Content-Type: text/plain'); は、表示をHTMLではなく単なるテキストとして解釈するという意味であり、テキストの場合タグの解釈はせず、単に文字として表示することになる、といったことが分かり、解決に至りました。

投稿2019/04/09 11:14

newyee

総合スコア213

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

m.ts10806

2019/04/10 00:39 編集

回答にするのであれば、根拠資料があったほうが「何をもとに言ってるのか」が後から同じ問題を抱えた誰かが見たときに確実な理解につながります。 たぶん自身がここだけ見返しても「なぜわかったんだっけ」と分からなくなるはずですし、 「誰かがこう言ってたから」だけだとそれがどんな人であっても本当かどうかの判断はできませんし、本来は仕様を確認して自分で動かして初めて納得できるものです。 仕様: https://developer.mozilla.org/ja/docs/Web/HTTP/Basics_of_HTTP/MIME_types#textplain 一覧(主なものだけ): https://qiita.com/AkihiroTakamura/items/b93fbe511465f52bffaa そもそも「コンテンツタイプ」とは: https://wa3.i-3-i.info/word15787.html
newyee

2019/04/10 15:24

補足ありがとうございます
guest

あなたの回答

tips

太字

斜体

打ち消し線

見出し

引用テキストの挿入

コードの挿入

リンクの挿入

リストの挿入

番号リストの挿入

表の挿入

水平線の挿入

プレビュー

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

ただいまの回答率
85.48%

質問をまとめることで
思考を整理して素早く解決

テンプレート機能で
簡単に質問をまとめる

質問する

関連した質問