회원 정보 수정 페이지에 추가 이메일을 배열로 저장하려고 합니다.
본문
안녕하세요? 항상 도움 받고 있습니다. 감사합니다.
제가 회원 정보 수정 페이지에서 textarea 를 추가해서 줄 바꿈으로 추가 이메일을 저장했는데
*** 개인정보보호를 위한 이메일주소 노출방지 ***
이렇게 줄 바꿈 없이 한 열로 저장이 되더라고요.
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
$extra_mb_email_array = str_replace("\n",",",$_POST['extra_mb_email']);
이렇게 하시면 될듯 합니다.
!-->그냥 화면에 출력을하면 엔터가 없는것 처럼 보일 뿐이지 엔터값은 넘어옵니다.
$extra_mb_email_array = explode("\n",$_POST['extra_mb_email']);
이렇게 배열에 저장이 되는지 확인해보세요.
str_replace("\n",'<br>',$member['extra_mb_email']); ----> nl2br($member['extra_mb_email']);