Общий доступ к сеансу PHP

#php #session #session-cookies

#php #сессия #сеансовые файлы cookie

Вопрос:

Мы используем WHMCS для нашей биллинговой системы для нашего хостингового бизнеса. WHMCS написан на PHP. Как обычно, есть обычное окно входа, которое считывает базу данных и т.д. и т.п.И т.п.

Мы хотим разработать отдельную систему, чтобы позволить нашим клиентам управлять своими серверами с нами (вещи, не связанные с выставлением счетов). Возможно ли разрешить клиенту входить в WHMCS как обычно, а затем каким-то «волшебным» образом разрешить доступ к новому системному порталу?

Пожалуйста, имейте в виду, что WHMCS не имеет открытого исходного кода, поэтому я не могу коснуться этого кода, однако я могу запустить их на том же экземпляре Apache. Также, конечно, я хотел бы помнить о безопасности.

Любая помощь приветствуется

Ответ №1:

Вот пример того, как вы могли бы это сделать:

 <?php
require("whmcs/dbconnect.php"); // You may have to change the path here
if ($_SESSION['uid']) {
    echo "whmcs user logged in";
} else {
    echo "whmcs user not yet login";
}
?>
  

Комментарии:

1. Не могли бы вы, пожалуйста, объяснить, почему мне нужно dbconnect.php ? Кроме того, $ _SESSION[‘uid’] просто проверяет, установлен ли uid? Мне не нужен isset?

2. dbconnect.php должны быть ваши WHMCS dbconnect.php файл. У них есть свой собственный код для создания / проверки сеанса, поэтому включение этого файла и использование $ _SESSION[‘uid’] — это самый простой способ выяснить, зарегистрирован ли пользователь, и получить его UID, если вам нужно использовать его в вашей собственной базе данных. $ _SESSION[‘uid’] должен быть возвращен как null, если пользователь не вошел в систему, поэтому нет необходимости использовать isset() (хотя, если вам так удобнее, сделайте это).

3. Отлично! Спасибо за вашу помощь! Я думаю, я все еще немного смущен, зачем мне нужны их dbconnect.php ? Если бы я не включил этот файл, были бы недоступны их переменные сеанса? Спасибо

4. Я не уверен, что вы можете исключить dbconnect.php файл, поскольку он зашифрован и еще много чего с помощью специального загрузчика, поэтому я не имею подробного представления о том, что он делает. Однако каждый пример, который я видел, использует файл, поэтому в худшем случае вы можете оставить его и просто узнать, работает ли страница 😉 Хотя это очень удобно, если вам нужно получить какие-либо данные о клиенте, поскольку оно включает информацию о подключении для WHMCS.

5. Небольшая проблема: как только пользователь входит в систему, а затем выходит из системы, uid, похоже, все еще установлен… Есть идеи?