###はじめに
https://teratail.com/questions/335900
今日午前中に同様の質問をさせていただいたのですが、再度確認したい事項があり、再質問をさせていただきます。
試したこと”項目の内容を修正しております。
前提・実現したいこと
現在laravelで掲示板アプリを作成しているlaravel初心者です。
参考サイトをもとに、掲示板の投稿編集ツールとしてCKEEDITOR4を導入したのですが、
投稿編集画面(edit.blade.php)で入力した項目を投稿確認画面(show.blade.php)で確認すると、
htmlタグが合わせて出力されてしまう状況です。
この事象についてわかる方、ご教示いただけないでしょうか?
発生している問題・エラーメッセージ
edit.blade.php
<textarea id="body" name="body" class="ckeditor form-control {{ $errors->has('body') ? 'is-invalid' : '' }}" rows="4"> {{ old('body') ?: ($post->body)}} </textarea>
show.blade.php
<p class="mb-5"> {!! nl2br(e($post->body)) !!} </p>
投稿確認画面(show.blade.php)イメージ画像
![
試したこと
① show.blade.php内の下記文のe()を消去⇨これによってhtmlタグが出力されることはなくなるが、
元々あったタグを事前にエスケープ処理できてないことが原因で、 投稿した内容が、下に寄って表示されてしまう。あと、e()を削除してしまうと、XSSに対処できない。
{!! nl2br(e($post->body)) !!}
{!! nl2br(e($post->body)) !!}の場合(投稿内容のテストテスト部分にタグがついて出力されている。文字位置は問題なし。)
{!! nl2br($post->body) !!}の場合(タグは消えるが、投稿内容のテストテスト部分の文字位置が下に寄っている。)
②共有レイアウト部分(layout.blade.php)の下記の通り指定
<script src="{{ asset('ckeditor/ckeditor.js')}}"></script> //head内に記述 <script> CKEDITOR.replace('ckeditor'); </script> //bodyの最後に記述
補足情報(FW/ツールのバージョンなど)
Laravel Framework 7.30.2
MySQL 8.0.21 Homebrew
PHP 7.4.14
Docker 19.03.13
回答1件
あなたの回答
tips
プレビュー
バッドをするには、ログインかつ
こちらの条件を満たす必要があります。
2021/04/30 15:05