2011-05-14 3 views
0

로드 된 하위 도메인을 기반으로 데이터베이스를 선택하는 CodeIgnitor 설정이 있습니다 (아래 그림 참조).Code Igniter http_host를 기준으로 데이터베이스 선택

임시 테이블과 다른 데이터베이스를 사용하므로 영구 연결이 해제되었습니다. 그것은 잘 작동하는 것,하지만 난 그냥 잠재적 인 문제가 있는지 궁금 해서요.

<?php if (! defined('BASEPATH')) exit('No direct script access allowed'); 
$active_group = "default"; 
$active_record = TRUE; 
$phppos_client_name = substr($_SERVER['HTTP_HOST'], 0, strpos($_SERVER['HTTP_HOST'], '.')); 
$db['default']['hostname'] = "localhost"; 
$db['default']['username'] = "USER"; 
$db['default']['password'] = "PASSWORD"; 
$db['default']['database'] = 'db_'.$phppos_client_name; 
$db['default']['dbdriver'] = "mysql"; 
$db['default']['dbprefix'] = "phppos_"; 
$db['default']['pconnect'] = FALSE; 
$db['default']['db_debug'] = FALSE; 
$db['default']['cache_on'] = FALSE; 
$db['default']['cachedir'] = ""; 
$db['default']['char_set'] = "utf8"; 
$db['default']['dbcollat'] = "utf8_general_ci"; 


/* End of file database.php */ 
/* Location: ./application/config/database.php */ 

답변

0

그것은 작동합니다 (I는 또한 데이터베이스 백업 세션을 사용)하지만 HTTP 요청 헤더에서 가져온 것 같은 사용자로 HTTP_HOST에 대한 값을 입력 할 수 있습니다. 따라서 사용 가능한 데이터베이스로 HTTP_HOST의 값을 확인해야합니다. 사용자가 잘못 입력 한 값 (맞춤법이 틀린 하위 도메인 이름)으로 인해 데이터베이스 오류가 발생합니다.

또는 SERVER_NAME을 (를) 사용할 수 있지만 전환하기 전에 HTTP_HOST vs. SERVER_NAME 토론을 확인하십시오.

관련 문제