You cannot see this page without javascript.

Skip Navigation

XE 레이아웃 카메론 XE LAYOUT CAMERON XE2.0.16


확대 기본 축소
XE코어
2020.08.12 23:51

xe의 시작페이지 index.php

profile
(*.168.0.1) Views 41 Votes 0 Comment 0
?

Shortcut

PrevPrev Article

NextNext Article

Larger Font Smaller Font Up Down Go comment Print

XE코어의 index.php는 무척 간단한 몇 줄의 PHP 구문으로 작성되어 있다. 하지만 index.php는 XE 전반에 걸쳐 가장 중요한 문서이다. 왜냐하면 XE가 기본적으로 사용하는 class파일을 모두 include(포함)한다.

 

require('./config/ config.inc.php');

 

위 문장은 단 하나의 config.inc.php 문서파일을 불러오는 것 같지만 사실은 기본적인 환경설정과 함께 XE코어의 함수들을 정의한 함수라이브러리 파일 func.inc.php 문서와 다수의 모든 Class 파일을 include(포함)한다는 뜻이다.

 

require(XE_PATH.'config/func.inc.php');

 

그리고

require(XE_PATH.'classes/object/Object.class.php');

require(XE_PATH.'classes/extravar/Extravar.class.php');

require(XE_PATH.'classes/handler/Handler.class.php');

require(XE_PATH.'classes/xml/XmlParser.class.php');

require(XE_PATH.'classes/xml/XmlJsFilter.class.php');

require(XE_PATH.'classes/cache/CacheHandler.class.php');

require(XE_PATH.'classes/context/Context.class.php');

require(XE_PATH.'classes/db/DB.class.php');

require(XE_PATH.'classes/file/FileHandler.class.php');

require(XE_PATH.'classes/widget/WidgetHandler.class.php');

require(XE_PATH.'classes/editor/EditorHandler.class.php');

require(XE_PATH.'classes/module/ModuleObject.class.php');

require(XE_PATH.'classes/module/ModuleHandler.class.php');

require(XE_PATH.'classes/display/DisplayHandler.class.php');

require(XE_PATH.'classes/template/TemplateHandler.class.php');

require(XE_PATH.'classes/mail/Mail.class.php');

require(XE_PATH.'classes/page/PageHandler.class.php');

require(XE_PATH.'classes/mobile/Mobile.class.php');

 

그런데 왜 include 키워드를 사용하지 않고 require 키워드를 사용하였을까? 둘 다 모두 외부의 파일을 현재 문서에 포함 또는 삽입하는 의미이다. 우선 키워드의 의미를 사전적으로 살펴보자. (언어의 의미를 알면 개념을 쉽게 알 수 있다. - 프로그래밍은 언어 작업이다.)

  • include : …을 (부분·요소 등으로서) 포함하다, 함유포괄하다.
  • require : … 필요로 하다, …을 요하다 《need보다 딱딱한 말》(권리·권력으로) …을 요구하다;〈법·규칙 등이〉 …을 명하다, 명령하다;(사람에게) …을 요청하다.

PHP에서는 이것을 다음과 같은 경우에 나누어 사용한다.

The two functions are identical in every way, except how they handle errors:

  • include() generates a warning, but the script will continue execution
  • require() generates a fatal error, and the script will stop

두 가지 기능들이 오류를 제어하는 방법을 제외하고 모든 면에서 동일하다 :

  • include()는 경고를 생성하지만, 스크립트는 실행을 계속합니다.
  • require()는 치명적인 오류를 생성하고, 스크립트가 중단됩니다.

단어의 의미로 생각해 보면 이해가 쉽다. include(인클루드)는 부드러운 표현이고 어감도 부드럽다...^^ 있으면 좋고 없으면 그만인 것을 포함한다는 의미(?)이고 require(리콰이어)는 매우 권위적이면서(발음도 쌔다) 반드시 필요하다는 의미이다. 만약 요청한 파일이 없다거나 문제가 있는 경우 스크립트를 모두 중단하겠다는 뜻이다...^^ 그래서 처음에 XE를 설치할 때 파일 업로드가 제대로 완료되지 않으면 오류가 발생하면서 설치가 중단되는 군! 따라서 파일업로드는 반드시 파일질라로 해야한다. 그리고 전송 실패한 파일이 있는지도 꼼꼼히 확인해 보아야 한다. 가능하면 SSH로 작업하는 것이 좋다.

기본적인 환경설정과 필요한 클래스(Class) 파일을 모두 불러오면 XE는 Context 객체를 생성하여 초기화하고 환경변수를 세팅한다.

 

$oContext = &Context;::getInstance();

$oContext->init();

 

객체변수 $oContext가 클래스(Class) Context 에서 메서드(Method) getInstance()를 호출하여 생성된 객체변수를 참조로 받고, 메서드(Method) init()를 가리키면서 해야 할 일(환경변수 설정)을 시키고 있다.

 

