2016-09-13 2 views
0

저는 PHP에서 초보자입니다. 내 웹 사이트에서 세션 변수를 설정하는 방법을 알고 있습니다. 내 웹 사이트의 로그인 페이지로 리디렉션되는 다른 웹 사이트에서 세션 변수를 설정해야하는이 작업을 수행하려고합니다. 가능한가? 질문이 여전히 모호한 경우 여기에 더 좋은 설명이 나와 있습니다.다른 서버에 세션 변수 설정

내 웹 사이트는 서버 A에 있습니다. 다른 웹 사이트는 서버 B 입니다. 서버 B의 페이지는 사용자를 서버 A의 페이지로 리디렉션합니다.이 페이지는 로그인 세부 정보가 올바른지 확인합니다. 일치하는 경우 서버 A의 페이지가 세션 변수를 설정합니다. 그러나 세션 변수 설정 후 서버 B로 리디렉션됩니다. 서버 B의 페이지는 세션 세트에도 불구하고이를 서버 A로 되돌려 보냅니다. 당신이 그것을 두 개 이상의 사이트/서버에서 세션 데이터를 공유 할 수없는

if(!isset($_SESSION["user"])) 
{ 
header("Location: http://serverA.com/login.php?w=serverB.com"); 
} 
elseif (isset($_SESSION["user"])) 
{ 
//do something 
} 
+0

사이트간에 세션을 공유하는 것은 가능하지만 가능하면 권장하지 않습니다. PHP SSO 구현을 찾는 것이 좋습니다. 두 서버가 temp 디렉토리 (동일한 서버의 웹 사이트)에서 동일한 세션 파일에 액세스하거나 데이터베이스 세션 구현을 사용하고 동일한 데이터베이스에 액세스 할 수있는 두 사이트/서버를 사용하는 경우 세션을 얻는 유일한 방법이 될 수 있습니다. –

+0

쉽지는 않지만 가능합니다. 관련 내용 읽기 : http://stackoverflow.com/questions/13806701/secure-and-flexible-cross-domain-sessions http://stackoverflow.com/questions/1339984/cross-domain-php-sessions http : // stackoverflow .com/questions/14611545/preserving-session-variables-across-different-domains –

답변

1

를 참조해야하는 경우 여기

코드, 당신이 할 수있는 유일한 방법은 PHP를 사용하는 것입니다 스크립트는 데이터를 게시하거나 가져 오기를 사용하여 헤더 데이터를 전송하는 (? = 사용자 이름)

포스트를 사용하려면, 당신이 CURL

받기 사용하려면, 당신은 URL을 만들 수 사용하는 것이 좋을 것 당신을 header()에서 사용되며? username = data와 같은 것을 추가합니다. 또는 ID로 만들어 두 번째 서버 또는 웹 사이트에서 데이터베이스로 확인할 수도 있습니다.

이 두 가지 이외에는 다른 것을 생각하거나 찾을 수 없습니다.

+0

만약 이것이 가능하지 않다면 가능할 지 말해 줄 수 있습니까? 서버 B에있는 웹 사이트에서 서버 A의 데이터베이스에 액세스합니다 나도 이걸 시도해 봤는데, 그건 내게 효과가 없어. –

+0

무슨 소리 야? 나는 당신이 방금 말한 것을 이해하는 데 어려움을 겪고 있습니다. – FluxCoder

+0

당신은 지금 그것을 이해합니까? –