2

私はWordpressをCakePHPアプリケーションの1つに統合するのに忙しくしています。先週の月曜日にそれを統合する方法をクラックしました。今私が直面した別の問題は、クライアントがCakePHP側にログインしているユーザーに自動ログインしたいということでした。ローカルで正常に動作します。Wordpressでも、cakephpのcore.phpに設定されているCakePHPのセッション変数を使用しています。自動ログインプラグインのコードスニペットは次のとおりです。

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');

ローカルシステムではすべて正常に動作しますが、サーバーに配置するとうまくいきません。ここで何が問題になる可能性があるかを教えてください。前もって感謝します

4

2 に答える 2

6

さて、私は直面していた問題を修正しました。現在のユーザーをCakeSideからWPに設定するのは、Session変数に設定されたユーザーIDを使用するだけでしたが、Cakeのユーザーテーブルの増分IDが異なる可能性があり、それをWp_usersテーブルに入れるとそれとは異なる可能性があるので、新しいプラグインに、ログインしたユーザーのユーザー名を取得してからそのユーザーのIDを取得する行をいくつか追加しました。 more)同じUSERNAMEを持つユーザー。そのため、セッションで使用しているユーザー名のIDを取得してから使用します。

wp_set_current_user($user_id, $user_name);

$ user_login(デフォルトではGuestに設定されていた)を$ user_name(セッション変数から取得)に置き換えたことがわかります。これで正常に動作しています。主な問題は、ローカルシステムのCakeのテーブルとWordpressテーブルにありました。非常にうまく同期されましたが、サーバーでは同期に問題がありました。

于 2010-04-07T12:07:54.263 に答える
1

blog.domain.comのような別のサブドメインの下にあるあなたのブログです。その場合、回避策を実行しない限り、ブログ訪問者用に新しいセッションが作成されます。

メインサイトからブログに移動すると、ドメインはdomain.comからwww.domain.comに変更されますか?その場合は、新しいセッションも作成されます。

于 2010-04-07T01:25:35.193 に答える