input.phpの<textarea>フォームから、
入力された内容を改行まで入力された通りにoutput.phpで表示できるようにしたいです。
input.phpで入力
↓
confirm.phpで確認表示
↓
save.phpで入力内容をtxtファイルに保存
↓
output.phpでtxtファイルからファイル内容を表示
という流れです。
現在、
input.php
html
1<form action="confirm.php" method="post"> 2<textarea name="textarea"></textarea> 3<button type="submit">確認</button> 4</form>
confirm.php
php
1$textarea = $_POST['textarea']; 2$textarea = htmlspecialchars($textarea); 3$textarea = nl2br($textarea);
html
1<p>入力内容を確認してください</p> 2<p><?php echo $textarea; ?></p> 3<form action="save.php" method="post"> 4<input type="hidden" name="textarea" value="<?php echo $textarea; ?>"> 5<button type="button" onclick="history.back()">戻る</button> 6<button type="submit">更新</button> 7</form>
save.php内では
php
1$textarea = $_POST['textarea']; 2$textarea = htmlspecialchars($textarea); 3$file = 'file.txt'; 4file_put_contents ($file, json_encode($textarea));
html
1<p>更新完了</p> 2<a href="output.php">更新を確認</a>
output.php内では
php
1$file='file.txt'; 2if (file_exists($file)){ 3 $textarea = json_decode(file_get_contents($file)); 4 echo '<p>'.$textarea.'</p>'; 5}
となっております。
例えば、
input.phpで
おはよう
こんにちは
こんばんは
と入力しても、
output.phpでは、
おはよう<br />こんにちは<br />こんばんは
と改行もされず、タグが表示されてしまいます。
いろいろと調べてみて、
output.php内で
php
1echo '<p>'.htmlspecialchars($textarea).'</p>';
にする等変更してみましたがうまくいきません。
どうすればタグが表示されず、改行もできるようになるのでしょうか?
///////////////////////
htmlを追記しました。
初心者なので、以上で必要な情報が揃っているかもわかりませんが、
仕事で必要に迫られ、周りにわかる者もいない中で悩みながら作っております。
業務の都合上、抜粋での記載となり申し訳ありません。
どうぞよろしくお願いします。



回答5件
あなたの回答
tips
プレビュー