• 締切済み

別ブラウザ間でセッションの値が共有されてしまう問題

別ブラウザ間でセッションの値が共有されてしまう問題 あるサーバー(hostgator)で、セッションを使用するプログラム(PHP)を作っているのですが、あるブラウザで入力した値が、全ての異なるブラウザで同じ値を参照してしまっている 現象が出てしまい、困っています。 異なるブラウザというのは、別PC/別IPアドレスの別ブラウザでも、セッションを共有してしまっています。 同プログラムを、別会社のサーバーに入れた所、 きちんとブラウザごとに別の値が保存されているので、このサーバーだけの問題かと思い、 php.iniなどを調べてみたのですがそれらしい設定を見つけることができませんでした。 この現象を解決する方法をご存知のかた、おられないでしょうか? プログラム自体は、この現象を再現するために作ったもので、 以下の様なものです。 別ブラウザ間でセッションの値が共有されてしまう問題あるサーバー(hostgator)で、セッションを使用するプログラム(PHP)を作っているのですが、あるブラウザで入力した値が、全ての異なるブラウザで同じ値を参照してしまっている 現象が出てしまい、困っています。 異なるブラウザというのは、別PC/別IPアドレスの別ブラウザでも、セッションを共有してしまっています。 同プログラムを、別会社のサーバーに入れた所、 きちんとブラウザごとに別の値が保存されているので、このサーバーだけの問題かと思い、 php.iniなどを調べてみたのですがそれらしい設定を見つけることができませんでした。 この現象を解決する方法をご存知のかた、おられないでしょうか? プログラム自体は、この現象を再現するために作ったもので、 以下の様なものです。 session_start(); $_SESSION['val'] = $_SESSION['val'] + 1; echo $_SESSION['val'];

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

みんなの回答

  • agunuz
  • ベストアンサー率65% (288/438)
回答No.1

セッションIDはどうなっていますか?全部同一ですか? もしそうなら、サーバ管理者に現象を報告して対処依頼するしかないと思いますけどね(私ならとっととサーバ移転する)。

