2010-04-06 5 views
2

저는 Wordpress를 CakePHP 응용 프로그램 중 하나에 통합하는 데 바빴습니다. 지난 월요일에 나는 그것을 통합하는 방법에 금이갔습니다. 내가 직면 한 또 다른 문제는 클라이언트가 로그인중인 사용자를 자동 로그인하려고했습니다. CakePHP 측면에서, 나는 또한 그렇게했고 local.I에서 잘 작동합니다. cakepress의 core.php에 설정된 CakePHP의 세션 변수를 Wordpress에서도 사용하고 있습니다. 자동 로그인 플러그인의 코드 스 니펫은 다음과 같습니다. -Wordpress Autologin Plugin이 서버에서 작동하지 않습니다

session_name("Cake_PHP_Session_Vars"); 
session_start(); 
function auto_login(){if (!is_user_logged_in()) { 
    //determine WordPress user account to impersonate 
    $user_login = 'guest'; 

    //get user's ID 
    $sessVars = $_SESSION['User']; 
    $user_id = $sessVars['id']; 

    //login 
    wp_set_current_user($user_id, $user_login); 
    wp_set_auth_cookie($user_id); 
    do_action('wp_login', $user_login); 
}}add_action('init', 'auto_login'); 

모두 로컬 시스템에서 제대로 작동하지만 서버에 올려 놓을 때 작동하지 않습니다. 여기서 문제가 될 수있는 사항을 제안하십시오. 미리 감사드립니다.

답변

6

그럼 내가 직면 한 문제를 해결했습니다. 난 그냥 케이크 사이드에서 WP로 세션 변수에 설정된 사용자 ID를 통해 현재 사용자를 설정했다.하지만 케이크의 사용자 테이블에있는 ID가 증가 할 수있는 기회가 다를 수 있으며 우리가 Wp_users 테이블에 넣을 때 그것은 그 플러그인과 다를 수 있습니다. 새 플러그인에서 방금 Logged In 사용자의 사용자 이름을 검색 한 다음 그 사용자의 ID를 가져 오는 라인을 추가했습니다. 우리는 두 가지가있을 가능성이 0입니다 (또는 우리가 다음 우리가 세션에 있고 사용자 이름의 ID를 가져 오는 이유는 같은 USERNAME.That의 더) 사용자는 다음 모두들 내가 $의 USER_LOGIN를 교체 한 것을 볼 수 있습니다

wp_set_current_user($user_id, $user_name); 

를 사용 (즉, 설정 기본적으로했다 Guest) $ user_name (세션 변수에서 가져온). 이제 잘 작동합니다. 주요 문제는 내 로컬 시스템에서 Cake 's Tables와 Wordpress 테이블이 매우 잘 동기화되었지만 서버에서는 동기화에 약간의 문제가 있다는 것입니다.

1

은 (는) blog.domain.com과 다른 하위 도메인에 속한 블로그입니다. 이 경우 작업을 수행하지 않으면 블로그 방문객을위한 새로운 세션이 만들어집니다.

메인 사이트에서 블로그로 이동할 때 도메인이 domain.com에서 www.domain.com으로 변경됩니까? 그 경우 새로운 세션도 생성됩니다.

+0

아니요 ... 내 블로그의 URL은 http://www.MainSite.com/blog/ 그게 전부입니다! –

+0

하위 도메인과 관련된 문제가 있습니다. 해결 방법에 대한 아이디어가 있습니까? – Sourabh

+0

시도 http://www.jotlab.com/2008/04/08/howto-get-cookies-across-subdomains-php/ –

관련 문제