Wordpress Autologin插件无法在服务器上运行

时间:2010-04-06 11:03:26

标签: wordpress cakephp integration autologin

我一直忙于将Wordpress集成到CakePHP应用程序之一。最后一周我破解了集成它的方法。现在我遇到的另一个问题是客户端想要自动登录在CakePHP端登录的用户,我做到了它也可以在local.I使用CakePHP的会话变量,它在cakephp的core.php中设置,也在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');

这一切在本地系统上工作正常但是当我把它放在服务器上时,它没有用完。请告诉我这里可能存在什么问题。 在此先感谢

2 个答案:

答案 0 :(得分:6)

我纠正了我面临的问题。 我只是通过Session变量中设置的User Id将当前用户从Cake Side设置为WP。但是Cake的用户表中增加的id可能会有所不同,当我们将它放入Wp_users表时可能与那个不同。所以在新的插件中我刚添加了一些行,其中检索登录用户的用户名然后获取该用户的ID,因为我们知道有两个可能性(或者更多)具有相同USERNAME的用户。这就是为什么我们然后获取会话中的用户名的ID然后使用

wp_set_current_user($user_id, $user_name);

你们都可以看到我用$ user_name(从会话变量中获取)替换了$ user_login(默认情况下设置为Guest)。现在工作正常。主要问题是在我的本地系统Cake的表中和Wordpress表非常好地同步,但在服务器中同步存在一些问题。

答案 1 :(得分:1)

是您的博客,位于不同的子域名下,例如blog.domain.com。在这种情况下,除非您进行解决,否则将为博客访问者创建一个新会话。

当您从主站点转到博客时,您的域名是否从domain.com更改为www.domain.com?如果是这种情况,也会创建一个新会话。