댓글 2012-01-01
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 기본 홈화면으로 이동됩니다.
팁이좀 허접하지만, 질문게시판가보니 다국어 설정하시는분들 많은거같아서 올려둡니다.
태그목록
첨부파일 목록
좋은팁 감사합니다 *^^*