묻고답하기

어렵네요.

2009.04.30 22:58

장우성

안녕하세요,  다음과 같은 프로그램이 있습니다.

이 코딩은 플래시의 액션 스크립트 입니다. 창에 어떤 내용을 입력하고 단추를 클릭하면 이 함수가 호출됩니다.

그럼 입력된 내용이 test.php에 전달되어 데이타 베이스에 기록되게 하려고 합니다.  

test.php는 document.controller.php에서 따온 코딩입니다.

제가 알고 싶은 부분은 이 플래시 코딩에서  php로 어떤 변수를 어떻게  넘기는가? 하는 것입니다. 데이터 베이스의 어느 필더 

에 기록될 것인지를 어떻게 코팅하나요? 

코딩을 보니   $obj가 변수 인것 같은데 여기에 플래시 창에 쓴  내용을 실은 수 있을까요?

감사합니다.


// 액션 스크립트

on (release)
{
       loadVariablesNum("http://e-writing.com/test.php",0,"post");
       content="";
       System.setClipboard("Chapter " + chapter + "  Unit " + unit + "  " + title + "\r\n" + allcontent);
       getURL("javascript:window.self.close()");
    
}

// 액션 스크립트 끝


// test.php 시작

<?php
   
        function insertDocument($obj, $manual_inserted = false) {
            // begin transaction
            $oDB = &DB::getInstance();
            $oDB->begin();

            // 기본 변수들 정리
            if($obj->is_secret!='Y') $obj->is_secret = 'N';
            if($obj->allow_comment!='Y') $obj->allow_comment = 'N';
            if($obj->lock_comment!='Y') $obj->lock_comment = 'N';
            if($obj->allow_trackback!='Y') $obj->allow_trackback = 'N';
            if($obj->homepage &&  !preg_match('/^[a-z]+:\/\//i'+ '+ ',$obj->homepage)) $obj->homepage = 'http://'.$obj->homepage;
            if($obj->notify_message != 'Y') $obj->notify_message = '+ 'N';

            // $extra_vars를 serialize
            $obj->extra_vars = serialize($obj->extra_vars);

            // 자동저장용 필드 제거
            unset($obj->_saved_doc_srl);
            unset($obj->_saved_doc_title);
            unset($obj->_saved_doc_content);
            unset($obj->_saved_doc_message);

            // 주어진 문서 번호가 없으면 문서 번호 등록
            if(!$obj->document_srl) $obj->document_srl = getNextSequence();

            // trigger 호출 (before)
            $output = ModuleHandler::triggerCall('document.insertDocument', 'before', $obj);
            if(!$output->toBool()) return $output;

            $oDocumentModel = &getModel('document');

            // 카테고리가 있나 검사하여 없는 카테고리면 0으로 세팅
            if($obj->category_srl) {
                $category_list = $oDocumentModel->getCategoryList($obj->module_srl);
                if(!$category_list[$obj->category_srl]) $obj->category_srl = 0;
            }

            // 조회수, 등록순서 설정
            if(!$obj->readed_count) $obj->readed_count = 0;
            $obj->update_order = $obj->list_order = getNextSequence() * -1;

            // 수동입력을 대비해서 비밀번호의 hash상태를 점검, 수동입력이 아니면 무조건 md5 hash
            if($obj->password && !$obj->password_is_hashed) $obj->password = md5($obj->password);

            // 수동 등록이 아니고 로그인 된 회원일 경우 회원의 정보를 입력
            if(Context::get('is_logged')&&!$manual_inserted) {
                $logged_info = Context::get('logged_info');
                $obj->member_srl = $logged_info->member_srl;
                $obj->user_id = $logged_info->user_id;
                $obj->user_name = $logged_info->user_name;
                $obj->nick_name = $logged_info->nick_name;
                $obj->email_address = $logged_info->email_address;
                $obj->homepage = $logged_info->homepage;
            }

            // 제목이 없으면 내용에서 추출
            settype($obj->title, "string");
            if($obj->title == '') $obj->title = cut_str(strip_tags($obj->content),20,'+ '...');
            //그래도 없으면 Untitled
            if($obj->title == '') $obj->title = 'Untitled';

            // 내용에서 XE만의 태그를 삭제
            $obj->content = preg_replace('!<\!--(Before|After)(Document|Comment)\(([0-9]+),([0-9]+)\)-->!is', '', $obj->content);

            // 세션에서 최고 관리자가 아니면 iframe, script 제거
            if($logged_info->is_admin != 'Y') $obj->content = removeHackTag($obj->content);

            // 로그인정보가 없고 사용자 이름이 없으면 오류 표시
            if(!$logged_info->member_srl && !$obj->nick_name) return new Object(-1,'msg_invalid_request');

            $obj->lang_code = Context::getLangType();

            // DB에 입력
            $output = executeQuery('document.insertDocument', $obj);
            if(!$output->toBool()) {
                $oDB->rollback();
                return $output;
            }

            // 등록 성공시 확장 변수 등록
            $extra_keys = $oDocumentModel->getExtraKeys($obj->module_srl);
            if(count($extra_keys)) {
                foreach($extra_keys as $idx => $extra_item) {
                    $value = '';
                    if(isset($obj->{'extra_vars'.$idx})) $value = trim($obj->{'extra_vars'.$idx});
                    elseif(isset($obj->{$extra_item->name})) $value = trim($obj->{$extra_item->name});
                    if(!isset($value)) continue;
                    $this->insertDocumentExtraVar($obj->module_srl, $obj->document_srl, $idx, $value, $extra_item->eid);
                }
            }

            // 성공하였을 경우 category_srl이 있으면 카테고리 update
            if($obj->category_srl) $this->updateCategoryCount($obj->module_srl, $obj->category_srl);

            // 공지사항 글이면 공지사항 캐시 업데이트
            if($obj->is_notice == 'Y') $this->updateDocumentNoticeCache($obj->module_srl);

            // trigger 호출 (after)
            if($output->toBool()) {
                $trigger_output = ModuleHandler::triggerCall('document.insertDocument', 'after', $obj);
                if(!$trigger_output->toBool()) {
                    $oDB->rollback();
                    return $trigger_output;
                }
            }

            // commit
            $oDB->commit();

            // return
            $this->addGrant($obj->document_srl);
            $output->add('document_srl',$obj->document_srl);
            $output->add('category_srl',$obj->category_srl);
            return $output;
        }

?>
 

글쓴이 제목 최종 글
XE 공지 글 쓰기,삭제 운영방식 변경 공지 [16] 2019.03.05 by 남기남
Coridon 회원가입 폼 길이와 가입 나이 제한  
생명시내 xml query에 대해 질문 드립니다. [1] 2010.12.07 by 라르게덴
젤라존 외부페이지에서 $_GET 사용법 부탁드립니다. [1] 2010.12.07 by 라르게덴
이동훈0818 관리자페이지 - 설정 - 캐시파일 재생성을 하면 에러가 납니다. [1] file 2010.12.07 by Arp
100억 Content 이미지 슬라이더 ver. 0.7 오류!! file  
wiwi 게시판에서 동영상 재생이 안보임  
불독796 모바일페이지  
최혁필184 파이어 폭스 css가 안맞아용.(끌올) file  
차디찬불꽃 DNS 설정 변경 후 문제가 생겼어요..  
오스카 다국어 홈페이지를 만들려고 하는데 관련된 설명서 같은것 어디에 있나요? [1] 2010.12.07 by thejeon
newkkd 최근글 위젯 사용시 오류발생합니다. [1] file 2010.12.07 by newkkd
한상윤113 게시판목록을 클릭하면 이렇게 나옵니다.  
서방정 1.4.4.2 업데이트 이후 에러 (도와주세요 -ㅁ-) file  
궁금이요 최근글 불러오려고 하는데 모듈이 검색되지 않아요... [3] file 2010.12.07 by 궁금이요
오스카 [페이지]에 플래시 코드를 삽입후 나중에 다른 것 수정해도 플래시 사라집니다.  
이동훈0818 캐시파일 재생성을 하면 다음과 같이 메세지가 나타납니다. [1] file 2010.12.07 by 괴적인격
엑플 files 폴더가 없습니다. [1] file 2010.12.07 by thejeon
장뚱이 게시판에서 ip 주소 어떻게 안보이게 하나요? [1] 2010.12.07 by thejeon
한수용769 제가 게시판을 공유 하고 싶습니다~!!1 [1] 2010.12.07 by thejeon
우라늄한사발 게시판 링크는 어떻게 시키는건가요? [3] 2010.12.07 by thejeon
남십자☆성 xe 1442 update후 관리자 접속화면 error  
티요리 로그인 후 게시판에 들어가면 로그인이 풀리는 현상 [2] 2010.12.07 by TT PIC
Coridon 글쓰기 에디터의 줄 간격 추가하는 방법  
줏메. 스킨을 설치했는데  
실비757 invalid check score 오류가 있습니다;  
tui 홈페이지 메인에 페이지설정 질문드립니다. [2] file 2010.12.08 by tui
zieo 설치 내용 입력 후 설치 초기화면으로 다시 이동합니다  
zidane2k 텍스타일 설치시 설치가 제대로 안됍니다.. [1] file 2010.12.08 by zidane2k
apollos 다운로드 에서 리플 글쓰기가 안되는데요 ?? [1] 2010.12.08 by 백성찬
j.M 모바일뷰 블랙베리 지원하나요? [1] 2010.12.08 by 백성찬