• 締切済み

他言語プログラムにて生成されたSESSIONをPHPで読み込むことは可能でしょうか?

同一サーバー内の 他言語のプログラムにて生成されたSESSIONを PHPでその値を読み込む事は可能でしょうか? また、取得する場合は通常と同様に $_SESSION['hoge']で宜しいでしょうか?

  • PHP
  • 回答数1
  • ありがとう数1

みんなの回答

回答No.1

> $_SESSION['hoge']で宜しいでしょうか? そのままではまず無理でしょうね。 セッションはユーザーに知らせる事無く、セッション中の情報をサーバ側に保存するシステムです。セッションの保存方法はそのシステムによって違います。 例えばPHPの場合、セッション保管ディレクトリ(私の環境では/var/lib/php5/session)にsess_xxxxxxxxxxxxxxxxxxxxxxxxxと言うようなファイルを作っています。のぞいてみると、 hoge:2:{変数:数字:値;変数:数字:値;} と言うような形式で保存されています。これはPHP用に保存した形式です。 その他の言語では、保存する場所も違うでしょうし、形式も違う筈です。単純に$_SESSION['hoge']で取得出来るはずがありません(当然、他言語で強引に同じ形式で保存すれば可能だと思います)。 セッションを共通にしたい場合は、言語間で共通のファイルを共有し、自作でセッションクラスを作ると言うのが現実的かと思います。 ちょっと混同しやすいですが、クッキーはクライアント側(ユーザのパソコン)に保存する物です。クッキーは仕様が同じですから、クッキーに保存したデータなら他言語で保存したとしても、$_COOKIE['hoge']で取得する事は可能かと思います。

dr-z400s
質問者

お礼

丁寧なご回答ご意見有難う御座いました。 セッションがサーバーサイド側の webサーバーアプリ依存なのか、その上のサーバーサイドプログラム依存なのかが 判らなくなってしまい上記のような質問を致しました。 結果、サーバーサイドプログラム依存ということですが、 Apache::Sessionのように perlからPHPのセッションデータにアクセスは出来るようですが その他の言語間(サーバーサイドプログラム)では難しいようですね。 今回は、他言語プログラム間でのセッションをまたぐ方法以外で 問題は解決できました。 有難う御座いました。

