締切済み JSP&サーブレットのセッション変数の定義について 2005/01/28 10:31 フォームから入力された件数をセッション変数に格納しておき、 この内容をタグファイルに引き渡す定義方法をお教え下さい。 みんなの回答 (1) 専門家の回答 みんなの回答 deadlock ベストアンサー率67% (59/87) 2005/01/29 14:19 回答No.1 以下の通りです。valueはHTMLで意味を持つ文字をエスケープするのを忘れないでください。 Servlet側 // requestはHttpServletRequest request.getSession().setAttribute("hogeValue", value); JSP側 <input type="text" name="hoge" value="<%= session.getAttribute("hogeValue") %>"> 広告を見て全文表示する ログインすると、全ての回答が全文表示されます。 通報する ありがとう 0 カテゴリ [技術者向] コンピュータープログラミング・開発Java 関連するQ&A セッション変数の値を別のセッションに写す方法 よろしくお願いします。 ホームページにSSLを導入しました。 通常のページとフォーム入力ページ(SSLを使用するページ)は、ホストが異なる為、セッションも異なります。 その為、通常ページで使用していたセッション変数が、フォーム入力ページでは、使う事が出来なくて困っています。 通常ページで使っていたセッション変数を丸ごと、フォーム入力ページへ安全に渡す方法はないでしょうか? ご教授お願い致します。 フォームの入力値のセッション破棄は? Aフォームがありまして、入力して確認ボタンを押し、セッションに入力値が格納されたけど、途中でBフォームへ行ってしまった、という場合、いつまでもAフォームの入力値をセッションに格納しておいても使わないですし、セッション変数名が競合して予期しない動作をしても困るので、他のページへ遷移した時点でAフォームの入力値セッションを削除するようにしたいのですが、実装方法としては、URLまたは絶対パスをセッションに入れといて、画面遷移するごとにそのセッションとURLまたは絶対パスを突き合わせ、一致しなければ削除、というやり方で問題ないでしょうか? ロードバランサ使ってても同一ページなら絶対パスは変わらないのでしょうか??詳しくないんですが…。 美しい実装方法をご教示ください…。 JSPでsession変数が勝手に書き換えられる お世話になっています。 JSPを使ってプログラミングをしていますが、画面遷移の途中でsession変数の内容が空になってしまう現象に悩まされています。 画面遷移は、 ■入力画面 <jsp:useBean id="apply" scope="session" class="apply.Apply2009Bean" /> ↓post ■確認画面(ここで、前の画面で入力された値をsessionに保存) <jsp:useBean id="apply" scope="session" class="apply.Apply2009Bean" /> ↓post ■申し込み完了画面(入力された値をDBに保存) <jsp:useBean id="apply" scope="session" class="apply.Apply2009Bean" /> ここで、申し込み完了画面になるとapplyという変数の中が全部nullになっています。 念のため暗黙のsession変数からgetId()でセッションIDを画面に出してみると<%=session.getId()%> 申し込み画面:585C94623773F49C0708E050C95E20D2 確認画面:5C35DCF1B68850A762D531CAF2F9700E 完了画面:7D1035FD035C7767C8CEB1D938325D60 と、毎回セッションIDが変わっています。 ちなみに、テスト環境ではこの問題は起こらず、本番環境のみで発生します。 同様の問題を経験したことがあるかたはいらっしゃいませんでしょうか。 構成は ■テスト環境: os:WindowsXP SP2 server:Tomcat 4.1 Java: 1.4.2 ■本番環境: os:FreeBSD 6.1-RELEASE-p6 server:Tomcat 4.1 Java: 1.4.2 よろしくお願いいたします。 ネットワークエンジニアとは?技術職の未来を考える OKWAVE コラム セッション変数について セッション変数の扱いについて困っていることがあります。 ichiran.jspの画面(商品一覧表) りんご→nyuryoku.jsp?shohinmei=ringoへのリンク みかん→nyuryoku.jsp?shohinmei=mikanへのリンク nyuryoku.jsp String shohinmei=request.getParameter("shohinmei"); session.setAttribute("shohinmei",shohinmei); ... <form method="post" action="koushin.jsp"> ...入力フォーム </fotm> koushin.jsp HttpSession hs=request.getSession(true); String shohinmei=(String)hs.getAttribute("shohinmei"); データ更新のSQLをかける ichiran.jspの画面で 1.りんごを右クリックして新しいウィンドウで開く 2.みかんを右クリックして新しいウィンドウで開く 3.りんごの入力画面を開いているブラウザのSubmitをクリック ↓ 2の時点でsession変数shohinmeiにmikanが入っているので、 りんごのはずがみかんのほうに更新がかかってしまう。 りんごとみかんの入力画面を並列に開いたときに、 それぞれ別のセッションとして生成され、りんごとみかんに関するshohinmeiの 変数領域が別々に確保されるようにする方法はないものでしょうか? セッション変数 $_SESSION['name']=test $_SESSION['pass']=pass というようにセッション変数に、nameとpassを作成しました。 セッション変数とは、配列と考えてもいい物なのでしょうか それとも、一個一個の変数と考えるべきなのでしょうか。 よくセッション変数と言われますが、記述のされ方が配列と同じようにみえるので気になりました。 ・SESSION配列? ############################# | name = 'test' | pass = 'aaa' | ############################# ・SESSION変数? ############### ############# | name = 'test' | | pass = 'aaa' | ############### ############# どちらが正解なのでしょうか? PHPのセッションについて 現在PHPでの開発を行っております。 環境は、PHP4.0.5、サーバはレンタルでFreeBSDです。 セッションに格納する変数について教えていただきたいと思っております。 セッションに変数をセットする際に、session_registerを使用しているのですが、格納される変数の型はどこで指定するのでしょうか。 例えば、今、セッション変数として、$no="001"をsession_register("no")として、格納しているのですが、 session_registerで値を取得しようとすると、「1」が返ってきます。 セッション変数に格納した時点で、どうやら数値に変換されているようなのですが、文字列として格納することはできないのでしょうか。 よろしくお願いします。 PHP セッションを利用した入力フォーム 入力内容をセッションで保持しているフォームで, 入力画面から「前の画面に戻る」ボタンが押された際に 保持していた入力内容のセッションを破棄するようにしたいのですが, どのようにしたらいいでしょうか. unset($_SESSION['変数名'])で破棄できるのはわかっているのですが, これをどこに記述したらいいのかがわかりません. それとも,別の破棄する方法があるのでしょうか. 入力内容に関係ないところでもセッションを使っているので, session_destroy()ですべて破棄するのはしたくありません. よろしくお願いいたします. セッション変数にパスワードを保持しても良い? ユーザーログイン機能について、取得した全てのDBユーザーテーブル情報を、セッション変数$_SESSION['★★']に格納しているサンプルコードがありました(2つ程見かけました) ■質問 ・セッション変数にパスワードを保持しても良いのでしょうか? ・生成した予測不能な文字列(セッションキー?)が破られたらどうしようもないので、そういう意味ではセッション変数には何を保存しても良いのでしょうか? 単に保存先が、セッション変数かDBかの違いでしかない? ・あるいは、セッション変数には必要最低限なもの、もしくはセキュテリティに関係ないもの、のみ保存して、その都度DBに問い合わせた方が良いのでしょうか? でも、これって非効率的? セッション使用時のセキュリティについて 問い合わせフォームをPHPで書いています。 基本的な流れは "1.html"(入力フォーム表示) ↓ "2.php"(入力内容を確認してもらいます) ↓ "3.php"(入力内容を送信します) です。 "1.html" フォームを表示して、入力してもらいます。 POSTでデータを2.phpに渡します。 "2.php" POSTされたデータを表示し、入力内容を確認してもらいます。 入力内容をチェックし、不備が無ければsession_start()し、$_SESSION変数に値を入れます。 "3.php" session_start()し、$_SESSION変数を使用します。 $_SESSION変数を使い終わったら、以下でセッションを破棄します。 $_SESSION=array(); session_destroy(); クライアント側のクッキーを削除します。 setcookie("PHPSESSID", '', time() - 42000, '/'); $_COOKIE=array(); 以上の手続きをしていますが、セキュリティの観点で見直した方が良い点はありますか? "2.php"の時点でセッションを開始していますが、もしその時点で送信(submit)しなければ"3.php"でのセッション削除が実行されない為、セッションとクッキーが残ってしまうと思いますが、どの様な問題が生じますか? アドバイスを宜しくお願いします。 助けて下さい!!セッション変数が消えてしまいます。 いつもお世話になっています。 セッション変数に値をセットして、 あるボタンをクリックするとNEWウィンドウが 開かれて、そのセッション変数を使って処理を したいのですが、何故かセッション変数が消えてしまいます。 社内のパソコンでは上手く動くのに同じプログラムをほかのパソコンに入れたらセッション変数が消えてしまう現象がでています。 「教えて!goo」をみてセキュリティーの設定もやってみたのですが・・・ ちなみに上手く動くのはIE6.0で動かないのはIE5です。 このバージョンの違いもなにか影響しているのでしょうか? よろしくお願い致します。 セッション変数について 48歳独学でプログラムを勉強しているものです。誰も教えてくれる人がいないので、教えてgooさんには大変お世話になっております。 現在PHPを使用して無料レンタルサーバーに会員画面を作ろうとしているのですが、一般的に無料レンタルサーバーでもセッション変数は使えるものなのでしょうか。どうも上手くセッション変数がフォルダに保存されません。無料レンタルサーバーでは不可なのでしょうか。 セッション保存先に「kaiintmp」というフォルダを作成しています。 そして、 session_start(); session_save_path("kaiintmp"); session_register("simei","pass"); $_SESSION[simei]=$simei; $_SESSION[pass]=$pass; のようにしていますが・・・。 自分のパソコンでは、セッション変数が作成されますがレンタルサーバーにUPしても作成されません。 レンタルサーバーにUPしたときのpathがダメなのでしょうか? レンタルサーバーでセッション変数を使用されている方おりましたら宜しくご教授お願いいたします。 特定のセッション変数の内容だけ破棄 $_SESSION['data1'] $_SESSION['data2'] $_SESSION['data3'] $_SESSION['data4'] このようにセッション変数が複数ある場合、session_destroy();を宣言するとすべてのセッション変数の内容が破棄されますが、例えば「$_SESSION['data1']と$_SESSION['data2']だけ」といったように、特定のセッション変数の内容だけを破棄することは出来ますか? AIは使う人の年齢や市場にも影響する?人工知能の可能性 OKWAVE コラム セッション変数のセキュリティ プログラム初心者です セッション変数の安全性について教えてください ログインしているかをセッション変数で判定しています。セッションidは使っていません 質問1 悪意をもったハッカーがセッション変数を取得することはできますか?それともセッション変数はクッキーと違い安全なんでしょうか? 質問2 セッション変数の保持時間は決まっていますか? session_start(); if(!isset($_SESSION['id'])){ header('Location: login.php'); exit(); } よろしくお願いします セッション中の1つの変数をunsetする にはどうしたらいいのでしょうか? session_unset() や session_destroy() はすべてのセッション変数がunsetされてしまいます 特定の1つの変数をサーバのセッションエリアからunsetするにはどうしたらいいのでしょうか? PHPでSESSIONによる変数の引き継ぎ PHPで問い合わせフォームを作ろうと勉強し始め、とりあえず簡単なものをと思っているのですが、入力フォームを作り次にチェックフォームへ移動した段階で以下の記述を入れています。 <?php session_start(); $_SESSION['name'] = $_POST['name']; echo htmlspecialchars($_SESSION['name']); ?> そしてチェックフォームの次のページで内容をメールで送るつもりなのですが、 チェックフォームから次のメールを送るページに移動した段階で <?php session_start(); echo htmlspecialchars($_SESSION['name']); ?> と記述しても、作成しているMacbookair2014では表示されているのですが、 スマホやWindowsでは表示されません。 どの環境でもチェックフォームまでは表示されているので、最後の引き継ぎがきちんと出来ていないだけだと思うのですが、何が足りないのでしょうか? 分かりにくい文章で申し訳ありませんが、どなたかお分かりの方ご回答よろしくお願いします。 情報が足りなくて分からない場合はすぐに答えます。 SESSION変数について プログラム初心者です htmlspecialcharsを省略するか迷っています SESSION変数を表示するときはhtmlspecialcharsを使ったほうがいいでしょうか? $id = htmlspecialchars($_SESSION['id'], ENT_QUOTES); echo $id; よろしくおねがいします PHPの入力フォームのセッションによる値の受け渡し PHPの入力フォームに関するフォームの 値の受け渡しについての質問です フォームのフィールドの値の名前はtitleです で$_POSTで値を受け取って$_SESSIONに値を 格納、変数で出力という感じにしたいと思い こう書きました <?php session_start(); $_POST['title']=$_SESSION['tit']; $_SESSION['tit']=$title; ?> <html> <head> <title>test</title> </head> <body> <?php echo $title; ?> </body> </html> こう書いたのですが、値が表示されません 画面が真っ白になってなにも見えないです なにがおかしいのか教えてください issetはあえて使わず書いたのですが それがいけなかったのでしょうか? セッション使用時のフォームのデータ PHPでsession_start();とした後のフォームで、その後にフォームで入力したデータをPOSTで送って確認画面を表示したとします。 ここで、最初のsession_start();がなければ、ブラウザの戻るボタンで前のフォーム入力画面へと戻っても、入力したデータは保存されたままですが、session_start();とした後では、入力したデータが全てクリアされてしまうようです。 ちょっと修正したい時に、すべてクリアされてしまうとかなり不便なのですが、何かよい方法はないものでしょうか?セッション変数にPOSTするデータを保存する以外で方法はないものでしょうか? SESSION変数の2次元配列 ソースコードに $_SESSION[’place'][1][2] と記述されていました。 記述内容を考えていたのですが $_SESSION[’place']に、[1][2]=値 の2次元配列を格納するという 考え方で間違いないでしょうか? $_SESSION[’place'][1][2] は、3次元配列( =多次元配列)ではないと、いう考え方で あっていますでしょうか? よろしくお願いします。 セッション変数が表示されない ●質問の主旨 セッション変数が表示されないのはなぜでしょうか? ご存知の方、ご教示願います。 ●質問の補足 セッション変数を表示させるために 下記のドットインストールの動画の手順に沿って、 コードの打ち込みやリロードを行っていますが、 "dradra35"という変数は表示されません。 ただ真っ白な画面が出るだけです。 変数を表示させるためには、どうすれば良いのでしょうか? 0:54で紹介されている真っ白な画面のところまでは、 その通りになっています。 ドットインストール PHP入門(応用編) #07 セッションを使ってみよう http://dotinstall.com/lessons/basic_php_advanced/6907 ●開発環境 ・windows8 ・xammp1.8.1 ●コード <?php session_start(); //$_SESSION ['userName']="dradra35"; echo $_SESSION['userName']; 注目のQ&A 「You」や「I」が入った曲といえば? Part2 結婚について考えていない大学生の彼氏について 関東の方に聞きたいです 大阪万博について 駅の清涼飲料水自販機 不倫の慰謝料の請求について 新型コロナウイルスがもたらした功績について教えて 旧姓を使う理由。 回復メディアの保存方法 好きな人を諦める方法 小諸市(長野県)在住でスキーやスノボをする方の用具 カテゴリ [技術者向] コンピューター プログラミング・開発 Microsoft ASPC・C++・C#CGIJavaJavaScriptPerlPHPVisual BasicHTMLXMLCSSFlashAJAXRubySwiftPythonパフォーマンス・チューニングオープンソース開発SEOスマートフォンアプリ開発その他(プログラミング・開発) カテゴリ一覧を見る OKWAVE コラム 突然のトラブル?プリンター・メール・LINE編 携帯料金を賢く見直す!格安SIMと端末選びのポイントは? 友達って必要?友情って何だろう 大震災時の現実とは?私たちができる備え 「結婚相談所は恥ずかしい」は時代遅れ!負け組の誤解と出会いの掴み方 あなたにピッタリな商品が見つかる! OKWAVE セレクト コスメ化粧品 化粧水・クレンジングなど 健康食品・サプリ コンブチャなど バス用品 入浴剤・アミノ酸シャンプーなど スマホアプリ マッチングアプリなど ヘアケア 白髪染めヘアカラーなど インターネット回線 プロバイダ、光回線など