Code Igniter Выбор базы данных на основе http_host - PullRequest
0 голосов
/ 14 мая 2011

У меня есть настройка CodeIgnitor для выбора базы данных на основе субдомена, в который она загружена (как показано ниже).

Я отказался от постоянных соединений, так как использую временные таблицы и разные базы данных. Кажется, все работает нормально, но мне просто интересно, есть ли потенциальные проблемы. (Я также использую сеансы, поддерживаемые базой данных)

<?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 */

1 Ответ

0 голосов
/ 15 мая 2011

Это будет работать, но пользователь может ввести любое значение для HTTP_HOST, как это будет взято из заголовка HTTP-запроса. Итак, вы должны проверить значение HTTP_HOST с доступными базами данных. Так как неправильное значение, введенное пользователем (имя субдомена с ошибкой), приведет к ошибке базы данных.

Или вы можете использовать SERVER_NAME, но, пожалуйста, посмотрите HTTP_HOST против SERVER_NAME обсуждение перед переключением.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...