묻고답하기

안녕하세요

전 html이랑 css정도만 읽을 줄 아는 초보인데, 검색해보니 php파일을 수정해야 하는것 같아서 도움을 요청합니다.

어느 분이 블로그(http://likeme.pe.kr/145)에서 제공해주신 익스텐션 프로그램(SupportFormCreator.mxp)으로 폼메일을 만들었는데요

다른건 다 괜찮은데 메일이 도착하면(한메일) 본문이외에 이름, 제목등 한글로 써져야 하는 부분이 깨져서 들어옵니다. 본문내용은 한글로 잘 나오구요,

제가 테스트한다고 했을 때 영어로만 보내봐서 뒤늦게 알게 됐거든요 영어로는 잘 나옵니다.

html파일은 <meta charset="UTF-8">로 작성했습니다

javascript랑 php를 읽을 줄을 몰라서 다른 질문들을 참고해서는 수정을 할 수가 없습니다 ㅠㅠ

 

익스텐션을 써서 만들어진 php파일 코드입니다. 길어서 죄송합니다. 부디 어디를 고치면 될지 아시는 분은 답변 부탁드립니다!!

<?
// SMTP Params
global $gSMTPServer, $gSMTPLogin, $gSMTPPassword, $gEmailto, $gTestCaptcha, $gOKMessage;
$gSMTPServer = "";
$gSMTPLogin = "";
$gSMTPPassword = "";
$gEmailto = "qdesign@hanmail.net";
$gTestCaptcha = false;
$gOKMessage = "Success! Your Email has been sent.";
?>
<?
  session_start();
    function ShowMessage($msg) {
        echo '<div align="center">';
        echo $msg;
        echo '<br><br><a href="javascript: history.back()"><- Go to previous page></a>';
        echo '</div>';
    }

    function ShowMessageRef($msg) {
        echo '<div align="center">';
        echo $msg;
        echo '<br><br><a href="'.$_SERVER['HTTP_REFERER'].'"><- Go to previous page></a>';
        echo '</div>';
    }
    
    function SMTPmail($server, $login, $password, $emailto, $subject, $message, $from) {
        function get_data($smtp_conn)
        {
          $data="";
          while($str = @fgets($smtp_conn,515)) 
          {
            $data .= $str;
            if(substr($str,3,1) == " ") { break; }
          }
          return $data;
        }    

        $headers = "To: $emailto\nFrom: $from\nSubject: $subject\nX-Mailer: The Bat! (v3.99.3) Professional\n";
        $smtp_conn = @fsockopen($server, 25, &$errno, &$errstr, 30);
        if (!$smtp_conn) {
            return "Server $server. Connection failed: $errno";
        }
        $data = get_data($smtp_conn); 
        
        $serverdomainarray = explode('.', $server);
        $serverdomainarraycount = count($serverdomainarray);
        $serverdomain = $serverdomainarray[$serverdomainarraycount - 2].".".$serverdomainarray[$serverdomainarraycount - 1];
        
        fputs($smtp_conn,"HELO $serverdomain\r\n");
        $data = get_data($smtp_conn);
        if($data != 250) {fclose($smtp_conn); return 'SMTP server HELO command error.';}
        
        fputs($smtp_conn,"AUTH LOGIN\r\n");
        $data = get_data($smtp_conn);
        if($data != 334) {fclose($smtp_conn); return 'SMTP server AUTH command error.';}
        
        fputs($smtp_conn,base64_encode($login)."\r\n");
        $data = get_data($smtp_conn);
        if($data != 334) {fclose($smtp_conn); return 'SMTP server login failed.';}
        
        fputs($smtp_conn,base64_encode($password)."\r\n");
        $data = get_data($smtp_conn);
        if($data != 235) {fclose($smtp_conn); return 'SMTP server incorrect password.';}

        fputs($smtp_conn,"MAIL FROM: $login@$serverdomain\r\n");
        $data = get_data($smtp_conn);
        if($data != 250) {fclose($smtp_conn); return 'SMTP server MAILFROM command error.';}
        
        fputs($smtp_conn,"RCPT TO: $emailto\r\n");
        $data = get_data($smtp_conn);
        if($data != 250) {fclose($smtp_conn); return 'SMTP server RCPT TO command error.';}
    
        fputs($smtp_conn,"DATA\r\n");
        $code = substr(get_data($smtp_conn),0,3);
        if($code != 354) {fclose($smtp_conn); return 'SMTP server DATA sending error.';}

        fputs($smtp_conn,$headers."\r\n".$message."\r\n.\r\n");
        $code = substr(get_data($smtp_conn),0,3);
        if($code != 250) {fclose($smtp_conn); return 'SMTP server HEADER sending error.';}

        fputs($smtp_conn,"\n.\nQUIT\n");
        $data = get_data($smtp_conn);
        fclose($smtp_conn);
        return 'OK';
    }
    
    // PHPMailer
    function CallPHPMailer($sendmethod) {
        global $gTestCaptcha;
        if (($gTestCaptcha == true)&&(empty($_POST['captcha']) || ($_POST['captcha'] != $_SESSION['random_number']))) {
            ShowMessage('ERROR!<br>Verification code is incorrect.');
            exit();
        }        
        if (empty($_POST['cname'])) {
            ShowMessage('ERROR!<br>Enter correct name.');
            exit();
        }
        if (empty($_POST['email']) || !preg_match("/^[-\w.]+@([A-z0-9][-A-z0-9]+\.)+[A-z]{2,4}$/", $_POST['email'])) {
            ShowMessage('ERROR!<br>Enter correct email.');
            exit();        
        }
        
        $cname = substr($_POST['cname'], 0, 50);
        $cname = trim($cname);
        $cname = htmlspecialchars(stripslashes($cname));        
        $email = substr($_POST['email'], 0, 50);
        $email = trim($email);
        $email = htmlspecialchars(stripslashes($email));            
        $subject = substr($_POST['subject'], 0, 50);
        $subject = trim($subject);
        $subject = htmlspecialchars(stripslashes($subject));                
        $message = substr($_POST['message'], 0, 4096);
        $message = trim($message);
        $message = htmlspecialchars(stripslashes($message));            
        
        global $gSMTPServer, $gSMTPLogin, $gSMTPPassword, $gEmailto, $gOKMessage;
        if ($sendmethod == 'sendmail') {
            if (mail($gEmailto, $subject, $message, 'From: "'.$cname.'" <'.$email.'>')) {
                ShowMessageRef($gOKMessage);
            } else {
                ShowMessageRef('Error during message sending.');
            }
        } else if ($sendmethod == 'SMTP') {
            $result = SMTPmail($gSMTPServer, $gSMTPLogin, $gSMTPPassword, $gEmailto, $subject, $message, 'From: "'.$cname.'" <'.$email.'>');
            if ($result == 'OK') {
                ShowMessageRef($gOKMessage);                
            } else {
                ShowMessageRef($result);
            }
        }
    }
    
    // AjaxMailer
    function CallAJAXMailer($sendmethod) {    
        function MakeExit($vsStatus, $vsErrors) {
            header('Content-Type: text/xml');
            echo '<?xml version="1.0" encoding="UTF-8" standalone="yes"?>';

            echo '<resultset>';
            echo '<status>'.$vsStatus.'</status>';
            if ($vsErrors <> '') {
                echo '<errors>'.$vsErrors.'</errors>';
            }
            echo '</resultset>';    
            exit();
        }
            
        function cleanPosUrl ($str) {
            $nStr = $str;
            $nStr = str_replace("**am**","&",$nStr);
            $nStr = str_replace("**pl**","+",$nStr);
            $nStr = str_replace("**eq**","=",$nStr);
            return stripslashes($nStr);
        }

        $cname = substr(cleanPosUrl($_POST['posName']), 0, 50);
        $cname = trim($cname);
        $cname = htmlspecialchars(stripslashes($cname));        
        $email = substr(cleanPosUrl($_POST['posEmail']), 0, 50);
        $email = trim($email);
        $email = htmlspecialchars(stripslashes($email));            
        $subject = substr(cleanPosUrl($_POST['posSubject']), 0, 50);
        $subject = trim($subject);
        $subject = htmlspecialchars(stripslashes($subject));                
        $message = substr(cleanPosUrl($_POST['posMessage']), 0, 4096);
        $message = trim($message);
        $message = htmlspecialchars(stripslashes($message));    
        $captcha = substr(cleanPosUrl($_POST['posCaptcha']), 0, 50);
        $captcha = trim($captcha);
        $captcha = htmlspecialchars(stripslashes($captcha));        
        
        $posErrors = '';
        
        global $gTestCaptcha;
        if (($gTestCaptcha == true)&&(empty($captcha) || ($captcha != $_SESSION['random_number']))) {
            $posErrors .= '<li>Verification code is incorrect!</li>';
            $posErrors = '<![CDATA['.$posErrors.']]>';
            MakeExit('CAPTCHAERROR', $posErrors);
        }    
        
        if (empty($cname)) {
            $posErrors .= '<li>Enter correct name</li>';
        }
        if (empty($email) || !preg_match("/^[-\w.]+@([A-z0-9][-A-z0-9]+\.)+[A-z]{2,4}$/", $email)) {
            $posErrors .= '<li>Enter correct email</li>';    
        }
        
        if ($posErrors <> '')
            $posErrors = '<![CDATA['.$posErrors.']]>';
        
        if ($posErrors <> '') 
            MakeExit('ERRORS', $posErrors);
        
        global $gSMTPServer, $gSMTPLogin, $gSMTPPassword, $gEmailto;        
        if ($sendmethod == 'sendmail') {
            if (mail($gEmailto, $subject, $message, 'From: "'.$cname.'" <'.$email.'>')) {
                MakeExit('OK', '');
            } else {
                MakeExit('NOTOK', '');
            }
        } else if ($sendmethod == 'SMTP') {
            $result = SMTPmail($gSMTPServer, $gSMTPLogin, $gSMTPPassword, $gEmailto, $subject, $message, 'From: "'.$cname.'" <'.$email.'>');
            if ($result == 'OK') {
                MakeExit('OK', '');    
            } else {
                MakeExit('ERRORS', '<![CDATA[<li>'.$result.'</li>]]>');
            }
        }                
    }
    
    // Main
    if (isset($_GET['action'])) 
        if ($_GET['action'] == 'getCaptcha') {
            header('Pragma: no-cache');
            header('Expires: -1');
            header('Cache-control: no-cache');
            $_SESSION['random_number']=rand(1000, 9999);
            $number=$_SESSION['random_number'];
            header ("Content-type: image/png");
            $im = @imagecreatetruecolor(60, 19)
                     or die("Cannot Initialize new GD image stream");
            $text_color = imagecolorallocate($im, 199, 224, 212);
            $text_color1 = imagecolorallocate($im, 0, 0, 0);
            $background = imagecolorallocate($im, 121, 179, 11);
            $e=imagefilledrectangle ( $im, 0, 0,100, 50, $background);
            imagestring($im, 8, 2, 2,  $number, $text_color);
            imagestring($im, 8, 4, 4,  $number, $text_color1);
            imagegif($im);
            imagedestroy($im);    
            exit();
    }
    if (isset($_GET['tech']) && isset($_GET['method'])) {
        if ($_GET['tech'] == 'php') {
            CallPHPMailer($_GET['method']);
        } else if ($_GET['tech'] == 'ajax') {
            CallAJAXMailer($_GET['method']);
        }
    }
?>

글쓴이 제목 최종 글
XE 공지 글 쓰기,삭제 운영방식 변경 공지 [16] 2019.03.05 by 남기남
Senahri 배경넣기 질문  
nfreerin 현재 위치를 표시하려면 어떻게 하나요? [8] 2015.12.25 by nfreerin
bonui Nizbridge 님 XE Portfolio type 레이아웃 로그인 문제  
다미아빠 질문 질문!  
apleshade nas 구입보다는 웹호스팅이 낫지 않나요 [1] 2015.12.25 by 댑펑
풀카운트 방명록 글 작성이 안되는데요. [4] file 2015.12.25 by 풀카운트
곰맨 이 사이트 레이아웃 스킨좀 알 수 있을까요? [1] file 2015.12.25 by YJSoft
thdwjdtjr 댓글(일정시간 지나면) 수정 및 삭제 못하도록 [2] 2015.12.25 by thdwjdtjr
thdwjdtjr 글자간격을 조절하는 방법 [2] file 2015.12.25 by thdwjdtjr
thdwjdtjr 글쓴 날짜를 변경하고자 할 경우 [2] 2015.12.25 by thdwjdtjr
게고코고 크롬 모바일에서 로그인이 자꾸 풀립니다  
마루밑다락방 그누보드 이전툴... 오류.... file  
궁시렁궁시렁 모듈(elfinderxe) 설치 후 설치된모듈 페이지에서 보이지 않습니다.  
apleshade xe로 대학 커뮤니티를 하나 만들까하는데요 [4] 2015.12.25 by 부산민지아빠
달봉이 홈페이지가 안되요? [1] 2015.12.25 by 부산민지아빠
라돌체 [xe files] 필요 없는 첨부파일 삭제할 수 있을까요? [1] 2015.12.25 by sejin7940
솔파도 회원정보에 포인트점수가 보이게 하려면 어떻게 하면 될까요? [1] 2015.12.25 by sejin7940
마루밑다락방 안녕하세요.. 그누보드5를 사용하다.... [1] 2015.12.24 by sejin7940
약방3호 xe 입문했습니다만.. [1] 2015.12.26 by 약방3호
스파모 이에러 어떻게 수정해야하나요? [1] file 2015.12.24 by 스파모
별쫑 브라우저에 따른 다른 css 적용이..... [3] 2015.12.24 by 별쫑
지은 폼메일로 메일을 보내면 한글이 깨집니다 ㅜㅠ  
땡이누나 게시판에 글올릴때 테이블을 삽입하면 선이 없어지는 현상? [1] file 2015.12.24 by Donza
웅돌 고급메일 모듈에 대해서..  
성혀니맘 xedition에서 css파일 중 min.css파일이 없습니다.. [5] 2015.12.24 by 성혀니맘
솔파도 갑자기 위젯 추가후 저장이 안되네요! [1] 2015.12.23 by kang154123
kang154123 ReWrite 관련 에러로 추정 - 414 Request-URI Too Large  
geoever XE 1.8.14에서 글 등록이 안 됩니다. [8] 2015.12.23 by kang154123
보고 댓글이 어느정도 작성되면 타이핑보다 늦어지는 형상(버벅거림)  
nfreerin 페이지 로딩시 특정 드롭다운 메뉴의 서브 메뉴가 잠시 출력되는 문제 [3] 2015.12.23 by DoorWeb