if($oContext->checkSSO())

 

checkSSO()는 Single Sign On(SSO)으로 단일 로그인 환경을 확인해 보겠다는 뜻이다. 주석을 보면 "default_url(기본 URL/설정에서 기본 URL을 입력하도록 되어 있다)이 설정되어 있고 현재 url이 default_url과 다르면 SSO인증을 위한 rediret 시도 후 모듈 동작"한다고 설명되어 있다. 이것은 기본 URL과 함께 세션에 저장된 시작 모듈(설정에서 시작 모듈을 선택하여 설정하도록 되어 있다)을 찾아 보여준다는 의미이다. XE에서 시작 모듈을 설정하는 것은 가장 먼저 해야 할 일이다.

 

XE에서 로그인 풀림 방지

 

웹사이트에 접속할 때 http 프로토콜 다음에 www를 붙이는 경우와 없는 경우 XE는 로그인 처리에 혼동이 생긴다. 예를 들어 www.xeschool.com으로 웹페이지에 접속하면 index.php는 메서드 checkSSO()를 확인하면서 default_url(기본 URL)과 비교한다. 이때 SSOID의 값을 받아와 세션값을 기본으로 로그인 설정을 위한 쿠키(setcookie(session_name(), $session_name);)를 만들고 header("location:".$url); 로 시작 모듈을 찾아온다.

이때 중요한 것은 기본 URLXE의 기본URL 입력 설정 부분이다의 입력 설정값이 http://www.xeschool.com/xe/ 라면 www 로 접속했을 경우 로그인이 풀리지 않지만, http://xeschool.com/xe/ 로 설정되어 있다면 두 개의 접속 도메인은 분명히 다르고 저장된 쿠키의 내용도 다르기 때문에 다른 모듈로 이동할 경우 로그인이 풀리는 듯한 현상이 발생한다. 다시 원래의 모듈로 돌아오면 로그인 되어 있다! 반대의 경우에도 마찬가지다. 따라서 XE 설정에서 기본 URL 입력 설정을 꼭 확인하고(www를 붙인 경우와 아닌 경우) 아래의 소스를 index.php 파일의 기본 상수 선언 --- define('ZBXE', true); --- 다음 줄에 추가하도록 하자. (아래 소스는 공식홈의 XE 사용팁에서 ezi님이 소개한 로그인 풀림방지-주소 고정하기에 소개된 내용이다.)

 

xe/index.php 파일을 열고

define('ZBXE', true); 다음행에 아래코드를 추가한다.

 

www 를 붙여 사용하지 않는 경우 :

preg_match('@^(www\\.)(.*)@', $_SERVER'HTTP_HOST', $www_url);
if($www_url1) {
@header('Location: http://' . $www_url2 . $_SERVER'REQUEST_URI');
}

www 를 붙여 사용하는 경우 :

preg_match('@^(www\\.)(.*)@', $_SERVER'HTTP_HOST', $www_url);
if(!$www_url1) {
@header('Location: <http://www>.' . $_SERVER'HTTP_HOST' . $_SERVER'REQUEST_URI');
}

※ 위 내용은 XE코어 index.php 파일을 수정하는 내용이기 때문에 최초 설치 및 버전 업그레이드시에 재수정하여 업로드해야 한다.

자료 출처 : 로그인풀림방지 - 주소 고정하기

http://www.xpressengine.com/19787880

* User ID : leesungmin
* User Name : 이성민
* Email : imadonis@naver.com
* Homepage : https://4880.net
* Birthday : 1972-07-24
* Member Group : 관리그룹,유료회원,문제출제
* Signup Date : 2012-07-19
* Following : 랩퍼투혼 whom the member is following.
* Following Count : 1people
* Followed by : 탑돌이, 랩퍼투혼 ... now follwing this member.
* Followed Count : 2people

< 빌립보서 4장 13절>
내가 주 안에서 크게 기뻐함은 너희가 나를 생각하던 것이 이제 다시 싹이 남이니 너희가 또한 이를 위하여 생각은 하였으나 기회가 없었느니라   
내가 궁핍하므로 말하는 것이 아니니라 어떠한 형편에든지 나는 자족하기를 배웠노니    
나는 비천에 처할 줄도 알고 풍부에 처할 줄도 알아 모든 일 곧 배부름과 배고픔과 풍부와 궁핍에도 처할 줄 아는 일체의 비결을 배웠노라
내게 능력 주시는 자 안에서 내가 모든 것을 할 수 있느니라 

* Document Count : 17357
* Comment Count : 82
* Document Count : 36
* Document Count : 115
* Comment Count : 123
* Document Count : 2
* Comment Count : 2
* Document Count : 1
* Comment Count : -1
카카오링크
Attach Images or Files

