0

asp.netページからセッションIDを取得するためのphp関数を探しています。PHPSESSIDを使用してphpセッションIDを取得しましたが、次のように正しい結果が得られます。

$strCookie = 'PHPSESSID=' . $_COOKIE['PHPSESSID'] . '; path=/'; 
session_write_close();
echo $strCookie;
result: PHPSESSID=h7h1si1gqge0opqe7hedk46aa7; path=/

ここで、ASP.NetセッションIDを取得したいのですが、phpコマンドが率直であるかわかりません。ASPSESSIONID、ASPSESSID、SessionIDなどを試しましたが失敗しました。以下に示すように、結果が空白になるたびに、firebugを使用してASP.Net_SessionIdを確認できます。誰かがASP.netセッションIDを取得するのを手伝ってくれます。フォーラムを検索してみましたが、何も見つかりませんでした。

$cookie="ASP.NET_SessionId=". $_COOKIE["ASPSESSIONID"] ;
session_write_close();
echo $cookie;
result: ASP.NET_SessionId=

このコードも試しましたが、何も得られませんでした。

if(stripos($data,"ASP.NET_SessionId"))
{
$retData = explode("ASP.NET_SessionId=", $data);
$sessionTempValue = explode(";",$retData[1]);

 //setup the cookie with the recd data here..

echo $sendCookie1 = "ASP.NET_SessionId=".$sessionTempValue[0].'; path=/';
setcookie("ASP.NET_SessionId",$sessionTempValue[0]);
}

編集:私を正しい方向に導いてくれたTVK、Icarus、MikeBrantに 感謝します。以下に示すようにスクリプトを少し変更しましたが、ASP.Net SessionIdはファイルcookiedk.txtに保存されていますが、それでも$_COOKIEには表示されません。

define('COOKIE_FILE', 'cookiedk.txt');
curl_setopt($ch, CURLOPT_COOKIESESSION, 1); 
curl_setopt($ch, CURLOPT_COOKIEJAR, COOKIE_FILE);

以下はcookiedk.txtの内容です。

# Netscape HTTP Cookie File
# http://curl.haxx.se/rfc/cookie_spec.html
# This file was generated by libcurl! Edit at your own risk.

#HttpOnly_xyz.com   FALSE   /   FALSE   0   ASP.NET_SessionId   jq0jeb45lldjlo45wreqsl45

もう1つのヘルプとして、セッションIDをファイルに保存すると、複数のユーザーが同時にシステムと対話する場合に問題が発生する可能性があります。ファイルに保存する代わりに、スクリプトを介してそれを取得し、そこに設定する方法はありますか?

4

1 に答える 1

1

ASP セッション ID が実際に使用可能な場合は、$_COOKIE変数に含まれている必要があります。のすべてのコンテンツを表示するには$_COOKIE、 を使用できますprint_r($_COOKIE);。セッション ID がそこにある場合は、それを確認して正しい配列キーを選択できます。

ただし、Cookie のドメイン制限が満たされている場合にのみ、Cookie が送信されることに注意してください。

于 2013-01-10T18:40:29.613 に答える