1

私はドメインを持っています。この質問ではwww.example.comとしましょう。設定方法や Wordpress の素晴らしさのおかげで、example.comと入力すると、 www.example.comにリダイレクトされ、Wordpress がそれを実行します。また、 members.example.comというサブドメインもあり、CodeIgniter を使用してかなり精巧なシステムをpublic_html の/membersフォルダに構築しました。

完璧な世界では、私がやりたいことは、「www」側を読んでいる人が現在「メンバー」にもログインしているかどうかを判断できるようにするPHPコードをWordpressに入れることです。物事の側面。CodeIgniter セッションが持続することはわかっているので、メンバー側にジャンプするたびにログインしたままになります。最初に考えたのは、これを行う CI で簡単なページをまとめることでした。

public function isLogged()
{
    $x = "off";
    if ($this->session->userdata('memberKey') != 0) {
        $x = "on";
    }
    echo $x;
}

次に、リンクmembers.example.com/login/isLoggedを実行するたびに、常に「オフ」または「オン」のいずれかを取得して、自分が参加しているかどうかを判断します。 memberKey は、ログインしていない場合は 0 になるか、データベース内の誰かの対応するキーに基づく数値になります。私の希望は、www側から(Wordpress内で)THISのようなものを実行できることでした

$homepage = file_get_contents('http://members.example.com/login/isLogged');

...そして、その人がログインしているかどうかに基づいて行動することができます。明らかに、ここでの欠点は、上記の関数を呼び出すと、この情報を必要とする問題のクライアントからではなく、サーバーから呼び出しを行っているため、結果として常に「オフ」になることです。 .

この情報を読み取るための最も洗練された解決策は何でしょうか? クロスプラットフォームで Cookie を読み取る方法はありますか?

4

1 に答える 1

1

さて、私はプロセスを実行したことに気付きました。誰もぶら下げたままにしたくないので、私の解決策は次のとおりです。

まず、Cookie については、codeIgniter の/application/config/config.phpに移動し、Cookie ドメインとして以下を入力したことを知っています (269 行目 - クライアントを保護するためにここでドメイン名を変更しました)。

$config['cookie_domain']    = ".example.com";

私はここで注意して、「。」を使用しています。ドメインの前にすべてのサブドメインをカバーします。

また、セッション データをデータベースに書き込んでいることもわかっています。したがって、Wordpress 側では、次のコードを特定の場所に挿入しました。

$memCCinfo = unserialize(stripslashes($_COOKIE['ci_session'])); // Changed for OBVIOUS reasons
$mysqli = mysql_connect('localhost', 'NAME', 'PASSWORD'); // Changed for OBVIOUS reasons
$mysqlDatabase = mysql_select_db('DATABASE',$mysqli); // Changed for OBVIOUS reasons
$isLoggedCC = "off";
$sessInfoQry = mysql_query('SELECT user_data FROM ci_sessions WHERE session_id = "' . $memCCinfo['session_id'] .'"',$mysqli);
while ($sessInfo = mysql_fetch_assoc($sessInfoQry)) { 
    $breakOutInfo = unserialize(stripslashes($sessInfo['user_data']));      
    if (is_array($breakOutInfo)) { $isLoggedCC = "on"; }
}

次に、メンバーが「メンバー」側にログオンしているかどうかを判断する方法ができました。質問は...私がやっていることに心配すべき穴はありますか?

于 2012-08-28T20:28:11.423 に答える