Как получить доступ к переменной сеанса codeigniter с внешнего сайта - PullRequest
1 голос
/ 18 июля 2010

Я пытаюсь добавить доску объявлений на свой веб-сайт Codeigniter. Все прошло хорошо, за исключением одной маленькой части: я хотел бы, чтобы мой вход с основного сайта перенесся на доску объявлений. Поскольку доска объявлений не может работать в Codeigniter, я создал поддомен для запуска доски объявлений. Это означает, что основной сайт и доска объявлений не имеют общих файлов cookie. Доска объявлений работает на платформе Phorum, поэтому я могу подключиться к ней, если у меня есть user_id моего пользователя. Другими словами, моя проблема в основном сводится к возможности запустить функцию в одном домене, которая может получить переменную user_id, сохраненную в сеансе другого домена.

Вот что я пробовал:

  1. Настройка контроллера в codeigniter, который использует ci-> сеанс для отображения user_id. Затем на доске объявлений я использовал CURL, чтобы получить выходные данные контроллера codeigniter. Похоже, это не работает, потому что CURL не переносит куки, сеансы или что-то еще, поэтому codeigniter не может получить доступ к своему сеансу при вызове через CURL.

  2. То же самое, но с file_get_contents. File_get_contents отключен на моем сервере.

У меня практически нет идей. Кто-нибудь знает функцию, которую я мог бы написать, чтобы получить сеанс CI, сохраненный user_id из другого домена?

1 Ответ

1 голос
/ 18 июля 2010

Вот две вещи, которые вы можете попробовать:

1) разместить форум в подкаталоге вашего проекта воспламенителя кода. Таким образом, ваши два сайта будут иметь URL http://mysite.com/ и http://mysite.com/forum. Теперь, когда они находятся в одном домене, вы можете получить доступ к сеансу.

2) На странице входа в систему вашего форума отобразите сообщение «Авторизация». На этой же странице добавьте iframe в html с src = "http://mysite.com/autologin/tokenid",, но скройте его с помощью css. Страница autologin будет содержать информацию о сеансе CI, которую вы можете временно сделать доступной для мира через трудно угадываемый токен Повторяя $ _SESSION ['user_id']. Не забудьте истечь эту страницу, когда закончите. Затем обновите страницу входа в форум и используйте CURL, чтобы получить опубликованную информацию о сеансе в http://mysite.com/autologin/tokenid. Это полно недостатков безопасности, поэтому это только в крайнем случае.

...