1

さて、ここに行きます。

私のクライアントは最近、domain1.net の SSL 証明書を購入しました。数週間後、彼は domain1.com を購入しましたが、こちらの方が優れていると考えています。

現在、彼は domain1.com を使用したいと考えていますが、期限が切れているため、証明書を domain1.net から domain1.com に移動できません。

したがって、クライアントは domain1.com に移動し、ログインまたはクレジット カード情報を入力する必要がある場合は、https://domain1.netにリダイレクトします。しかし、この 2 つのドメイン間で PHP $_SESSION を共有する必要があります。

これどうやってするの?何か案は?ありがとう!

4

5 に答える 5

2

セッション データをキャッシュに投入し、両方のドメインからアクセスできるようにし (背後にあるサーバーの数がわからない)、リダイレクトの発生後にキャッシュからセッション データを取得するだけです。

于 2012-09-19T20:04:39.157 に答える
0

セッションデータが必要ですか、それともログイン情報だけが必要ですか? どちらの場合でも、$_SESSION (http://php.net/manual/en/function.serialize.php) をシリアライズするか、必要に応じてデータベースに保存できます。主キーと、rand(0,1000000000); で入力できる「秘密」フィールドを追加します。

次に、Web サイトにリンクするときに、主キーと秘密の番号を渡し、これを使用してデータベースからセッション情報を取得します。

于 2012-09-20T00:27:23.557 に答える
0

$_SESSION 機能を使用するのはかなり運が悪いと思います。問題は、2 つの異なるドメイン間でセッション ID Cookie を渡すことができないことです (Cookie ドメインを制御することで、2 つのサブドメイン間で渡すことができます)。クエリ文字列でセッション ID を渡すこともできますが、誰がそれをしたいのでしょうか。

2 つのドメインに共通の情報を保存する独自のバックエンド ロジックを実装することもできますが、これには、ドメイン間を行き来するときにセッション ID の置換に対してユーザーを認証する独自のトークン システムが必要になると思います。

最善の選択肢は、.com ドメインで証明書を購入する必要があることをクライアントに伝えることです。それか、彼はあなたが独自にカスタマイズした疑似セッション システムを構築するために、大幅に高額を支払うことができます。

于 2012-09-19T20:05:12.610 に答える
0

それはできません(神に感謝します)。

データを交換する別の方法を見つける必要があります。

  • 2 つのサイトが同じサーバー上にあり、共通のディレクトリにアクセスできる可能性があります。/tmpたとえば、デフォルトのセッション ファイルもそこにあります。
  • 同じサーバー上にない場合は、ftp、http、または別のプロトコルを使用してデータを交換します。

もちろん、最も簡単な解決策は、新しい証明書を購入し (年間数ドルで取得できます)、サイトを統合することです。

于 2012-09-19T20:06:37.110 に答える
0

ここには長い道のりがあります

両方のドメインで次のようにphpファイル(share.php)を作成し、この方法でデータを共有します

<?php session_start();
echo json_encode($_SESSION);
?>

ここで、セッション データを受信する別のドメインで、インクルードとして使用する方が適切な別のファイルを作成します。

<?php session_start();
$abc = file_get_contents('http://domain1.com/share.php');
$obj = json_decode($abc);

print_r($obj);

?>

print_r は、この方法で別のサーバーのセッション データ全体を表示します。オブジェクトと配列の組み合わせを使用して、すべての要素にアクセスします。このサーバーのセッションを上書きする必要がある場合は、print_r の代わりにこのコードを使用してください

<?php

foreach($obj as $key => $value){
$_SESSION[$key] = $value;
}

?>
于 2012-09-19T20:15:21.177 に答える