웹마스터 팁
XE 외부페이지 직접접속 차단 및 다국어 설정팁
2012.01.01 19:35
XE를 이용해서 외부페이지로 PHP작성해서 데이터베이스 관리하다보니,
XE외부페이지가아닌, 직접 php로 접속하는걸 막고
외부페이지를 다국어로 사용하는방법을 연구하다가 혹시나 저처럼 필요하신분들이 있을거같아서 팁으로 남겨놉니다 ^^
- 제일 상단 (직접 접속차단)
if(!preg_match("/index.php/", $_SERVER['PHP_SELF']))
{ Header("Location: ./"); die(); }
XE는 index.php 파일로 모듈들을 로드하기때문에, 이 방법으로 외부페이지가 아닌, 다이렉트로 접속하는걸 막을 수 있습니다.
- 로그인 했는지 안했는지 체크하고, 했을경우 DB 연결
define('__ZBXE__', true);
require_once('./config/config.inc.php'); //경로 잘 잡을 것
$oContext = &Context::getInstance();
$oContext->init();
$lang_type = Context::get('lang_type');
$logged_info = Context::get('logged_info');
$is_admin = $logged_info->is_admin;
$site_location = "홈페이지주소";
if(!$logged_info){ echo "<script>window.alert('로그인이 필요함');location.replace('$site_location');</script>"; exit;}
if($logged_info){ -- 중략 로그인체크가 될경우 DB 접속 }
else { echo "<script>window.alert('정상 경로를 이용할것');location.replace('$site_location');</script>"; exit;}
- 다국어로 페이지 지정하기
<!--@ if($lang_type=="ko")-->
언어가 한글일경우
<!--@ end-->
<!--@ if($lang_type=="en")-->
언어가 영어일경우
<!--@ end-->
위에 소스를 적용하게 될경우,
로그인하지않았을경우, DB에 연결되지 않으며
외부 페이지주소가 http://localhost/PHPFILE.php 일경우,
XE 외부페이지 모듈로 PHPFILE.php를 로드할시에만 정상출력되며,
PHPFILE.php 파일을 직접 url 에서 출력하려고 할시에, XE 기본 홈화면으로 이동됩니다.
팁이좀 허접하지만, 질문게시판가보니 다국어 설정하시는분들 많은거같아서 올려둡니다.
- [2021/02/26] 묻고답하기 외부페이지가 레이아웃을 완전히 벗어나 표시됩니다. *1
- [2017/08/04] 묻고답하기 $user_lang->userLang### 이걸 언어로 읽어오는 방법?
- [2015/07/10] 묻고답하기 다국어 언어 소스에 적용법 ? *1
- [2015/07/03] 묻고답하기 로그인 연동이 되질 않습니다 ㅠ 읽어보시고 말씀 좀해주세요~ *2
- [2015/05/11] 묻고답하기 위젯 다국어 설정 문제
댓글 4
-
natura
2012.01.01 19:50
-
재주꾼
2012.01.02 08:45
좋은팁입니다.
가끔 저런 경우가 웹검색, 즉 메타검색에서 주로 외부페이지의 경로가 다이렉트로 바로 연결되더군요.
-
박선훈537
2013.03.28 03:10
그럼 외부페이지가 php가 아닌 html 인경우는 어떻게 하나요?
-
쟈몽쟈몽
2015.05.12 14:14
팁 감사합니다. ^^
다만, 1.9에서 해보니
if(strcmp("/index.php", $_SERVER['PHP_SELF']))
{ Header("Location: ./"); die(); }
위와 같이 수정해야 잘 돌아가네요..^^
좋은팁 감사합니다 *^^*