2010-07-17 8 views
1

Codeigniter 웹 사이트에 메시지 보드를 추가하려고했습니다. 하나의 작은 부분을 제외하고 모든 것이 잘 진행되었습니다. 메인 사이트에서 로그인하여 메시지 보드로 옮기고 싶습니다. 게시판은 Codeigniter에서 실행할 수 없으므로 하위 도메인을 만들어 게시판을 실행했습니다. 이는 메인 사이트와 게시판이 쿠키를 공유하지 않는다는 것을 의미합니다. 게시판은 Phorum으로 구동되므로 내 사용자의 user_id를 가지고 있다면 로그인 할 때 사용할 수있는 고리가 있습니다. 즉, 내 문제는 기본적으로 다른 도메인의 세션에 저장된 user_id 변수를 가져올 수있는 하나의 도메인에서 함수를 실행할 수 있다는 것입니다.외부 사이트에서 codeigniter 세션 변수에 액세스하는 방법

  1. USER_ID 반향 C1 내지> 세션을 사용 CodeIgniter의에서 컨트롤러를 설정 :

    다음은 내가 해봤 것들입니다. 그런 다음 메시지 보드에서 CURL을 사용하여 codeigniter 컨트롤러의 출력을 가져 왔습니다. CURL은 쿠키 나 세션 또는 어떤 것을 전달하지 않으므로 CURL을 통해 호출 될 때 codeigniter가 세션에 액세스 할 수 없기 때문에 이것이 작동하지 않는 것 같습니다.

  2. 동일한 일이지만 file_get_contents가 있습니다. 내 서버에서 File_get_contents가 비활성화되었습니다.

저는 많은 아이디어가 있습니다. 누구든지 내가 다른 도메인에서 user_id 저장된 CI 세션을 얻을 것이라고 쓸 수있는 함수를 알고 있습니까?

1) 코드 점화 프로젝트의 서브 디렉토리에서 포럼을 개최 :

+0

외부 파일의 [access codeigniter 세션 값] 가능한 복제본 (http://stackoverflow.com/questions/7926455/access-codeigniter-session-values-from-external-files) –

답변

0

여기 당신이 시도 할 수있는 두 가지이다. 따라서 귀하의 두 웹 사이트는 http://mysite.com/http://mysite.com/forum이라는 URL을 갖게됩니다. 이제는 동일한 도메인을 공유하므로 세션에 액세스 할 수 있습니다.

2) 포럼 로그인 페이지에서 "자동 서명"메시지를 표시하십시오. 같은 페이지에서 src = "http://mysite.com/autologin/tokenid"로 html에 iframe을 추가하고 css로 숨 깁니다. 자동 로그인 페이지에는 CI 세션 정보가 있습니다.이 정보는 추측하기 힘든 토큰 ID를 통해 일시적으로 사용할 수 있으며 $ _SESSION [ 'user_id']을 표시합니다. 이 페이지를 다 마쳤 으면이 페이지를 만료 시키십시오. 그런 다음 포럼의 로그인 페이지를 새로 고치고 CURL을 사용하여 공개 세션 정보를 http://mysite.com/autologin/tokenid에 가져옵니다. 이것은 보안 결점으로 가득차 있기 때문에 최후의 수단으로 만 사용하십시오.

+0

보안 결함은 -아니. 일반적으로 mysite.com/forum은 포럼 컨트롤러를 가리 킵니다. 정말로 codeigniter를 전혀 사용하지 않고 (또는 컨트롤러를 사용하지 않고 codeigniter 함수를 사용할 수 있어야합니다.)이 보드를 사용하려면 mysite.com/forum이 필요합니다. 어떻게하는지 알겠습니까? – Ethan

+0

옵션 1을 사용하면 mysite.com/forum은 CI 프레임 워크와 관계없이 자체 하위 디렉토리가됩니다. 즉, mysite.com/forum 내에서 일반적인 PHP 함수를 사용하여 찾고있는 CI 정보를 보유 할 $ _SESSION 변수를 검사 할 수 있습니다. – John

관련 문제