config.php 에서 G5_SMTP 부분 수정해줍니다.

define('G5_SMTP',        'smtp.worksmobile.com');

define('G5_SMTP_PORT',   '587'); // 웍스모바일의 경우 pop3/smtp 설정이 아닌 imap/smtp 설정 사용

define('G5_SMTP_SECURE', 'TLS');

define('G5_SMTP_ID',     '아이디'); // 웍스에서 사용하는 계정. 이메일주소

define('G5_SMTP_PW',     '비번'); // 비번은 가급적 암/복호화 모듈을 이용해서 암호화 해줄것

define('G5_SMTP_DEBUG',  0); // 1~4. 확인을 원할때는 1이나 2정도로 수정해서 테스트해보세요.


lib/mailer.lib.php 중 일부 수정

    $mail = new PHPMailer(); // defaults to using php "mail()"


    $mail->Encoding = 'base64'; // 기본값이 8bit 이므로, base64로 변경함.

    $mail->SMTPDebug = (@constant('G5_SMTP_DEBUG') ? G5_SMTP_DEBUG : 0);

    $mail->Debugoutput = 'html';

    //$mail->Timeout = 3; // 타임아웃 3초로 변경(기본값 10초)


    if (defined('G5_SMTP') && G5_SMTP) {

        $mail->IsSMTP(); // telling the class to use SMTP

        $mail->Host = G5_SMTP; // SMTP server

        if(defined('G5_SMTP_PORT') && G5_SMTP_PORT)

            $mail->Port = G5_SMTP_PORT;


        if(@constant('G5_SMTP_SECURE')) $mail->SMTPSecure = G5_SMTP_SECURE;

        if(@constant('G5_SMTP_ID') && @constant('G5_SMTP_PW')) {

            $mail->SMTPAuth = true; // enable SMTP authentication

            $mail->Username = G5_SMTP_ID;

            $mail->Password = G5_SMTP_PW; // 비번은 가급적 암/복호화 모듈을 이용해서 암호화 해줄것


            // 웍스의 경우 발송메일주소가 로그인아이디와 같아야 함

            //$mail->SetFrom(G5_SMTP_ID, $fname);

            //$mail->AddReplyTo(G5_SMTP_ID, $fname);

            $fmail = G5_SMTP_ID;

        }

    }


    $mail->CharSet = 'UTF-8';


블로그 이미지

먼지손

,

언젠가부터 로컬환경에서 에디터를 통한 이미지업로드시 항상 에러가 났다. 그런데 정작 파일은 업로드디렉토리에 정상적으로 들어가 있다. 으잉?

뭐 서버쪽에서는 잘 돌아가니까 크게 신경을 안쓰다가 좀 찜찜해서 살펴봤다.


업로드시 에러가 나면 기본적으로는 일반 파일업로드와 마찬가지로 두가지를 중점으로 살펴본다.

1. 업로드 디렉토리의 권한 (data/editor: 707 또는 777)

2. 호스팅용량초과 여부 (관리자에서 캐시,캡챠,썸네일파일들을 삭제하고나서 업로드가 되면 거의 이 이유)


그러나 윈도의 로컬환경에서는 저 두가지 다 해당사항이 없다.

분명 php쪽 에러가 나서 처리가 안됐을 것이다는 짐작하에 이래저래 뒤적거려가며 찍어보다가 찾았다.

smarteditor2/photo_uploader/js/basic.js 에 .on('fileuploadfail', function (e, data) {}) 에서

data.errorThrown.message 찍어보니 'Unexpected token < in JSON at position 0' 이런게 찍힌다.

json데이터로 리턴받는다고 했는데 json형식이 아니었던것다. 그럴만한 이유는 역시나 에러가 나서 일반텍스트가 찍혔겠지.

다시 data.jqXHR.responseText 이걸 찍어봤더니만

<br />?<b>Warning</b>:  Unexpected character in input:  '\' (ASCII=92) state=1 in <b>www\plugin\editor\smarteditor2\photo_uploader\popup\php\UploadHandler.php</b> on line <b>298</b><br />?<br />?<b>Warning</b>:  Unexpected character in input:  '\' (ASCII=92) state=1 in <b>www\plugin\editor\smarteditor2\photo_uploader\popup\php\UploadHandler.php</b> on line <b>764</b><br />?<br />?<b>Warning</b>:  Unexpected character in input:  '\' (ASCII=92) state=1 in <b>www\plugin\editor\smarteditor2\photo_uploader\popup\php\UploadHandler.php</b> on line <b>788</b><br />?<br />?<b>Warning</b>:  Unexpected character in input:  '\' (ASCII=92) state=1 in <b>www\plugin\editor\smarteditor2\photo_uploader\popup\php\UploadHandler.php</b> on line <b>790</b><br />?

...

이런것들이 잔뜩 찍힌다.

UploadHandler.php 파일을 열어보니

$file = new \stdClass();

요런 녀석들이다.

응? 이거 네임스페이스 아닌가?

전에도 Browscap 때문에 문제가 됐었는데 php버전문제다.

네임스페이스는 php 5.3 이상에서 지원되므로 5.3미만에서는 저런 경고가 뜬다.


내 로컬환경이 워낙에 오래전부터 유지되어온 관계로 apmsetup 2009년도 버전인가 그럴거다. 아하하 -_-;

php버전차이를 극뽁하기 위해 xampp도 병행사용하긴 하는데 익숙하다보니 apmsetup을 주로 쓴다;


여튼. 그누보드5.2.0 기준으로..

smarteditor2/photo_uploader/popup/php/UploadHandler.php 파일을 UploadHandler52.php로 복사하고 52파일을 열어 \stdClass(), \Imagick(), \ImagickPixel, \imagick, \Imagick() 들을 찾아 앞에 \를 지워준다.


같은 위치의 index.php 파일을 열어서 require문을 바꿔준다.

변경전

    require('UploadHandler.php');

변경후

    if (version_compare(phpversion(), '5.3', '<')) // namespace는 5.3.0 이상부터 지원
        require('UploadHandler52.php');
    else
        require('UploadHandler.php');



사실.. 이거 눈에 걸린지는 일년쯤 된거 같은데.. 딱히 일하는데 지장도 없고 해서 신경안쓰고 있었다;

그래도 찜찜한거 하나 없애놔서 살짝 좀 유쾌상쾌통쾌~!


블로그 이미지

먼지손

,