0

ユーザーは CMS にログインしていますが、site_url.com現在、CMS の外部のサブドメインでサイトのモバイル バージョンを開発しておりm.site_url.com、セッションを CMS と同期させたいと考えています。

次のような CMS のすべての機能を含むファイルを含めました。

<?php include('/home/flyeurov/public_html/core/codon.config.php');

サブドメインm.site_url.com/public_html/mobileディレクトリにあります。内部/mobileにはindex.php、ユーザーの状態 (ログインしているかどうか) に応じて、ダッシュボードまたはログイン フォームを表示するためのトリガーがあります。

それは機能しており、ログインしてダッシュボードを表示できますが、たとえば直接パスにアクセスした場合のみですsite_url.com/mobile/index.php。ログインしてこのパスにアクセスするとcrew_center.php、ダッシュボードに移動します。

のサブドメインにアクセスすると、これは発生しませんm.site_url.com。ログインしてもlogin.phpページが表示されます。

ここにあるindex.php

<?php include('/home/flyeurov/public_html/core/codon.config.php');

session_set_cookie_params(0, '/', '.site_url.com');

if(Auth::LoggedIn())
{
    header("Location: crew_center.php");
} 
else
{
    header("Location: login.php");
}

?>

したがって、これはセッションの問題であると想像できますが、CMS のセッションをmサブドメインと共有するにはどうすればよいですか?

4

3 に答える 3

0

クッキーをセットしてみよう!

ユーザーが sitea.com で自分のアカウントにログインすると、Cookie が設定されます。

setcookie("TestCookie", "COOKIE-VALUE", time()+3600, "/", "siteb.com");

これにより、次の情報が含まれる Cookie が設定されます。

Name: TestCookie
Value: COOKIE-VALUE
Expiration: One Hour
Cookie directory: /
Domain: siteb.com

ドメインは siteb.com に設定されているため、siteb は Cookie に含まれる値を読み取ることができます。

あとは、siteb.com で Cookie を読み取るだけです。

パスワードや銀行情報を保持するために Cookie を使用することはお勧めしませんが、これが問題の解決策として考えられる唯一の方法です。

これがお役に立てば幸いです。さらにサポートが必要な場合はお知らせください。

于 2013-07-26T19:56:56.293 に答える
0

ドメイン間でセッション ID を渡すことはできません。(セキュリティ上の理由から) そのように動作するように設計されていません。私が過去に行ったことを実行して、セッション データをシリアル化された形式で Cookie に保存するか、POSTフォーム内の変数として保存するか、URL の一部として base64 エンコードされたシリアル化された形式として保存することができます。

<input type="hidden" name="session_data" value="<?php echo(base64_encode(serialize($_SESSION))); ?>"/>

また

<a href="http://sub.domain.com/?session_data=<?php echo(base64_encode(serialize($_SESSION))); ?>">Go Here</>
于 2013-07-26T20:02:39.270 に答える
-1

サブドメインではなくドメインのセッションを維持するようにサーバーに指示する必要があります。*ini_set('session.cookie_domain', 'site_url.com');*で実現できます。

これにより、ドメインのセッションが維持され、同じセッションがすべてのサブドメインで共有されます。

http://www.php.net/manual/en/session.configuration.php#ini.session.cookie-domain にアクセスしてください

于 2013-07-26T19:57:51.233 に答える