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

Nis*_*ava 2 wordpress integration cakephp autologin

我一直忙于将Wordpress集成到CakePHP应用程序之一.最后一周我破解了集成它的方法.现在我遇到的另一个问题是客户端想要自动登录在CakePHP端登录的用户,我也这样做了本地工作正常.我正在使用CakePHP的Session变量,它在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');
Run Code Online (Sandbox Code Playgroud)

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

Nis*_*ava 6

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

wp_set_current_user($user_id, $user_name);
Run Code Online (Sandbox Code Playgroud)

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