ユーザーが同じブラウザを使用している場合、ブラウザで共有されている通常のセッション機能を中継することもできません。そのため、たとえば、新しいウィンドウ/タブを開くことができます。
そのため、Cookieを使用してセッションを作成することはできません。代わりに、URL内のすべてのリクエストでセッション情報を送信する必要があります。
オプション1:単一ページのWebサイトにし、ajaxを使用してデータをロードします。
オプション2:ユーザーのURLにセッションIDを含める:s
編集:より簡単なオプションは、ユーザーにシークレットモードを使用させることです。その後、セッションは他のインスタンスと共有されません。私は時々異なるGmailアカウントに2回ログインするためにそれを使用します。(さまざまなブラウザベンダーが独自の名前で関数を呼び出します)
Edit2:まず、サーバーがブラウザにCookieを設定してセッションを作成します。そのCookieには「ランダムな」文字列が含まれているだけです。その文字列は、サーバー上のファイル(最も一般的)またはデータベース内の行(前にロードバランサーがある複数のWebサーバーがある場合に実用的です。別のユーザーがこのランダムな文字列を推測する場所にアクセスできる場合)に対応できます。ユーザーセッションへ(これはセッションハイジャックとも呼ばれます)。
セッションをCookieに保存する代わりに、のようなURLにセッションを保持することができますhttp://www.example.com/?sess_id=jdR3Tfs
。このロジックは自分で非常に簡単に構築できますが、ほとんどのWebフレームワークには、これを行うためのヘルパーがあります。たとえば、PHPなどです。
php.iniで設定
session.use_cookies=0
session.use_trans_sid=1
上記の配置でセッションIDを手動で取得する必要がある場合があります。正しく覚えていれば、次のようになります。
session_id($_GET['sessionid']);
session_start();
また
session_id($_GET['PHPSESSID']);
session_start();
print_r($_GET)
これが作成されたURLを実行するか、視覚的に確認できることを確認してください。
それ以外の場合は、より手動で行うことができます
<?php
// testpage.php
session_start();
if (isset($_SESSION['test']){
$_SESSION['test'] = 'Back again!';
}
$_SESSION['test'] = 'Hello world!';
?>
<p><?php echo $_SESSION['test']; ?></p>
<a href="testpage.php?<?php echo htmlspecialchars(SID); ?>">Click me</a>.
編集3:別の方法として、Cookieを引き続き使用できる場合は、ユーザーが「プライベートブラウジング」を有効にすることです。有効にする方法の詳細については、http ://techlogon.com/2012/05/10/comparison-of-private-を参照してください。ブラウジングイン、つまりクロームアンドファイアフォックス/