У меня есть задача создать существующий проект для нескольких арендаторов, так как у приложения много клиентов, поэтому мы решили сделать это.
Мы объединили наш исходный код для работы с любой базой данных, весь исходный код одинаков для всех клиентов.
Теперь ранее соединение с базой данных происходило с использованием одного файла конфигурации, включенного в каждый скрипт.
но, как вы знаете, у источника теперь есть несколько клиентов, базы данных которых отличаются, мы застряли в управлении БД с клиентом.
Intially,
HTTP: // локальный / рабочее пространство / клиент / —> это URL, данный клиенту, теперь я перенаправляю его в index.php, используя htaccess и основываясь на клиенте / я знал, какой клиент будет использовать этот пакет.
есть разные клиенты,
HTTP: // локальный / рабочее пространство / clien1 /
HTTP: // локальный / рабочее пространство / clien2 /
HTTP: // локальный / рабочее пространство / client3 /
и так далее..
Сейчас в index.php перенаправление страницы в login.php, но конфигурация не установлена для БД в соответствии с клиентом.
если кто-то занимался этим, пожалуйста, помогите мне.
Заранее спасибо.
Параметры соединения с базой данных (адрес сервера, имя пользователя / пароль базы данных и имя базы данных) в предложенной вами настройке являются атрибутами ваших пользователей или ваших клиентов (организации ваших пользователей).
Я предполагаю, что вы будете аутентифицировать своих пользователей, просматривая их в общей базе данных, а затем проверяя пароли с помощью password_verify()
Когда вы знаете, что у вас есть действительный пользователь, вы можете
Убедитесь, что размещаемый вами файл cookie не содержит встроенных в него параметров базы данных, или киберпреступник выяснит, как изменить файл cookie для получения несанкционированного доступа.
Но, Pro совет: Создание новой базы данных для каждого клиента, как ни странно, невероятно. Что будет, если
Хорошей практикой для многопользовательских онлайн-приложений является добавление значений идентификатора клиента или идентификатора пользователя в каждую запись данных и использование таких предложений запроса, как WHERE customer_id = ?
(текущий клиент), чтобы отделить данные пользователя от пользователя.
Надеюсь, еще не слишком поздно пересмотреть ваше проектное решение об использовании нескольких баз данных.
Других решений пока нет …