などは\r\n実行できないのですが見出しタグなどが反映されてしまいます\r\nそもそも.textに読み書きさせるのが間違いなのでしょうか?","answerCount":1,"upvoteCount":0,"datePublished":"2019-04-02T18:47:56.791Z","dateModified":"2022-01-12T10:55:45.698Z","suggestedAnswer":[{"@type":"Answer","text":"こういうことでしょうか。\r\n```PHP\r\n foreach ($board as $message) {\r\n print '

'.h( strip_tags( $message ) ).'


';\r\n }\r\n```\r\n\r\n【PHP: strip_tags - Manual】\r\n[https://www.php.net/manual/ja/function.strip-tags.php](https://www.php.net/manual/ja/function.strip-tags.php)","dateModified":"2019-04-02T18:53:23.952Z","datePublished":"2019-04-02T18:53:23.952Z","upvoteCount":0,"url":"https://teratail.com/questions/182600#reply-271654","comment":[{"@type":"Comment","text":"ソースコードまでありがとうございます\r\n試した見たところ

aa

\r\nなどのタグが反映されてしまいました","datePublished":"2019-04-02T19:06:23.750Z","dateModified":"2019-04-02T19:06:23.750Z"},{"@type":"Comment","text":"echo strip_tags( '

aa

' );\r\nで試してみてください。H1要素が消えるはずです。コードが書き変わっているか確認し、キャッシュの消去を試してみてください。","datePublished":"2019-04-02T19:32:55.005Z","dateModified":"2019-04-02T19:32:55.005Z"}]}],"breadcrumb":{"@type":"BreadcrumbList","itemListElement":[{"@type":"ListItem","position":1,"item":{"@id":"https://teratail.com","name":"トップ"}},{"@type":"ListItem","position":2,"item":{"@id":"https://teratail.com/tags/JSON","name":"JSONに関する質問"}},{"@type":"ListItem","position":3,"item":{"@id":"https://teratail.com/questions/182600","name":"HTMLのタグを無効化したい"}}]}}}
質問するログイン新規登録

Q&A

1回答

4409閲覧

HTMLのタグを無効化したい

ET87

総合スコア10

JSON

JSON(JavaScript Object Notation)は軽量なデータ記述言語の1つである。構文はJavaScriptをベースとしていますが、JavaScriptに限定されたものではなく、様々なソフトウェアやプログラミング言語間におけるデータの受け渡しが行えるように設計されています。

PHP

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

HTML

HTMLとは、ウェブ上の文書を記述・作成するためのマークアップ言語のことです。文章の中に記述することで、文書の論理構造などを設定することができます。ハイパーリンクを設定できるハイパーテキストであり、画像・リスト・表などのデータファイルをリンクする情報に結びつけて情報を整理します。現在あるネットワーク上のほとんどのウェブページはHTMLで作成されています。

0グッド

2クリップ

投稿2019/04/02 18:47

0

2

HTMLタグを無効化したい

PHPでtextboxを作ってそこの書き込みをページに反映するようなことをしています
そこでtexboxエリアに<h1></h1>タグなどを書きこまれても反映できないように指定したいです

書き込み用のファイルはboard.textです

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

php

1imput.php 2 3 <form> 4 <p>投稿するメッセージを入力してください</p> 5 <form action = "output.php"; ?> 6 <input type = "text" name ="message"> 7 <input type = "submit" value = "確定"> 8 </form> 9

php

1output.php 2 3 <?php 4 5 function h($String) { 6 return htmlspecialchars($String, ENT_QUOTES, 'UTF-8'); 7 } 8 9 10 $file='board.txt'; 11 if (file_exists($file)) { 12 $board = json_decode (file_get_contents($file)); 13 } 14 15 $board[] = $_REQUEST['message']; 16 file_put_contents($file,json_encode($board)); 17 foreach ($board as $message) { 18 print h( '<p>',$message, '</p><hr>' ); 19 } 20 21 22?>

試したこと

htmlspecialcharsとhtmlentitiesの両方で試しました

###エラー
HTML見出しタグが反映してしまいます

<script>alert("1")</script>などは

実行できないのですが見出しタグなどが反映されてしまいます
そもそも.textに読み書きさせるのが間違いなのでしょうか?

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

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

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

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

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

kei344

2019/04/02 18:49

「見出しタグなどが反映」とは?
ET87

2019/04/02 19:00

テキスト入力フォームに<h1>aa</h1>などと打ち込むと そのまま大文字でページに反映されてしまいます
guest

回答1

0

こういうことでしょうか。

PHP

1 foreach ($board as $message) { 2 print '<p>'.h( strip_tags( $message ) ).'</p><hr>'; 3 }

【PHP: strip_tags - Manual】
https://www.php.net/manual/ja/function.strip-tags.php

投稿2019/04/02 18:53

kei344

総合スコア69643

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

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

ET87

2019/04/02 19:06

ソースコードまでありがとうございます 試した見たところ<h1>aa</h1> などのタグが反映されてしまいました
kei344

2019/04/02 19:32

echo strip_tags( '<h1>aa</h1>' ); で試してみてください。H1要素が消えるはずです。コードが書き変わっているか確認し、キャッシュの消去を試してみてください。
guest

あなたの回答

tips

太字

斜体

打ち消し線

見出し

引用テキストの挿入

コードの挿入

リンクの挿入

リストの挿入

番号リストの挿入

表の挿入

水平線の挿入

プレビュー

まだベストアンサーが選ばれていません

会員登録して回答してみよう

アカウントをお持ちの方は

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

ただいまの回答率
85.29%

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

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

質問する

関連した質問