• ベストアンサー

助けて下さい!!セッション変数が消えてしまいます。

いつもお世話になっています。 セッション変数に値をセットして、 あるボタンをクリックするとNEWウィンドウが 開かれて、そのセッション変数を使って処理を したいのですが、何故かセッション変数が消えてしまいます。 社内のパソコンでは上手く動くのに同じプログラムをほかのパソコンに入れたらセッション変数が消えてしまう現象がでています。 「教えて!goo」をみてセキュリティーの設定もやってみたのですが・・・ ちなみに上手く動くのはIE6.0で動かないのはIE5です。 このバージョンの違いもなにか影響しているのでしょうか? よろしくお願い致します。

質問者が選んだベストアンサー

  • ベストアンサー
  • soushi_ni
  • ベストアンサー率54% (6/11)
回答No.1

セッション変数のデータ型はオブジェクト型ですか? ASP開発でのセッション多様は禁物だと思いますので、DBオブジェクトをセッションで渡していないのでしたらGetパラメータ渡しの方が無難に思えます。 この現象、以前に経験しましたが、思い出せません。 実際に行けば分かるのでしょうけど・・・無念!!

momofuji
質問者

お礼

ありがとうございました。 状況としては、最近購入した新しいパソコンにPGを入れ直したら問題なく動作しております。 (作成した環境と同一の環境のPCです。) 緊急を要していたのでこれで対応してしまいました。 こちらからの質問の内容が不十分なためどなたからもご回答いただけないのかと落ち込んでいたので大変嬉しかったです。 本当にありがとうございました。 早速、PGを見直してみます。

