jineecode
nl2br로 줄바꿈을 한 textarea의 수정? 본문
textarea에 있는 text를 데이터에 저장할 때 nl2br을 써서 저장하는데,
이 게시글을 수정하려고 하였을 때 <br />이 딸려오는 문제.
대략 이런 느낌이다.
qna_insert.php 코드
'$qna_desc' 가 'textarea' 자리이다.
<meta charset="UTF-8" />
<?php
$qna_id = $_GET['id'];
$qna_title = nl2br($_REQUEST['qna_title']);
$qna_title = addslashes($qna_title);
$qna_desc = nl2br($_REQUEST['qna_desc']);
$qna_desc = addslashes($qna_desc);
$regist_day = date("Y-m-d");
$qna_hit = 0;
//database connect
include $_SERVER['DOCUMENT_ROOT'].'/openconcert/process/connect/db_connect.php';
$sql="insert into opc_qna(
OPC_QNA_name,
OPC_qna_tit,
OPC_QNA_desc,
OPC_qna_reg,
OPC_qna_hit) values(
'$qna_id',
'$qna_title',
'$qna_desc',
'$regist_day',
'$qna_hit')";
mysqli_query($dbConn, $sql);
echo "
<script>
alert('등록되었습니다.');
location.href='/openconcert/page/qna/qna.php';
</script>
";
?>
웹사이트 textarea 등록
MariaDB
(불길함의 시작)
게시글 업로드 확인
게시글 자체는 잘 나오는 것 같지만...
수정버튼을 눌렀을 시
^^.... <br />을 다 지워줘야하는 참사...
힌트는 아래에서 얻을 수 있었다.
www.phpschool.com/gnuboard4/bbs/board.php?bo_table=qna_function&wr_id=234453&page=2576
저장시에는 그냥 저장하시고...
출력시에만 nl2br() 처리하세요.
저장사실때 nl2br() 처리하여 저장하니까 발생하는 문제점입니다.
즉, 저장할 때는 nl2br 을 쓰지 말고, 출력시에 nl2br을 쓰는 것!!
코드를 아래처럼 바꿔준다.
qna_insert.php
<meta charset="UTF-8" />
<?php
$qna_id = $_GET['id'];
$qna_title = $_REQUEST['qna_title'];
$qna_title = addslashes($qna_title);
$qna_desc = $_REQUEST['qna_desc'];
$qna_desc = addslashes($qna_desc);
$regist_day = date("Y-m-d");
$qna_hit = 0;
//database connect
include $_SERVER['DOCUMENT_ROOT'].'/openconcert/process/connect/db_connect.php';
$sql="insert into opc_qna(
OPC_QNA_name,
OPC_qna_tit,
OPC_QNA_desc,
OPC_qna_reg,
OPC_qna_hit) values(
'$qna_id',
'$qna_title',
'$qna_desc',
'$regist_day',
'$qna_hit')";
mysqli_query($dbConn, $sql);
echo "
<script>
alert('등록되었습니다.');
location.href='/openconcert/page/qna/qna.php';
</script>
";
?>
등록 시 nl2br을 싹 빼주고 그냥 DB에 저장한다.
웹사이트 textarea 등록
MariaDB
mariadb에 <br />이 없어진 것을 확인할 수 있다.
게시글 업로드 확인
아니 엔터가 적용이 안 됐는데요?
당연하다. <br/>이 없는 db를 그대로 가져와서 붙혔으니까.
이제 '출력'할 때 nl2br을 적용해주면 된다!!
qna_view.php
(front 부분이다)
<?php
$qna_detail_num=$_GET['num'];
include $_SERVER['DOCUMENT_ROOT'].'/openconcert/process/connect/db_connect.php';
$sql="select * from opc_qna where OPC_QNA_num=$qna_detail_num";
$result=mysqli_query($dbConn, $sql);
$row=mysqli_fetch_array($result);
$qna_detail_tit=$row['OPC_QNA_tit'];
$qna_detail_name=$row['OPC_QNA_name'];
$qna_detail_des=$row['OPC_QNA_desc'];
$qna_detail_new_des=nl2br($qna_detail_des);
$qna_detail_hit=$row['OPC_QNA_hit'];
$qna_detail_reg=$row['OPC_QNA_reg'];
?>
<section class="view__section">
<div class="sub-title">
<h2><a href="/openconcert/page/qna/qna.php">Q&A</a></h2>
</div>
<div class="view__container center">
<div class="view-title">
<h4><?=$qna_detail_tit?></h4>
</div>
<div class="view-reg">
<p>등록일: <?=$qna_detail_reg?></p><p>조회수: <?=$qna_detail_hit?></p>
</div>
<div class="view-des">
<p><?=$qna_detail_new_des?></p>
</div>
$qna_detail_des=$row['OPC_QNA_desc'];
$qna_detail_new_des=nl2br($qna_detail_des);
qna_detail_des를 한 번 정제(줄바꿈)해서 보여주면 되는 것이다
해결 ^^
이렇게 스스로 해결할 때마다 셀프 쓰다듬해줘야 함 😁
'php' 카테고리의 다른 글
php로 게시판 구체적으로 구현하기 (2) (0) | 2021.04.05 |
---|---|
php로 게시판 구체적으로 구현하기 (1) (0) | 2021.04.05 |
검색 폼 유형 (0) | 2021.03.31 |
다음 글, 이전 글 php로 구현하기 (0) | 2021.03.30 |
Comments