関連するQ&A

  • phpのセッションについて

    XAMPPのローカル環境でphpのプログラムを組んだのですが、いざ実際のサーバーにアップロード してもうまく動きませんん。 調べた結果セッションがちゃんと動いていないという結論に達しました。 単純なセッションなのですが、ローカル環境ですとちゃんと動くのが、サーバーにアップすると $_SESSION['sa']が空っぽの状態となります。 サーバーにアップロードしたindex.phpの中にecho $_SESSION['sa'];と書き込むと 「あいうえお」とちゃんと表示されますのでセッションには格納されているようなのですが 値をきちんとセッションで持ち越せないようです・・。 ローカルでは下記のファイルはちゃんと持ち越せていて、実際のサーバーではダメな理由がまったくわかりません。 何か特別な設定が必要なのでしょうか?何時間もググっていますがそういった設定が必要と いう記述は見当たらないのですが・・。 サーバーはさくらサーバーでバージョンはPHP 5.4.22となっています。 ------------------------------------------------------------ ファイル名 index.php <?php session_start(); $data="あいうえお" $_SESSION['sa']=$data; ?> <a href="aaa.php">aaa.phpへのリンク</a> ------------------------------------------------ ファイル名aaa.php ------------------------------------------------ <?php session_start(); $sss = $_SESSION['sa']; echo $sss ; ?> ------------------------------------------------

    • ベストアンサー
    • PHP
  • PHPのセッションについて

    現在PHPでの開発を行っております。 環境は、PHP4.0.5、サーバはレンタルでFreeBSDです。 セッションに格納する変数について教えていただきたいと思っております。 セッションに変数をセットする際に、session_registerを使用しているのですが、格納される変数の型はどこで指定するのでしょうか。 例えば、今、セッション変数として、$no="001"をsession_register("no")として、格納しているのですが、 session_registerで値を取得しようとすると、「1」が返ってきます。 セッション変数に格納した時点で、どうやら数値に変換されているようなのですが、文字列として格納することはできないのでしょうか。 よろしくお願いします。

    • 締切済み
    • PHP
  • PHPのセッションファイルのロックについて

    PHPにて通常のfileにてセッションを利用するとき セッションファイルはセッションを使用するページが終了するまで ロックされていたりしますか? ページ A セッション開始 → 20秒かかる重い処理 → このあと$_SESSION["hoge"] = 1; ページB セッション開始 → すぐに$_SESSION["hoge"] = 2; ページAを読み込み始めて10秒後にページBを読み込み開始した場合 $_SESSION["hoge"] は 1になりますか2になりますか?

    • ベストアンサー
    • PHP
  • PHP SESSION 設定について

    PHP(レンタルサーバー:5.3.6)(ローカル:5.3.26)を使用しています。 簡単なログインフォームを作っていました。 ローカルでテスト運用したところ、問題なく動作していたのでレンタルサーバーにアップロードしたところ、SESSIONが動いていない(?継承していない?)ことに気づきました。 そこでphpinfoを確認すると レンタルサーバーは、 session.cookie_httponly=1(On) session.cookie_secure=1(On) になっていました。XSS攻撃に全部ではないけどレンタルサーバーの設定だと有効だということなので、ローカルもレンタルサーバーの設定に合わせたいと思っています。 ※設定をoffにすると問題なく動作します。 sample2.phpで、「$_SESSION['sample_title']」が表示されなくなってしまいました。 どのようにすれば、sessionが正しく動作するかご教授お願いいたします。 抜粋スクリプト ■sample1.php session_start(); session_regenerate_id(TRUE); $_SESSION["sample_title"] = "PHPのSESSION"; //セッション登録 echo "$_SESSION['sample_title']に代入した値は「<?php echo $_SESSION['sample_title'] ?>」です。"; echo "<a href = 'sample2.php'>次のページ</a>"; ■sample2.php session_start(); session_regenerate_id(TRUE); echo "受け取ったセッション変数の値は「".$_SESSION['sample_title'] ."」です。";

    • ベストアンサー
    • PHP
  • セッション機構とPHPでの実装

    1. PHPで言うところのセッションとは、  クライアント毎にアカウントされた一連の  アクセス-レスポンス過程 2. session_start();  により、セッションを開始する 3. $_SESSIONによりセッションデータとして外部より取得 4. セッション終了時には,デフォルトでは30min  $_SESSIONによりセッションデータは解放される これは、PHPにおける大まかな一つのセッションの利用形式だと思いますが,実際の機構は次のようなものだと思います.  サーバがセッションを開始する   ↓  セッション管理用一時ファイルを生成   セッションIDを生成,ファイルに入れる  アクセス時刻;セッション変数;代入値 を蓄積    その際にセッションIDはHTTP転送によるパケットのヘッダに付けられるのでしょうか?それによってセッション管理されていることを判別しているのでしょうか?  

    • ベストアンサー
    • PHP
  • 困ってます。phpセッションについて

    phpセッションについて教えてください。 既にwebサーバで動いているシステムがあります。 改修する必要があるため、パソコンの仮想サーバ(XAMPP)で動かした所、セッションに関わる部分がうまくいきません。 ●保存してる箇所 session_start(); session_regenerate_id( TRUE ); $_SESSION['xxx'] = $xxx; ●呼び出している箇所 session_start(); session_regenerate_id( TRUE ); if ( !isset( $_SESSION['xxx']) ) { //←ココでひっかかります //終了するための処理 exit; } $xxx = $_SESSION['xxx']; ************** 設定に関する部分です。 ●「.htaccess」の設定は以下のようにしています。 php_flag session.use_cookies On php_value session.cookie_lifetime 0 php_flag session.use_trans_sid Off php_value session.gc_maxlifetime 3600 php_value session.save_path 'C:temp' 'C:temp'に保存されたデータはありますので、書き出しはうまくいってるようです。 呼び出しがうまくいってません。 ソースの session_start(); session_regenerate_id( TRUE ); の直後に var_dump($_SESSION['xxx']); で値を参照するとNULLです。 ●「php.ini」のセッションの箇所は以下のようになっています。 session.save_handler = files よろしくお願いします。

    • ベストアンサー
    • PHP
  • session_start()で生成されるセッションIDは、どのように選定されている?

    いつもお世話になっております。 PHP5.2.5 session_start(); とすると、「ランダムと思える長めの文字列」がセッションIDとして生成されます。 例えば、 世界の人々が訪れる大手サイト等でセッションを利用する場合、 session_start()の際、生成されるランダム文字列に重複が生じ、 異なる複数の人間に、同一のセッションIDを持たせてしまう、 なんてことは起こらないのでしょうか? この回答として、 「確実に無いわけではないが、無視できる程度の確率」であるのか、 はたまた、 「仕組み的に、確実に(100%)同一セッションIDは生成されない」であるのか、 このあたりをどなたか教えて下さい。(質問1) また、PHPのsession_start()によって生成されるセッションIDは どのような仕組みで、この文字列は選定されているのでしょうね? どこかに記載はありましたでしょうか。 (質問2) もし何かお分かりでしたら、ご助言を宜しくお願い致します。

    • ベストアンサー
    • PHP
  • header と session の順番

    header("Content-Type: text/html; charset=euc-jp"); $_SESSION['HOGE'] = true; といったようにセッションより前にヘッダーを書くとセッションに保存されない 場合などあるのでしょうか? テスト環境のサーバーでは正常動いているのですが、本番サーバーでは$_SESSION['HOGE']に 値がセットされていないようなのですが…。本番ではテストする事ができず推測なのですが…。

    • 締切済み
    • PHP
  • IFRAME内PHPのセッション変数取得が出来ない

    既存のHTMLサイトに一部機能追加したいだけ+ブラウザに表示されるURLの関係で、必要部分だけIFRAMEでPHPサーバーのファイルを呼び出して表示させようと考えました。 IFRAMEを記述するHTMLファイル設置サーバーはPHPが使用出来ません。 <iframe src="http://hogehoge/login.php"></iframe> とHTML内にログイン用PHPを表示させ、ボタン押下でログイン判定 →データをセッション変数にセット →header("Location: http://hogehoge/form.php");で画面遷移 →フォーム用PHPに先ほどセットしたセッションデータ表示 とこんな感じの処理がしたいのですが、これがFireFoxだとうまく動くのに、IEだと動いたり動かなかったりします。(動く=開発環境である私のPC、動かない=他全て) ボタン押下で自分自身にPOSTしたデータは正しく受け取って画面遷移まで処理しているのですが、遷移後のページでセッション取得しようとすると取得出来ないようなのです。 IFRAMEを通さず直接URL叩いた場合は、FF・IEどちらも正常に動いています。 session_name('hoge'); session_start(); はPHP先頭に記載してあります。 IFRAMEを使用して外部サーバーのPHPを使用する際に、気をつけねばならない事などがあるのでしょうか… もし解決方法に思い当たる方がいらっしゃいましたら、どうかご回答宜しくお願いいたします。 またもし補足等必要でしたらご指摘下さい。

    • ベストアンサー
    • PHP
  • PHPのセッションについて質問させてください。

    PHPのセッションについて質問させてください。 現在、ショッピングカートをPHPで作っているのですが、利用者のセッションIDに関連づけられているセッション変数の一覧を表示したいと思っているのですが、なかなかうまくできません。 msession_list()という関数も発見したのですが、エラーが出てしまいます。 サーバーに保存してあるセッション変数の一覧を取得するにはどうしたら良いのでしょうか? よろしくお願いします。

    • ベストアンサー
    • PHP

専門家に質問してみよう