폼메일 발송시 필수입력란에 빈 값으로 저장

폼메일 발송시 필수입력란에 빈 값으로 저장

QA

폼메일 발송시 필수입력란에 빈 값으로 저장

답변 2

본문

폼메일을 이용해서 상담신청을 받고 있는데

 

양식 작성 후 신청완료 시 메일발송/db추가/알림톡 3개기능이 실행되는데요.

 

db에 저장된 데이터는 관리자페이지에서 확인/삭제가 가능하게 되어있습니다.

 

그런데 간혹 아무 데이터 없이 들어오는 신청이 있는데요;;

 

신청페이지에 필수입력란들이 많은데 어떻게 이걸 뚫고 저장이 되는건가요??

 

테스트로 입력할때 공백 으로 신청을 해봤는데 저는 안되거든요...;;

 

이게 먹힐지는 모르지만 회원가입시 이름 검사하는 부분/이메일 검사하는 부분을 가져와서

 

폼메일 발송하는 페이지에다가 심어놓긴 했습니다...


if($msg = empty_mb_name($name))         alert($msg, '', true, true);
if($msg = empty_mb_email($email))       alert($msg, '', true, true);
if($msg = valid_mb_email($email))       alert($msg, '', true, true);

이름, 이메일 외에도 필수값이 더 있긴하나, 일단 이름, 이메일은 이미 있는 기능이라 저 2개만 넣어놨습니다...

 

혹시 빈 데이터로 들어오는 상담신청도 봇이라고 봐야하나요...??

이 질문에 댓글 쓰기 :

답변 2

빈 데이터의 값을 어디를 통해 해당 페이지를 별도로 만드신곳외에 다른곳으로 들어올곳은 없는지 확인해 보시고 없다면 확인을 위해 아이피를 기록해서 확인해 보시는것도 도움이 되실듯 합니다.

혹시나하는 마음에 폼작성 페이지를 거치지 않고, 다이렉트로 메일발송하는 페이지로 접속해보니 동일한 증상이 발생하는 것을 확인했습니다! 직접 url 쳐서 들어왔을 때, 메일발송도 안되고, 아무것도 되지 않으나, db에는 저장이 되는 상태였네요...

폼메일 전송 페이지에서 코드를 확인해보니


// db 추가 쿼리 코드

// 발송자 메일주소확인 조건이 맞지 않으면 alert 띄움

이 구조로 되어있다보니, db에 저장이 되고 튕기는 현상이었네요;;

메일주소 검수하는 코드를 상단으로 옮겨서 해결했습니다!

빈 데이터로 접수되는 것 대부분이 봇에 의한 데이터 수집입니다.

저는 주로 update 페이지에서 필수 값이 없을땐 DB에 저장되지 않도록 처리해놓습니다.


if($필수값 != ''){ // 필수 값이 공백이 아닐 때
메일발송/db추가/알림톡
};

 

도움이 되셨다면 채택 한번 부탁드립니다^^

답변 감사드립니다!

테스트 해보니 폼작성페이지를 거치지 않고 전송페이지로 바로 접속할 경우 빈데이터가 저장되는 거였네요...

그리고 메일검사하는 코드가 있었는데 그 코드가 db 저장하는 쿼리 하단에 있다보니, 빈데이터를 저장 후 alert 창이 뜨는거였습니다...;; 메일 검사하는 코드를 상단에 위치시켜 해결했습니다!

답변 감사합니다!

답변을 작성하시기 전에 로그인 해주세요.
QA 내용 검색
질문등록
전체 61,014
© SIRSOFT
현재 페이지 제일 처음으로