테스트 사이트 - 개발 중인 베타 버전입니다

회원 정보 수정 페이지에 추가 이메일을 배열로 저장하려고 합니다. 채택완료

호다 2년 전 조회 1,906

안녕하세요? 항상 도움 받고 있습니다. 감사합니다.

제가 회원 정보 수정 페이지에서 textarea 를 추가해서 줄 바꿈으로 추가 이메일을 저장했는데

aaa@naver.combbb@naver.comccc@naver.com

이렇게 줄 바꿈 없이 한 열로 저장이 되더라고요.

textarea 에서 엔터 키를 입력하면 \n 이 저장되지 않는가요? ㅠㅠ

그래서 회원 정보 수정 페이지 입력 데이터를 저장하는 파일이 register_form_update.php 파일인 거 같아서 

아래와 같은 코드를 추가해주었습니다. $extra_mb_email = $_POST['extra_mb_email']; // 줄 바꿈 없이 입력된 이메일 주소를 받습니다. $extra_mb_email_array = preg_split('/\s+/', $extra_mb_email); // 이메일 주소를 콤마로 구분하여 배열로 분할합니다. $extra_mb_email_array = array_map('trim', $extra_mb_email_array); // 이메일 주소 양쪽의 공백을 제거합니다. $extra_mb_email = implode(',', $extra_mb_email_array); 그런데 아무 변화가 없습니다. 최소한 콤마라도 추가되어서 저장이 되어있을 줄 알았는데 말이죠.

insert 쿼리문하고 update 쿼리문하고는 관계 없이 코드만 추가해주면 될거 같은데 왜 배열로 저장이 안 되었을까요? 그리고 구분자가 없으니까 어떻게 해야 배열로 저장할 수 있을지 ㅠㅠ 처음부터 입력을 받을 때 콤마를 함께 입력해달라고 해야할까요? 왜 구분자 없이 입력값이 저장이 될까요 ㅠㅠ 어떻게 해야 하는지 좀 알려주실 수 있나요?

댓글을 작성하려면 로그인이 필요합니다.

답변 3개

채택된 답변
+20 포인트
M
2년 전

</p>

<p>$extra_mb_email_array = str_replace("\n",",",$_POST['extra_mb_email']);</p>

<p>

이렇게 하시면 될듯 합니다.

로그인 후 평가할 수 있습니다

답변에 대한 댓글 2개

호다
2년 전
감사합니다. 제가 자바스크립트로 줄바꿈을 "\n" 으로 입력되게 해서 저장을 했는데 문제가 이제 view 에서 \n이 줄바꿈이 아니라 그대로 물자열로 출력이 되더라고요. 그래서 코드를

<div class="form-group has-feedback">
<label class="col-sm-2 control-label" for="reg_mb_email"><b>E-mail 추가</b><strong class="sound_only">필수</strong></label>
<div class="col-sm-5">
<input type="hidden" name="extra_email" value="">
<textarea name="extra_mb_email" id="reg_extra_email" class="form-control" maxlength="255" style="height: 100px;"><?php echo str_replace("\n", '<br>', $member['extra_mb_email']); ?></textarea>
</div>
</div>

이렇게 수정해 주었는데도 그대로 "\n" 이 문자열로 출력이 되네요. 어떻게 해야 할까요?
호다
2년 전
감사합니다. 해결했습니다 ^^

댓글을 작성하려면 로그인이 필요합니다.

2년 전

str_replace("\n",' ',$member['extra_mb_email']); ----> nl2br($member['extra_mb_email']);

로그인 후 평가할 수 있습니다

댓글을 작성하려면 로그인이 필요합니다.

e
2년 전

그냥 화면에 출력을하면 엔터가 없는것 처럼 보일 뿐이지 엔터값은 넘어옵니다.

$extra_mb_email_array = explode("\n",$_POST['extra_mb_email']);

이렇게 배열에 저장이 되는지 확인해보세요.

로그인 후 평가할 수 있습니다

댓글을 작성하려면 로그인이 필요합니다.

답변을 작성하려면 로그인이 필요합니다.

로그인