본문 바로가기

비개발자의 개발 일지

현장 팀장에서 수출 ERP까지 — AI와 함께 시스템을 만든 기록

시리즈 보기
php

PHP form2 + view — TEXTAREA 입력과 줄바꿈 처리 완전 정리

by 왕진 2026. 6. 17.
반응형

 

 

Web Development · PHP form2 + view

PHP form + textarea + nl2br —
여러 줄 본문 입력 처리

이름 + 본문(여러 줄)을 받아 줄바꿈 살려 출력
시작 오늘 분석할 코드
form.html
<FORM method="post" action="view.php"> 이름:<BR> <INPUT type="text" name="onamae"><BR> 본문:<BR> <TEXTAREA name="honbun" cols="30" rows="5"></TEXTAREA><BR> <INPUT type="submit" value="송신"> </FORM>
view.php
<?php print $_POST["onamae"]." 님으로부터의 메시지"; print "<BR><BR>"; print "본문 :<BR>"; print nl2br($_POST["honbun"]); ?>

form1과의 차이는 두 가지 — TEXTAREA로 여러 줄 입력 + view에서 nl2br로 줄바꿈 살리기.

용어 용어 정리
<TEXTAREA>여러 줄 텍스트 입력 영역
cols/rows열·행 단위 크기 (CSS로 대체 권장)
nl2br()줄바꿈을 <br>로 변환
$_POST["honbun"]본문 입력값
줄바꿈 보존HTML은 \n을 무시 → nl2br 필요
XSS 위험출력에 htmlspecialchars 필수
vs CSSwhite-space: pre-wrap 도 가능
실무게시판 글, 댓글, 메시지

1 TEXTAREA — INPUT과 다른 점
<INPUT type="text" name="x"> ← 한 줄 (자동 닫힘) <TEXTAREA name="x"></TEXTAREA> ← 여러 줄 (열고 닫음)

주요 차이는 여러 줄 입력 가능닫는 태그 필수. 기본값을 쓰려면 시작·끝 태그 사이에 적는다.


2 nl2br의 역할

사용자가 textarea에 줄바꿈으로 글을 쓰면 $_POST["honbun"]에는 \n이 들어 있다. 그러나 HTML은 \n을 무시한다 → <br>로 바꿔야 화면에 줄바꿈으로 보임.

"안녕하세요\n반갑습니다" ← 메모리 ↓ HTML로 그대로 출력 "안녕하세요 반갑습니다" ← 한 줄로 보임 (X) ↓ nl2br 거쳐서 "안녕하세요<br />반갑습니다" ← 줄바꿈 보임 (O)

3 보안과 함께 — 권장 패턴
// 안전한 출력 $honbun = htmlspecialchars($_POST["honbun"], ENT_QUOTES, "UTF-8"); print nl2br($honbun); // 순서 중요: htmlspecialchars 먼저, nl2br 나중
※ 순서 바꾸면 nl2br이 만든 <br />도 이스케이프되어 글자로 보인다.

 

반응형

 

4 자주 하는 실수
· textarea를 <TEXTAREA />로 자동 닫음 → 일부 브라우저 깨짐
· nl2br 빼먹어 줄바꿈 안 보임
· 보안 처리 누락 (XSS)
· cols/rows로 크기 결정 → CSS의 width/height가 더 깔끔

핵심 한 줄 요약

<TEXTAREA>여러 줄 텍스트 입력 영역
name = key$_POST에 그대로 키로 들어감
nl2br줄바꿈 \n을 <br>로 변환해 화면 보존
XSS 방어htmlspecialchars 먼저, nl2br 나중
현대 대안CSS white-space: pre-wrap
활용게시글, 댓글, 메시지 등 본문
cols/rows기본 크기 — CSS로 덮어 쓸 수 있음
반응형

댓글