2009-05-28 31 views

答えて

28

はい。セッションIDはURL(document.location.href)またはクッキー(document.cookie)を介して転送されるため、セッションIDの有無を確認できます。

+1

はあなたをいまいましいsarnath'd :)また、いくつかのプラットフォームを言及する価値が検索可能、決定の方法で隠しフィールドにこれを書き出します。 – annakata

3

私が知る限り、ブラウザセッションにはIDがありません。

サーバーセッションを意味する場合、通常はCookieに格納されます。たとえば、ASP.NETが保存するCookieには、「ASP.NET_SessionId」という名前が付けられます。

4

あなたはdocument.cookieに次の正規表現を発行することにより、セッションIDを受け取ることができます。

警告(document.cookie.match(/ PHPSESSID = [^;] + /));

私の例では、セッションIDを保存するためのクッキー名はPHPSESSID(php server)です。ちょうどPHPSESSIDをセッションIDを保持するクッキー名に置き換えてください。 (Webサーバーで設定可能)

0

おそらく、JavaScriptを使ってサーバーにpingすることができます。 phpファイルは次のようになります:

<?php 
session_start(); 
$id = session_id(); 
echo $id; 
?> 

これは現在のセッションIDを返します。あなたが探していたものでしたか? PHPのPHPSESSID変数の

2

、この機能は動作します:

function getPHPSessId() { 
    var phpSessionId = document.cookie.match(/PHPSESSID=[A-Za-z0-9]+\;/i); 

    if(phpSessionId == null) 
     return ''; 

    if(typeof(phpSessionId) == 'undefined') 
     return ''; 

    if(phpSessionId.length <= 0) 
     return ''; 

    phpSessionId = phpSessionId[0]; 

    var end = phpSessionId.lastIndexOf(';'); 
    if(end == -1) end = phpSessionId.length; 

    return phpSessionId.substring(10, end); 
} 
4

次はJSESSIONIDを取得するために使用することができます。

function getJSessionId(){ 
    var jsId = document.cookie.match(/JSESSIONID=[^;]+/); 
    if(jsId != null) { 
     if (jsId instanceof Array) 
      jsId = jsId[0].substring(11); 
     else 
      jsId = jsId.substring(11); 
    } 
    return jsId; 
} 
+0

正規表現は1つの値を持つ配列だけを返しますか?グローバルモディファイアはないので、最初のマッチだけを返す必要があります。一致しない場合はnullを返します。これはおそらくあなたが望むものです。 – RTF

1

は、ここでセッションIDを取得するために、短いと甘いJavaScript関数です:

function session_id() { 
    return /SESS\w*ID=([^;]+)/i.test(document.cookie) ? RegExp.$1 : false; 
} 

変数を使用する場合は、単純な1行の変数を使用します。

var session_id = /SESS\w*ID=([^;]+)/i.test(document.cookie) ? RegExp.$1 : false; 

PHP、JSP、.NETのセッションID Cookieと一致する必要があります。私は様々な他のサーバーサイドプロセッサも想定しています。

0

アップデート2017

var cookie = new URLSearchParams(document.cookie) 
if(cookie.has("PHPSESSID")){ 
    var sessionID = cookie.get("PHPSESSID") 
} 
関連する問題