php + sessionについてお願いします。


あるスクリプトを作りました。
サーバAではsessionに登録した情報を取得できるのですが、
サーバBでは同じように取得できません。

サーバBはsessionを使えますし、
下記のコードでしたら
2回目以降のアクセスで正常に「テスト」と表示します。

<?
session_name('test');
session_start();
echo $_SESSION['test'];
$_SESSION['test'] = 'テスト';
?>

ここにコードを出せないのですが、
初心者がやりそうなミスなど、
考えられる原因を教えて下さい。

よろしくお願いします。

回答の条件
  • 1人2回まで
  • 登録:2009/12/24 16:41:28
  • 終了:2009/12/31 16:45:02

回答(2件)

id:kn1967 No.1

kn1967回答回数2915ベストアンサー獲得回数3012009/12/24 17:24:25

ポイント60pt

サーバAではsessionに登録した情報を取得できるのですが、

サーバBでは同じように取得できません。

セッションは同一サーバ上でしか通用しませんので、

サーバAでセッション変数をセットしても、

それをサーバBで参照したりすることは出来ません。


どのようなシステムを構築中かが秘匿されているため、

具体的に答えることは難しいのですが、

サーバAとBが同一LAN内で接続されているならば、

LAN内での通信で安全性は確保できますが、

インターネット越しの場合はPOST等でデータを送る事になるため、

情報漏洩の危険性があり、暗号化したデータを受け渡しするなどを、

考慮する必要があります。

id:web2009

あっ すいません。

質問の仕方に問題がありました。

Aで保存した内容をBで呼び出したいのではなく、

Aで正常に動くのを確認したものを、

Bにそっくりまるまる設置したら正常に動かないと言うことです。

同一ドメイン内でと言うことです。

よろしくお願いします。

2009/12/24 17:47:45

質問者が未読の回答一覧

 回答者回答受取ベストアンサー回答時間
1 hseisyu 11 6 2 2009-12-26 09:27:46
  • id:kn1967
    ごめん。

    同一スクリプトを他のサーバで動かしたらっ・・・って事だと、
    コード(隠しつつ、一部でも出せない?)と環境の両方を見るか、
    サイトの設計概要みたいなものが判らないと私には無理。

    まずは環境の違いを phpinfo() で出力して比較してもらうと良いかと・・・。
    http://jp.php.net/manual/ja/function.phpinfo.php
    セッション関連のディレクティブについては下記から。
    http://jp.php.net/manual/ja/ini.list.php
  • id:web2009
    phpinfo(); の結果の違いは

    session.save_path の部分だけでした。
    正常に動く方は「no value」で、
    動かない方は「/tmp/sessions/」でした。
  • id:kn1967
    サーバBはセーフモードなんじゃないかな・・・?
    http://php.net/manual/ja/features.safe-mode.functions.php

    「だから何だっ_」て事なんですが、セッションというよりは、
    他の部分も絡んできて思ったような処理が出来てないような気が・・・。
  • id:web2009
    ありがとうございます。
    うわ〜 沢山使っています --;
    探してみます。

この質問への反応(ブックマークコメント)

「あの人に答えてほしい」「この質問はあの人が答えられそう」というときに、回答リクエストを送ってみてましょう。

これ以上回答リクエストを送信することはできません。制限について

絞り込み :
はてなココの「ともだち」を表示します。
回答リクエストを送信したユーザーはいません