3

2 つの Joomla 2.5 Web サイトがあり、どちらも別々に動作しています。ログインしたユーザーを、最初の Web サイトのあるページから 2 番目の Web サイトの別のページにリダイレクトしたいと考えています。

ユーザー名とパスワードを認識するために、2 番目の Web サイトが必要です。(両方のmd5-hexパスワードが連携していることを確認しました)。ユーザーは両方に登録されています。つまり、両方のユーザー データベースで同じユーザー名とパスワードを持っています。「HTTPResponse::redirect」などのいくつかの php コマンドといくつかの joomla コンポーネントを使用してそれを実行しようとしましたが、機能しません。

4

1 に答える 1

1

このような働き方ができることを願っています。

ユーザーが最初の Web サイトにログインし、このサイトから 2 番目の Web サイトにリダイレクトする必要があります。

まず、ユーザーが最初のサイトにログインするとき、そのユーザーのパスワードとユーザー名を保持する必要があります。オブジェクトでユーザー名を$user->name取得しますが、説明のパスワードを取得できないため、それをどこか (安全なスペース) に保管する必要があります。次に、それらを資格情報に取得し、非表示のフォームに戻り URL を設定します。

次に、この非表示フォームのアクションが 2 番目のサイトに送信されます。ユーザー アカウントがその joomla サイトに存在する場合は、ログインして、指定されたリターン URL にリダイレクトできます。

そうでない場合、2 番目のサイトにはログインしません。

を使用してユーザーの詳細を取得できます

$user = &JFactory::getUser();

非表示のフォームは次のようになります

The action should be second site full url.
the $your_return_url should be second site url

  <form action="<?php echo JRoute::_('index.php?option=com_users&task=user.login'); ?>" method="post">
 <input type="text" tabindex="1" " value="<?php echo $user_name?>" id="username" name="username" />
<input type="password"  value="<?php echo $password?>" id="password" name="password" />
 <input type="hidden" name="return" value="<?php echo base64_encode($your_return_url); ?>" /><?php echo JHtml::_('form.token'); ?>
    </form>

アクションに基づいて、このフォームを 2 番目の joomla サイトに送信できます。しかし、ここで重要なのは joomla フォーム トークンです。最初のサイト トークンが 2 番目の joomla サイトで受け入れられたら、あなたの仕事は完了です! そうでなければ、これを達成することはできません。

これがあなたを助けることを願っています..

于 2013-01-31T05:28:11.477 に答える