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

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

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

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

PHP

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

HTML

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

Q&A

1回答

4160閲覧

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

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

総合スコア69400

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

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

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.48%

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

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

質問する

関連した質問