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

php 폼메일 텍스트 휴효성 검사

이한 11년 전 조회 7,015
폼메일이 필요해 인터넷에 무료 폼메일을 받아서 사용하려고 하는데요....
화일
mail.php / mail_send.php  총2파일
 
아래는 소스코드 이고요...
 
제가 원하는건 수령인에 이름을 적는데...특정 이름(텍스트)만 가능하게 하는게 가능한지요?
 
지금은 수령인에 이름을 적었는지 안적었는지만 검사하는데...
 
제가 등록한 이름만 휴효성 검사시 통과?(메일발송가능) 할수 있는 소스는 없는지요.
 
 
"
상품주문
   

상품주문하기

                                                

master@jinifood.com">    

수령인     

  

Email     

  

배송지     

  

주문내용     

  

           

        

     
 
"
 
"
 
 
//▶ method=post 방식으로 넘어온 값들을 extract 시킴(php.ini 파일에서 register_globals=off 일때 필요) extract($_POST);
//▶ 지정된 페이지로 이동하는 함수 function goUrl($str, $go=-1) {    echo ""; }
//▶ $str 이 공백 문자인지 확인 function checkSpace($str) {    return !ereg("([^[:space:]]+)",$str); }
//▶ 이메일 주소 유효성 확인 function checkEmail($email) {    return !preg_match('/^[A-z0-9][\w\d.-_]*@[A-z0-9][\w\d.-_]+\.[A-z]{2,6}$/',$email); }
//▶ 이메일에 추가될 첨부파일 생성 function getFileBody($var, $boundary, $idx='') {    global $dw_only;
   if($idx !== '') {       $filename = basename($_FILES[$var][name][$idx]);       $type = $_FILES[$var][type][$idx];
      $fp = fopen($_FILES[$var][tmp_name][$idx], "r");       $file_content = fread($fp, $_FILES[$var][size][$idx]);       fclose($fp);    } else {       $filename = basename($_FILES[$var][name]);       $type = $_FILES[$var][type];
      $fp = fopen($_FILES[$var][tmp_name], "r");       $file_content = fread($fp, $_FILES[$var][size]);       fclose($fp);    }
   if($dw_only) $type = "application/octet-stream";
   $mailbody = "--".$boundary."\n";    $mailbody .= "Content-Type: ".$type."; name=\"".$filename."\"\n";    $mailbody .= "Content-Transfer-Encoding: base64\n";    $mailbody .= "Content-Disposition: attachment; filename=\"".$filename."\"\n\n";    $mailbody .= chunk_split(base64_encode($file_content))."\n\n";
   return $mailbody; }
//▶ 파일 업로드 에러 function checkFileError($errno) {    switch($errno) {       case(1) : $errorMsg = "파일 용량이 서버에서 허용된 용량을 초과했습니다."; break;       case(2) : $errorMsg = "파일 용량이 입력폼에 허용된 용량을 초과했습니다."; break;       case(3) : $errorMsg = "파일의 일부만 업로드 되었습니다."; break;       case(4) : $errorMsg = "업로드된 파일이 없습니다."; break;    }    return $errorMsg; }
 
//▶ 받는사람 이메일 주소가 입력되었는지 확인 if(checkSpace($to)) {    goUrl("받는 사람 이메일 주소를 입력해주세요.");    exit; }
//▶ 받는사람 이메일 주소의 유효성 확인 if(checkEmail($to)) {    goUrl("받는 사람 이메일 주소를 정확히 입력해 주세요.");    exit; }
//▶ 보내는사람 이름이 입력되었는지 확인 if(checkSpace($from_name)) {    goUrl("보내는 사람 이름을 입력해주세요.");    exit; }
//▶ 보내는사람 이메일 주소가 입력되었는지 확인 if(checkSpace($from)) {    goUrl("보내는 사람 이메일주소를 입력해주세요.");    exit; }
//▶ 보내는사람 이메일 주소의 유효성 확인 if(checkEmail($from)) {    goUrl("보내는 사람 이메일 주소를 정확히 입력해 주세요.");    exit; }
//▶ 이메일 제목이 입력되었는지 확인 if(checkSpace($subject)) {    goUrl("주소가 없습니다. 주소를 입력해 주십시오.");    exit; }
//▶ 이메일 내용이 입력되었는지 확인 if(checkSpace($content)) {    goUrl("메일 내용을 입력해 주세요.");    exit; }
//▶ 받는이 설정 $receiver = '"'.$to_name.'" <'.$to.'>';
//▶ 보내는이 설정 $sender = '"'.$from_name.'" <'.$from.'>';
//▶ 제목은 무조건 html 을 사용 못 함 $subject = htmlspecialchars($subject);
//▶ html 사용에 첵크가 없다면 html 을 사용 못 하게 하고 nl2br 을 이용해서 개행을 로 바꿈 if(!$use_html) $content = nl2br(htmlspecialchars($content));
//▶ 일반 mail header 설정 $headers = "From: ".$sender."\n"; $headers .= "X-Sender: ".$sender."\n"; $headers .= "X-Mailer: PHP\n"; $headers .= "X-Priority: 1\n"; $headers .= "Reply-to: ". $sender . "\n"; $headers .= "Return-Path: ". $sender . "\n";
//▶ 첨부파일이 있을 경우 사용될 구분자를 생성 $boundary = md5(uniqid(microtime()));
//▶ 첨부파일 확인 후 첨부 $attached = ''; if(isset($_FILES) && is_array($_FILES)) {    foreach($_FILES as $var => $value) {       if(is_array($_FILES[$var][name])) {          for($i=0;$i
//▶ 첨부 파일이 있을 경우 if($attached) {    $headers .= "MIME-Version: 1.0\n";    $headers .= "Content-Type: Multipart/mixed; boundary = \"".$boundary."\"\n";
   $mailbody = "--".$boundary."\n";    $mailbody .= "Content-Type: text/html; charset=\"euc-kr\"\n";    $mailbody .= "Content-Transfer-Encoding: base64\n\n";    $mailbody .= chunk_split(base64_encode($content))."\n\n";    $mailbody .= $attached; } else {    //▶ 첨부 파일이 없을 경우    $headers .= "Content-Type: text/html; charset=EUC-KR\n";    $headers .= "\n\n";
   $mailbody = $content; }
//▶ 메일을 $receiver 로 발송하고 에러가 있다면 에러 출력 후 뒤로 이동 그렇지 않으면 정상발송 메세지를 출력후 mail.php 로 이동... if(!mail($receiver, $subject, $mailbody, $headers, "-f ".$from)) goUrl("이메일 발송해 실패 하였습니다."); else goUrl('메일이 정상적으로 발송되었습니다.', 'mail.php'); ?>
"
댓글을 작성하려면 로그인이 필요합니다.

답변 2개

7년 전

많은 도움이 되었습니다. 감사합니다.

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

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

8년 전

if문으로 조건을 주세요.

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

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

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

로그인