1

ほとんどのセッションは、php/jspなどのCookieに基づいています

しかし、モバイルデバイスに関しては、Cookieをサポートしていないものがかなりあります。

同じIPアドレスを使用する同じ企業のユーザーごとに一意のIDを生成するにはどうすればよいですか?

4

3 に答える 3

1

PHPとJSPはどちらも、URLを介したセッション追跡をサポートしています。

PHPでは、非表示の入力要素としてフォームを介してリクエストパラメータとして渡し、クエリ文字列の一部としてリンクsession_id()を渡す必要があります。PHPSESSID

<form action="page.php">
    <input type="hidden" name="PHPSESSID" value="<?= session_id() ?>">
    ...
</form>

<a href="page.php?PHPSESSID=<?= session_id() ?>">link</a>

PHPエンジンはそれを自動的にスキャンし、Cookieなしのセッションに適用します。

JSPでは、「URL書き換え」と呼ばれます(PHP / Apache HTTPDの世界ではまったく異なる意味を持ちます)。ビュー側では、JSTLを使用して<c:url>、必要に応じてURLを書き換えることができます(必要性が自動的に検出されます)。

<form action="<c:url value="page.jsp">">
    ...
</form>

<a href="<c:url value="page.jsp">">link</a>

コントローラ側では、同じコンテキスト内でサーバー側のリダイレクトを実行する場合、実行するHttpServletResponse#encodeRedirectURL()前にURLで実行する必要がありますsendRedirect()

response.sendRedirect(response.encodeRedirectURL("page.jsp"));

jsessionidいずれの場合も、次の構文でURLに自動的に追加されます。

/page.jsp;jsessionid=5AE12D39BCE87F61029876BF1AA28

servletcontainerは自動的にスキャンし、Cookieなしのセッションに適用します。

于 2010-04-09T12:17:38.920 に答える
0

Cookie が失敗すると、昔ながらのクエリ文字列が登場します。はい、安全性は低くなりますが、とにかく選択の余地はありません。詳細については、 php セッション マニュアルを参照してください。

于 2010-04-09T09:33:31.577 に答える
0

session_regenerate_id(); // 新しいセッション ID を取得します

セッション Cookie が有効になっている場合、session_regenerate_id() を使用すると、新しいセッション ID を持つ新しいセッション Cookie も送信されます。

于 2010-04-09T10:05:23.023 に答える