関連するQ&A

  • セッション時間について

    プログラム初心者です コアサーバーとゆうレンタルサーバーを使っています。 phpの設置しているディレクトリに自前のphp.iniを置けば反映されるらしいです セッション切れの時間をのばす方法を教えてください(自前でphp.iniを作る方法を教えてください) サーバーのphpinfo確認したら session.cookie_lifetime 0 0 session.gc_maxlifetime 1440 1440 になっていました 自前のphp.iniにsession.gc_maxlifetime = 3600と一行だけ記述するだけでできますか? それとも、php.iniにxamppにあるような設定をワラワラ書かないといけませんか? php.iniのパーミッションは何にしたほうがいいでしょうか?見えるとまずいですよね? よろしくお願いします  

    • ベストアンサー
    • PHP
  • セッションのクッキー有効期間を個別に設定

    セッションのクッキーの有効期間は、 [php.ini] session.cookie_lifetime=0 と設定すると、全てのユーザに対して、ブラウザが終了するまでとなりますが、これを個別のセッションごとに(PHPのプログラム側で)管理することは可能でしょうか。 Aさんの場合は、ブラウザを終了しても3日間セッションを有効とし、Bさんの場合は、php.iniの設定どおりブラウザが終了するとセッションも終了する。というようなことをやりたいと思っています。 よろしくお願いします。

    • ベストアンサー
    • PHP
  • セッションについての設定なのですが・・。

    すいません。今さくらのレンタルサーバーでphpをアップロードしたのですが、 セッションがまったく動きません。 XAMPPのローカル環境では動いていますのでプログラムには間違いは無いのですが、 私はphpプログラムを組むのも初めてなもので原因をググっていました。 するとあるウェブサイトにさくらのレンタルサーバーで同様の症状に陥ったとのブログが ありまして、さくらはsession.save_pathを明示的に指定しなければセッションが使えないとの 内容でした。 ( <?phpinfo()?>で設定状況を調べました所session.save_pathはno valueでした) 恐らく自分と同じ症状なのでパスを指定すれば解決すると思うのですが、 さくらのphp.iniはロリポップやエックスサーバーとは違いラジオボタンやチェックボックスでの php.ini設定は一切できず、何も記載されていないテキストボックスがあるだけです。 私は今までローカル環境でしかphpをさわった事がないためphp.iniの設定の仕方が全く わかりません。 どなたかsession.save_pathを指定する方法教えてもらえませんか? (下の例を見てもよくわかりません。何かファイルを作ってアップロードするのでしょうか??) サイトにあった解決方法 ---------------------------------------------------------------------------------- php.iniにてsession.save_pathを明示的に指定(例:/home/user/tmp) ← 以前はno valueだった 指定したディレクトリに書き込み権限を与える

    • ベストアンサー
    • PHP
  • セッションが使えたり使えなかったりする

    レンタルサーバを使用しているのですが、セッションが使えたり使えなかったりします。 使えなくなるとPHPSESSIDはNULLになります。 これは何が原因なのでしょうか? 共用のレンタルサーバなので、サーバのメモリが足らずに保存しきれていないのかなと推測してレンタルサーバに問い合わせたところ、以下のような返答が来ました。 /**********************************************/ SESSIONは初期の設定では、サーバーのシステム領域に保存されます。 しかし、定期的にクリアされますので、お客さま領域内に保存されるよう 変更していただきお試しいただけますでしょうか。 session.save_pathを変更する場合には、 設定を変更したいディレクトリ内にphp.iniファイルを 設置していただくことで該当ディレクトリのみ設定が有効になります。 設定が反映されているかはphpinfoにて確認が可能です。 なお、設定を有効にしたいディレクトリが複数ある場合には 各ディレクトリにてphp.iniファイルを設置してください。 また、php.iniの記述方法に関してはご案内していないため 参考書籍やWebサイト等にてご確認ください。 /**********************************************/ session.save_pathを変更すると何ができるんでしょう? この「セッションが使えない」という問題はクライアント側で解決できることなのでしょうか?

    • ベストアンサー
    • PHP
  • セッションのスコープ(有効範囲)について

    セッションのスコープ(有効範囲)について困っています。 ご存じの方がいましたら教えてください。 現象:同一ドメインでフォルダ階層が異なる場合にセッションが切れてしまう。 例) http://oshiete1.goo.ne.jp/aaa/a.php セッション生成 http://oshiete1.goo.ne.jp/aaa/b.php ○セッション参照 http://oshiete1.goo.ne.jp/bbb/b.php ×セッション参照 あれこれ試行錯誤して1日がつぶれてしまいました。 以下についてお教え頂けたら幸いです。 Q.別階層でもセッションは参照できるか。   上位階層でセッションを生成しないと下位階層では共有できない?   もしくは何か方法がある? 書籍などもあさったのですが、スコープについては同一ドメインであることくらいしか記述されていませんでした。 できる、できないの一言だけでもいいので、なにとぞよろしくお願いします。

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

    携帯サイトを作成しているので、URLに直接IDを埋め込む形でセッションさせたいのですが、うまくいきません。 レンタルサーバ(heteml)には『php.iniの設定-session.use_trans_sid』が用意されているのですが、クッキー環境であればそちらを優先したいので、携帯サイト向けのファイルのソース上で何とかしようとしている所です。 そんな訳で、サーバーの『php.iniの設定-session.use_trans_sid』はOFFにした状態で **************a.php********************************** <?php ini_set("session.use_cookies","0"); ini_set("session.use_trans_sid","1"); session_start(); $_SESSION["test"] = "テストです"; echo "<a href=\"b.php\">セッションテスト</a>"; ?> ***************************************************** **************b.php********************************** <?php ini_set("session.use_cookies","0"); ini_set("session.use_trans_sid","1"); session_start(); echo $_SESSION["test"]; ?> ***************************************************** と、したのですがうまくいきません。 ini_set関数の使い方が間違っているのでしょうか? また、手動でIDを埋め込むやり方でも構いませんので、 ご存知の方いらっしゃいましたら宜しくお願いします!

    • ベストアンサー
    • PHP
  • インラインフレーム内のセッション

    通常のHTMLファイルのインラインフレーム内に、別サーバーからPHPファイルを取得して表示しています。 そのPHP自体は簡単なアンケート(フォーム→入力内容確認→送信)なんですが、このフォーム→入力内容確認の遷移がうまくいきません。 セッションでフォーム内の値と送信ボタンの値(sub)を保持し、確認のファイルに if(@$_SESSION['sub']!=TRUE){ header("location:form.php"); exit(); }else{ (以下略) } と記述することで、もしURL直打ちの場合はフォームの入力画面に飛ばされるようにしてあるのですが、インラインフレームの中でフォームに入力して送信ボタンを押すと、強制的に同じ画面に戻ってしまうのです。 直接ブラウザで該当のPHPを見たときは、何の問題もなく動くので、プログラム自体にエラーがあるわけではないと思うのですが・・・。 どうも確認ファイルのif(@$_SESSION['sub']!=TRUE)で、セッションがうまく保持されていないためにheaderで飛ばされてしまっているらしいのですが、インラインフレーム内でセッションを利用するときはどうすればいいのでしょうか?

    • ベストアンサー
    • PHP
  • 別セッションでのWebシステムの起動方法が分かりません。

    別セッションでのWebシステムの起動方法が分かりません。 現在、Webで別のWebシステムが起動するメニュー画面を作成しています。 そのメニュー画面経由でWebシステムを複数立ち上げると、セッションが共有されてしまい、別ユーザとかでログインできません。(※javascriptのwindow.openを使用しています。) 別セッションで画面を起動するのはどうすれば良いでしょうか? 【環境】 サーバOS Red Hat Linux ソフトウェア:Apache 言語:php クライアントOS:Windows XP sp3 ブラウザ:IE8 ※ 「メニュー」<-「新規セッション」やレジストリの変更など、ユーザが操作するのではなく、 プログラムで制御したいです。 よろしくお願いします。

    • 締切済み
    • 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
  • php4のセッション機能とブラウザのキャッシュについて

    はじめまして 今 php4でプログラムを書いているのですが、セッション機能 と ブラウザのキャッシュの関係について教えてくれませんか? php4では、ブラウザ(クライアント)にキャッシュを可能に するかどうかという設定が ありますが、 キャッシュを可能にしない場合は、ブラウザで[戻る]を 選択すると キャッシュの期限が切れているとエラー表示され ます。次に キャッシュを可能にした場合は、上記のような エラーはでないのですが、一度 操作した部分に対して ブラウザのキャッシュが 効いてしまい、セッションファイル を使用できなくなります。 この問題を解決するには、セッション機能とブラウザのキャッシュ の関係について学習すればいいと思うのですが、いい資料 がありません。どうか 教えて下さい。 では 失礼します。

    • 締切済み
    • PHP

専門家に質問してみよう