関連するQ&A

  • IE6で新しいウィンドウを開くとセッションが切れる??

    IE6以外では、起こっていない現象が起きました。 (IE3.02,IE4,IE5) セッション変数に値をセットしていて、 あるボタンをクリックするとNEWウィンドウが 開かれて、そのセッション変数を使って処理を したいのですが、 新しいウィンドウを開くと セッション変数がなくなってしまう?? らしく困っています。 また、IE6でも現象が起きる端末と そうでない端末があるようでさっぱり原因が分かりません。 Windows2000 IIS5.5 を使用しています。 とりあえず、新しいウィンドウを開くと セッションが切れるという事象に何か少しでも 心辺りがある方、何でもいいので手がかりでも 教えてください。よろしくお願いしたします。

  • セッション変数について

    48歳独学でプログラムを勉強しているものです。誰も教えてくれる人がいないので、教えてgooさんには大変お世話になっております。 現在PHPを使用して無料レンタルサーバーに会員画面を作ろうとしているのですが、一般的に無料レンタルサーバーでもセッション変数は使えるものなのでしょうか。どうも上手くセッション変数がフォルダに保存されません。無料レンタルサーバーでは不可なのでしょうか。 セッション保存先に「kaiintmp」というフォルダを作成しています。 そして、 session_start(); session_save_path("kaiintmp"); session_register("simei","pass"); $_SESSION[simei]=$simei; $_SESSION[pass]=$pass; のようにしていますが・・・。 自分のパソコンでは、セッション変数が作成されますがレンタルサーバーにUPしても作成されません。 レンタルサーバーにUPしたときのpathがダメなのでしょうか? レンタルサーバーでセッション変数を使用されている方おりましたら宜しくご教授お願いいたします。

    • ベストアンサー
    • PHP
  • セッション変数にデータをセットする

    下記のPHPプログラムについて 1 <?php 2 // セッションを開始する 3 session_start(); 4 ?> 5 <html> 6 <head> 7 <title>セッション変数にデータをセットする</title> 8 </head> 9 <body> 10 <?php 11 // セッション変数にデータをセットする 12 if (!isset($_SESSION["name"])) { 13  echo "<p>セッション情報をセットしました"; 14  $_SESSION["name"] = "田中"; 15  } 16 echo "<p>名前:".$_SESSION["name"]; 17  18 // セッション変数にデータをセットする 19 if (!isset($HTTP_SESSION_VARS["name2"])) { 20  echo "<p>セッション情報をセットしました"; 21  $HTTP_SESSION_VARS["name2"] = "高橋"; 22 } 23 echo "<p>名前:".$HTTP_SESSION_VARS["name2"]; 24 25 ?> 26 </body> 27 </html> 実行すると 名前:田中 名前:高橋 となるのですが、なぜ13行目、20行目のecho文の内容が出力されないのか不思議です。 echo文の内容が表示がされない理由ついて教えてください。 よろしくお願いします!

    • ベストアンサー
    • PHP
  • セッション変数の破棄と再設定

    セッションを破棄する『Session.Abandon』を実行すると、セッション変数が全部破棄されます。 全部は破棄したくないのでいろいろパターンを考えてみたのですが うまくいきません。 (1)破棄したくないものを一旦ワークへ退避し、Session.Abandon実施後に、再びセッションへ設定する。 →どうも、一度破棄してしまうと再びセッションへ設定が出来ないようで、処理ができません (2)使用したセッション変数すべて(破棄したくないものを除く)に ""(空文字列)をセットする。 →これだと一応はOKなんですが、他への流用がきかないため、できればあまりやりたくないです^^; (セッション変数自体も破棄される訳ではないのであまり使いたくないというのもありますが・・・) 最悪は上記(2)で対応できるのですが、他に何か良い対応策があれば教えていただきたいです。 お願いします。。。

  • PHPのセッション変数について

    ページの構成が代わり、A-B-Cと順番だったのをA-Cと変更しました。 AからCリンクにとぶように設定したのですが、リンクを変更していてもBのページに行ってしまいます。 このプログラムを作った人に聞きましたところ、 if{session("user_sbt") というセッション変数で、新しく作られた画面のところで何もセットしていなければ初めの画面(B)に戻るというプログラムが走っているそうです。作った人に直してもらえたら良いのですが、事情で日本にはいないので、わかる方教えてください。よろしくお願いします。 PHPファイルの上部には session_start(); require_once("../_common/head.php"); require_once("../_common/mysql.php"); というセッション変数が記入されています。

    • 締切済み
    • PHP
  • Sessionについて

    Session管理について以下のページを参考にしました。 http://www.atmarkit.co.jp/fjava/javafaq/session/session04.html あるServletにおいて、(1)セッション開始後、 ( HttpSession session = request.getSession(true);) (2)セッションに値を格納・・・また、違うServletで (3)そのセッションに格納された値を取得・・・ といったやり方が載っていました。 よく、セッション管理についてまだ分かってないところが あるのですが、・・・ たとえば、Aサーブレットでセッションを開始し、 セッションに値を格納・・・・とします。 そのセッションに入れる値。。。というのを 「顧客ID」と「処理CD」の2つにしたい場合はどのような 記述になるのでしょうか?? 参考にしたページには //セッションに値を格納 UserInfo userInfo = new UserInfo(...); session.setAttribute("USER_INFO", userInfo); こんな感じで書いてるんですが、 これは、USER_INFOというキーワードでuserInfoを 値としてセットするということですよね? 顧客IDと処理CDを記述するときは、なにか それぞれオブジェクトが必要なんでしょうか?? よくわかってないです。 ・・・・すみません。よく意味がわかってないので 質問内容も中途半端だと思うのですが、 セッション管理について教えてください。

  • PHPのセッション変数 絞り込み検索

    PHP Version 5.1.6 flash actionscript2.0 最初の検索条件をセッション変数['first']に保存し、 (GETにより、種別を判断しています。 ~~/index.php?kind=A&value=1という形) 絞込検索時(値はページ内のチェックボックスからPOSTで受け取り、hiddenタグで、type=newを受け取ります。)に 最初の検索条件をセッション変数['first']から取り出すようにしています。 また絞り込み検索時でなければ、とりあえずいったん保存用の セッション変数['first']を初期化しています。 ここで、ページ内にフラッシュのNEWというボタンがあり、その中に var kind = "new"; get_URL("http://~~/index.php", "_blank","GET"); とだけ記述して、ページへkind=newという検索種別を渡すように しているのですが、挙動がおかしくなる場合があります。 [正常な動きをする場合] 1、ページ内のNEWのフラッシュボタンを押す。 予想通りの最初の検索ができる。 (この時点で、セッション変数['first']に"new"が入っているのは 確認済みです。) 2、ページ内のチェックボックスで、絞込み検索をかける。 予想通り、最初の検索条件+絞り込み条件を加えた検索ができる。 [異常な動きをする場合] 1、ページ内のリンクから最初の検索をする。 (~/index.php?kind=A&value=1)を押す。 (この時点で、セッション変数['first']に"A"が入っているのは 確認済みです。) 2、ページ内のチェックボックスで、絞込み検索をかける。 予想通り、最初の検索条件+絞り込み条件を加えた検索ができる。 3、ページ内のフラッシュのNEWボタンを押す。 予想通り、再度別条件での検索ができる。 4、ページ内のチェックボックスで、絞込み検索をかける。 なぜか、セッション変数['first']に、"A"が入ったままになっている。 よって、2の検索に変わってしまう。 ただし、このフラッシュボタンからではなく、たとえば ~/index.php?kind=new というGETで送るタイプのリンクからでは、予想通りの動きをします。 このあたりの挙動につきまして、ご教授いただければ幸いです。 下記コードです。(処理に関係ない部分は省略しております。) session_start(); session_register("first"); //パラメータを受ける。 //絞込検索でなければ、セッション変数を初期化 if($_REQUEST['kind'] != "more") { unset($_SESSION['first']; } switch($_REQUEST['kind']){ case "A": $_SESSION['first']= "A"; break; case "new": $_SESSION['first']= "new"; break; //絞込み検索 case "more": break; }

    • 締切済み
    • PHP
  • セッションが動かない

    セッションがちゃんと動かない。 PHPのセッションがちゃんと動きません。 他のプログラムを同じ環境で動かしたところうまく動きましたので、 コードのほうに問題があると思います。 以下のようなコードを書いています <?php require_once '../function.php'; require_once '../config.php'; if (!($_SESSION['date'])) { session_start(); } connect_db() ?> <div id="comu_confirm"> <?php $now = new DateTime(); $date = $now->format('Y/m/d H:i:s'); $title = $_POST['title']; $contents = $_POST['contents']; if ($_SESSION['date']) { $_SESSION = array(); session_destroy(); }elseif($_POST) { } //test $_SESSION['title'] = $title; $_SESSION['contents'] = $contents; $_SESSION['date'] = $date; まず最初はelseifのほうのプログラムを動かして、session変数に値を入れます。 その後、もう一度このファイルに飛んで、二回目はsession変数が入っているので ifのほうに入って、ifの中の処理をするという形にしたかったのですがif文のほうの処理に行きません。 ちなみに、二回目に見たときはURLの欄にセッションIDは表示されていませんでした。 テストとして <?php require_once '../function.php'; require_once '../config.php'; if (!($_SESSION['date'])) { session_start(); } connect_db() ?> <div id="comu_confirm"> <?php $now = new DateTime(); $date = $now->format('Y/m/d H:i:s'); $title = $_POST['title']; $contents = $_POST['contents']; //test $_SESSION['title'] = $title; $_SESSION['contents'] = $contents; $_SESSION['date'] = $date; if ($_SESSION['date']) { $_SESSION = array(); session_destroy(); }elseif($_POST) { } としてみたところ、if文の処理は動いていました。 なにが悪いのでしょうか? 不足した情報がありましたら開示したいと思いますので教えていただければと思います。 よろしくお願いします。

    • ベストアンサー
    • PHP
  • Sessionとアンチウイルスソフトの関係

    ASPにて、本社では動くのに支社では動かないという 現象が起きました。 問題はsessionに格納した値が正しく取得できたか、 できてないか、によるものです。 当然、同じサーバーにアクセスにきて、同じブラウザを 使用しているのですが、唯一異なるのがアンチウイルス ソフトの種類です。 本社はウイルスバスター、支社はノートンインターネット セキュリティです。 このようなソフトの影響でsessionの処理に影響が あるものなのでしょうか?

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

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

    • 締切済み
    • PHP

専門家に質問してみよう