問題点
入力画面(post.php)でtextareaに入力したテキストを改行すると、表示画面(home.php)で改行部分が\r\nとでてきてしまう。
)例
改行したい
改行したい
改行したい
↓
改行したい\r\n\r\n改行したい\r\n\r\n改行したい
実現したいこと
\r\nを表示させずにtextareaの入力内容をそのまま表示させたい。
)例
改行したい
改行したい
改行したい
↓
改行したい
改行したい
改行したい
コード
(post.php) <?php session_start(); //DB接続 include_once('dbconnect.php'); if (!isset($_SESSION['user'])) { header('location:login.php'); } //投稿するボタンを押したときの処理 if (isset($_POST['posting'])) { $post_name = $mysqli->real_escape_string($_POST['post_name']); $post_author = $mysqli->real_escape_string($_POST['post_author']); $post_introduction = $mysqli->real_escape_string($_POST['post_introduction']); $post_image = "bookimage/".$_FILES['post_image']['name']; //uses_idをpost_idに代入 $query2 = "SELECT user_id FROM users WHERE user_id=".$_SESSION['user'].""; $result = $mysqli->query($query2); while ($row = $result->fetch_assoc()) { $post_id = $row['user_id']; } //POSTされた情報をDBへ格納する $query = "INSERT INTO posts SET post_name=?, post_author=?, post_introduction=?, post_image=?, post_id=?"; $stmt = $mysqli->prepare($query); $stmt->bind_param("ssssi", $post_name, $post_author, $post_introduction, $post_image, $post_id); $stmt->execute(); move_uploaded_file($_FILES['post_image']['tmp_name'], $post_image); } ?> <!doctype html> <html lang="ja"> <head> <meta charset="utf-8"> 〜省略(Bootstrap使ってます)〜 </head> <body> <!-- Posting-wrapper --> <div class="posting-wrapper py-5"> <div class="container"> <div class="row"> <div class="col-md-6 offset-md-3 text-center"> <h2 class="mb-5 p_title">投稿ページ</h2> <form method="post" enctype="multipart/form-data"> <label class="col-form-label">タイトル <span class="bg-danger text-white p-1" >必須</span></label> <input type="text" name="post_name" class="form-control" required/> <label class="col-form-label">作者 <span class="bg-danger text-white p-1" >必須</span></label> <input type="text" name="post_author" class="form-control" required/> <label class="col-form-label">画像 <span class="bg-danger text-white p-1" >必須</span></label> <input type="file" name="post_image" class="form-control" required/> <label for="exampleTextarea">紹介文</label> <!-- 質問の部分 --> <textarea name="post_introduction" class="form-control" rows="8" cols="80"></textarea> <!-- 質問ここまで --> <div class="text-center"> <input type="submit" name="posting" class="btn btn-lg btn-success mt-4" value="投稿する"> </div> </form> </div> </div> </div> </div> <!-- End Posting-wrapper --> </body> </html>
(home.php) <?php session_start(); //DB接続 include_once('dbconnect.php'); if (!isset($_SESSION['user'])) { header('location:login.php'); } //usersテーブルとpostsテーブルをリレーションさせる $query = "SELECT * FROM posts LEFT JOIN users ON posts.post_id = users.user_id ORDER BY id DESC"; $result = $mysqli->query($query); // 結果を受け取る変数を配列にする $posteds = []; while ($row = $result->fetch_assoc()) { // 配列に取り出した一行分の結果を足していく $posteds[] = $row; } ?> <!doctype html> <html lang="ja"> <head> <meta charset="utf-8"> 〜省略(Bootstrap使ってます)〜 </head> <body> <!-- top-wrapper --> <div class="top-wrapper text-center text-white"> <a href="post.php" class="btn btn-lg btn-success mt-3"><span><i class="fas fa-book-open"></i></span> 投稿ページへ</a> </div> <!-- End top-wrapper --> <!-- post-wrapper --> <div class="post-wrapper pt-5"> <div class="container"> <div class="row"> <!-- 投稿を繰り返し表示 --> <?php foreach ($posteds as $posted): ?> <div class="col-md-4 text-center mb-3"> <img src="<?php echo $posted['post_image']; ?>" width="200px" height="300px"> </div> <div class="col-md-8 mb-3 manga_data"> <h3><?php echo $posted['post_name']; ?></h3> <p><?php echo $posted['post_author']; ?></p> <!-- 質問の部分 --> <p><?php echo nl2br(htmlspecialchars($posted['post_introduction'])); ?></p> <!-- 質問ここまで --> </div> <div class="col-md-4 text-center mb-3"> <img src="<?php echo $posted['photo']; ?>" width="120px" height="120px" class="rounded-circle"> <p>紹介者 : <?php echo $posted['username']; ?>さん</p> </div> <div class="col-12"> <hr style="background-color:#EB6964" class="mb-4" > </div> <?php endforeach; ?> <!-- ここまで繰り返し --> </div> </div> </div> <!-- End post-wrapper --> </body> </html>
ご助言頂けると助かります。よろしくお願いします。
補足
DBはusersテーブルとpostsテーブルがあります。
DBにはデータがきちんと格納されています。
usersテーブル
user_id(AI), username, email, password, photo
postsテーブル
id(AI), post_name, post_author, post_introduction, post_image, post_id

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