Drop your files here, or click the button to the left.

Maximum File Size : 0MB (Allowed extentsions : *.*)

0 file(s) attached ( / )

제로XE/라이믹스/그누/워드프레스

회원만 쓰기 가능합니다.

List of Articles
No. Category Subject Author Date Views
Notice Tip&Tech xe 동작순서 부운영자 2015.08.24 1010
Notice Tip&Tech XE의 애드온 및 모듈의 기능 요약표 부운영자 2015.01.16 1261
Notice Tip&Tech XEReferences 부운영자 2014.11.29 933
Notice Tip&Tech XE 스킨 제작 매뉴얼 v1.1 (Korean, PDF) file 부운영자 2014.11.29 1273
Notice Tip&Tech XE 개발자 매뉴얼 v1.1 (Korean, PDF) file 부운영자 2014.11.29 1788
Notice Tip&Tech xe 레퍼런스 모음 file 부운영자 2014.10.10 2534
화제의 글 Tip&Tech PHP용 로그 라이브러리 공유합니다. 부운영자 2021.03.29 75
화제의 글 XE/라이믹스 게시글 DB 수동이동 부운영자 2021.03.17 51
화제의 글 매뉴얼 xml 쿼리 사용법 부운영자 2021.03.08 56
208 XE코어 클래스 친구들 클래스 친구들 Object.class.php Context.class.php 부운영자 2020.08.12 45
207 XE코어 설정을 위한 2개의 문서 환경설정 config.inc.php 함수라이브러리 func.inc.php 부운영자 2020.08.12 23
206 XE코어 Context의 이해 Understanding of Context Context는 사전적 의미로 (어떤 일의) 맥락, 전후 사정을 뜻한다. 즉 어떤 글이 있다면 글의 맥락, 문맥이라는 뜻이기도 하다. 컴퓨터에서는 이것을 상황 정보라고도 표현한다. 쉽게 말해서 XE와 같은 CMS 프레임워크에서는 웹페이지를 만들기 위해 필요한 모든 정보를 가지는 데이터(Data)의 구조... 부운영자 2020.08.12 36
» XE코어 xe의 시작페이지 index.php XE코어의 index.php는 무척 간단한 몇 줄의 PHP 구문으로 작성되어 있다. 하지만 index.php는 XE 전반에 걸쳐 가장 중요한 문서이다. 왜냐하면 XE가 기본적으로 사용하는 class파일을 모두 include(포함)한다. require(&#039;./config/ config.inc.php&#039;); 위 문장은 단 하나의 config.inc.php 문서파일을 불러오는 것 같지만 사실... 부운영자 2020.08.12 41
204 XE코어 xe 처럼 생각하고 말하기 클래스의 정의 class 객체 생성 class instance 상속 Extends 참조 Reference 부운영자 2020.08.12 21
203 XE코어 XpressEngine의 동작 순서 XE는 요청을 받고 이에 대한 결과를 만들어 출력을 하고 종료됩니다. 전체적인 동작순서는 아래와 같습니다. XpressEngine의 순서별 안내 XE의 각 순서별 자세한 내용은 아래와 같습니다. 1.요청 (Request) XE는 웹프로그램이며 XE가 동작하기 위해서는 브라우저, 어플리케이션, XE 혹은 다른 프로그램들을 통해서 요청을 받... file 부운영자 2020.08.12 32
202 XE코어 xe 코어 xe 코어 부운영자 2020.08.12 33
201 XE코어 xe 노트 소개 XE 코어의 이해를 위한 XE스쿨 학습 노트 XE코어를 살펴보는 것은 XE Core를 수정하거나 변경하기 위해서 공부하는 것이 아니다. XE코어가 생각하고 행동하는 방법을 유심히 살펴보는 것이고 작성된 코드의 내용을 한번 쯤 읽어보는(Reading Code) 작업이다. 그러면 XE와 좀더 친하게 지낼 수 있다...^^ 부운영자 2020.08.12 14
200 XE코어 XE 노트 xe 노트 소개 xe 코어 xe 모듈 xe 애드온 xe 위젯 부운영자 2020.08.12 15
199 Tip&Tech Chrome Console SameSite Cookie Attribute Warning 제거 Chrome Console SameSite Cookie Attribute Warning Is anybody else getting this Chrome console warning? A cookie associated with a cross-site resource at was set without the SameSite attribute. A future release of Chrome will only deliver Stack Overflow 부운영자 2020.07.29 47
198 Tip&Tech 리눅스 쉘스크립트, Crontab을 이용한 자동백업 따라해보기 리눅스 쉘스크립트, Crontab을 이용한 자동백업 따라해보기 Ubuntu 백업 스크립트 작성하기 아래 설명글은 Ubuntu 뿐만 아니라 모든 Linux 배포판에 대해서 공통적으로 실행가능합니다. 서버를 운영하면서, 백업과 보안은 항상 염두해 두어야 하는 사항이다. 리눅스 시스템.. 배우고 나누고 배우고 정리하 - RainbowM / 2017... 부운영자 2020.07.15 122
197 Tip&Tech Crontab 설정 방법 rhymix/rhymix-docs Rhymix Official Documentation. Contribute to rhymix/rhymix-docs development by creating an account on GitHub. GitHub 부운영자 2020.07.15 52
196 Tip&Tech 오류 좀 봐주세요!! mmm 이걸 해결 못하고 있네요...ㅜㅜ jQuery(function($) { if(viewer_option &lt; 1 &amp;&amp; viewer_srl.length &lt; 1 &amp;&amp; viewer_ext.length &lt; 1 &amp;&amp; viewer_url.length &lt; 1) return; var srl = viewer_srl.split(&#039; | &#039;); var ext = viewer_ext.split(&#039; | &#039;); var url = viewer_url.split(&#039; | &#039;); var l = url.length; var exts = &#039;pdf... file 부운영자 2020.07.04 49
195 Tip&Tech 빌어먹을 로봇 퇴치하기 =>SemrushBot 빌어먹을 로봇 퇴치하기 =&gt;SemrushBot 일반적으로 로봇을 차단하는데 robots.txt를 이용합니다. 하지만 robots.txt 규칙을 무시하는 빌어먹을(??) 봇들이 많습니다. .htaccess를 이용하는 방법도 있습니다. https://github.com/bluedragonz/bad-bot-blocker/blob/master/.htaccess 의 내용을 .htaccess 앞부분에 넣어주면 됩... 부운영자 2020.06.15 146
194 Tip&Tech 에디터 컴포넌트에서 특정 xml만 403 forbidden 라이믹스는 보안상 모듈 폴더 아래에 있는 xml 파일에 직접 접근하는 것을 막고 있습니다. 에디터 컴포넌트에서 xml 파일에 직접 접근할 필요가 있다면 .htaccess 파일 4번째 줄의 내용을 RewriteCond %{REQUEST_URI} !/modules/editor/(skins|styles)/ 에서 RewriteCond %{REQUEST_URI} !/modules/editor/(skins|styles|com... 부운영자 2020.05.18 123
193 Tip&Tech 크롬 사용시 로그인 풀림 현상 가생이닷컴 &gt; 공지사항 &gt; 크롬 사용시 로그인 풀림 현상 한국에 대한 해외반응 한류팬반응 일본반응 중국반응 한류영상등 번역 gasengi.com 부운영자 2020.04.27 177
192 Tip&Tech 파도타기 스크립트[ 프로모에 위치] &lt;!DOCTYPE html&gt; &lt;html lang=&quot;ko&quot;&gt; &lt;head&gt; &lt;meta charset=&quot;UTF-8&quot;&gt; &lt;title&gt;파도타기시작 &lt;/title&gt; &lt;style type=&quot;text/css&quot;&gt; .wave_document{background: #53FF4C; width: 100px; height: 30px; border: 1px solid #CCCCCC; border-radius: 15px;} // .wave_document{background: #FFFFFF; width: 50px; height: 30px; border... 부운영자 2020.04.26 300
191 Tip&Tech 실시간 게시물 알림 모듈 1. 실시간 게시물 알림 모듈은? 사이트에 새로운 게시물(글,댓글) 등록시 사이트 하단에 알림을 띄워서 알려주는 모듈입니다. 서버와 지속적인 통신을 하므로 동시접속자가 적은 사이트에 적합합니다. https://ssgroom.com/xecenter/1368 undefined groom.com 부운영자 2020.04.25 133
190 Tip&Tech 윈도우에서 실행파일을 체크하지 못하는 문제 수정 윈도우에서 실행파일을 체크하지 못하는 문제 수정 · rhymix/rhymix@482985a https://xetown.com/questions/1333742 GitHub / 2020-02-07 부운영자 2020.02.10 434
189 Tip&Tech SSL 도입으로 http -> https 변환시에 주소 리다이렉트 시키기 SSL 도입으로 http -&gt; https 변환시에 주소 리다이렉트 시키기 여기 계신 분들이라면 당연히 다 알고 계시겠지만 문제는 인터넷에 나와 있는 한국말로 된 팁들이 대부분 어딘가 빠져 있거나 허술하거나 잘못되어 있더군요 저도 그것들을 믿고 실행했다가 작동이 안 되거나, 최상위 주소만 되고 세부주소는 안되거나 (예: xet... 부운영자 2020.01.29 437
List
Board Pagination Prev 1 2 3 4 5 6 7 8 9 10 ... 14 Next
/ 14