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