2010-04-06 63 views
2

我一直忙於將Wordpress集成到CakePHP應用程序之一。上週一我打開了整合它的方式。現在我遇到的另一個問題是客戶端想要自動登錄登錄用戶在CakePHP方面,我也這樣做了,它在本地工作正常。我在CakePHP的core.php中使用CakePHP的會話變量,也在Wordpress中。自動登錄插件的代碼片段是: -Wordpress自動登錄插件無法在服務器上工作

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

那麼我糾正了我面臨的問題。 我只是通過Session變量中設置的用戶ID將Cake Side中的當前用戶設置爲WP。但是Cake的用戶表中增加的id有可能會不同,當我們將它放入Wp_users表時它可能不同於那個。因此,在新的插件中,我只是添加了一些行來檢索登錄用戶的用戶名,然後獲取該用戶的ID,因爲我們知道有兩個可能性(或更多)相同USERNAME.That的用戶,爲什麼我們那麼獲取我們在會議和用戶名的ID,然後在使用

wp_set_current_user($user_id, $user_name); 

大家都可以看到,我已經取代$ USER_LOGIN(這是默認設置爲來賓)與$ user_name(從會話變量中提取)。現在它工作正常主要問題是在我的本地系統中,Cake的Tables和Wordpress表很好地同步了Synsd,但是在服務器中同步存在一些問題。

1

是您的博客在像blog.domain.com不同的子域下。在這種情況下,除非您需要解決方法,否則將爲博客訪客創建一個新會話。

當您從主站點轉到博客時,域名是否從domain.com更改爲www.domain.com?如果是這樣的話,還會創建一個新的會話。

+0

否否...我的博客的網址是http://www.MainSite.com/blog/ 就是這樣! – 2010-04-07 11:51:47

+0

我有一個與子域相似的問題,關於工作的任何想法? – Sourabh 2010-10-29 04:12:35

+0

試試http://www.jotlab.com/2008/04/08/howto-get-cookies-across-subdomains-php/ – 2010-11-01 13:32:10

相關問題