3

何年にもわたって開発され、IIS6 で実行されている ASP イントラネット Web アプリケーションがあります。現在、代わりに PHP 言語を使用していくつかの新しい機能を追加したいと考えています。PHPは同じサーバー上で正常に動作しています。セッション変数は、ASP と PHP の両方で共有する必要があります。

データベースをゲートウェイとして使用する代わりに、従来の ASP と PHP の間でセッションを共有する別の方法があるかどうかを尋ねています (リソースを消費しすぎます)。両側でセッション変数を読み取り/編集する必要があります。

少し調整してみると、ユーザーが ASP Web アプリケーションにログインするたびに、PHPSESSID と ASPSESSIONID が PHP 側で生成されることに気付きました。これらは ASP 側にも表示され、サーバー変数 HTTP_COOKIE 内に格納されているため、IIS の中心にある ASP セッション変数と PHP セッション変数の間に相関関係があると思います。

そう、

-- ASP --

<% Response.write ('HTTP_COOKIE') %> 

与えます:

__utma=...; __utmz=...; computer%5Fid=AAA; lan=fre;ASPSESSIONIDXXXXXXXX=BBBBBBBBBBBBBBBBBBBBBBBB; user_login=cccc

-- PHP --

    echo '<pre>';
    var_dump($_COOKIE) ?>
    echo '</pre>';

与えます:

Array
(
    [__utma] => ...
    [__utmz] => ...
    [computer_id] => AAA
    [lan] => fre
    [ASPSESSIONIDXXXXXXXX] => BBBBBBBBBBBBBBBBBBBBBBBB
    [user_login] => cccc
)

ASP 側では、次のように記述します。

<% Request.Cookies(strCookie)(strKey) %>

ループで、保存されているキー/値のセッション Cookie のリストが表示されます。

しかし、PHP 側では、これらのキーと値のリストを取得する方法が見つかりません。多分それは行ってもっと見つける方法ですか?実際の既存の実装はもっと役立ちますが、どんな答えでも大歓迎です。

4

2 に答える 2

1

これまで PHP でセッション変数を使用したことがないので、ここでは、ASP ファイルに渡したいセッション変数の値が $var1 と $var2 に既に割り当てられていることを前提としています。

<iframe height="0" width="0" scrolling="No" src="setsession.asp?var1=<?php echo $var1; ?>&var2=<?php echo $var2; ?>"></iframe>

次に、setsession.asp ファイルは次のようになります。

<%
Session("var1") = Request.Querystring("var1")
Session("var2") = Request.Querystring("var2")
%>

明らかに、これを逆に行うこともできます。両方の言語でクエリ文字列とセッション変数を処理する方法を理解する必要があるだけです。

于 2013-09-06T09:28:32.030 に答える