• ベストアンサー

セッションについて。

セッションとは何ですか? ログイン画面から飛んでページにいくごとに 毎回パスワードをとてらしあわせるのに使えると 聞いたのですがそのやり方がわかりましたら 教えてください。

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

  • ベストアンサー
  • itohh
  • ベストアンサー率45% (210/459)
回答No.2

こんにちは。itohhといいます。 セッションとは。 ページとページのデータの受け渡しは、一般的にCookieやformデータ(inputタグなど) で行います。 しかし、IIS/ASPでは、サーバ側にセッション変数として記憶することができます。 セッション変数の利点は、ユーザIDやパスワードなどの秘密にしたいデータをブラウザと サーバの間で持ちまわらなくて良いことです。 (セキュリティがアップしますよね。) また、セッション管理を行うと、初回のアクセスのときに特別な処理を動作させることが できます。 この機能を利用してログイン画面を通らずに次画面に直接アクセス使用とした場合、強制 的にログイン画面に遷移させることが可能です。 例。 「ログイン画面」--「メニュー画面」--「個別画面1」                   --「個別画面2」                   --「個別画面3」                   --「個別画面4」 通常は個別画面4に移るには、 「ログイン画面」--「メニュー画面」--「個別画面4」 の順序で移らなくてはいけないが、「個別画面4」にブックマーク(お気に入り)して いる場合、セッション管理を行っていないと「ログイン画面」を通っているのかをチェック するのが大変です。 しかし、セッション管理を行っていると自動的にglobal.asaファイル内のSession_OnStart関数 が実行されるのでログインしていない場合は「ログイン画面」に遷移するようにすることが できます。 ただし、セッション管理を行うためには、セッションIDをCookieに設定しているため、 ブラウザがCookieを受け付けないといけません。 IIS/ASPの詳しい説明は、以下のサイトで勉強してください。 「MSDN online Web Workshop」 URL:http://www.microsoft.com/JAPAN/developer/workshop/default.asp

参考URL:
http://www.microsoft.com/JAPAN/developer/workshop/default.asp
noname#1886
質問者

お礼

ご意見ありがとうございました。 うまくセッションを利用することができました。 とても参考になりました。

全文を見る
すると、全ての回答が全文表示されます。

その他の回答 (3)

回答No.4

ANo.#3の補足です。 参考URLは、あくまで参考です(^ ^;) 使い方のヒントにでもなれば・・・と思います。 ASPの勉強をなさっている方に、PHPを勧めても・・・ という感じですね。 すみません。

noname#1886
質問者

お礼

ご意見ありがとうございました。

全文を見る
すると、全ての回答が全文表示されます。
回答No.3

こんにちは。 現在、私もPHPでのセッション関数の勉強をしているところなので、少しばかりアドバイスできるかと・・・ セッションとは、一言で言うのは難しいかと思いますが、具体的にどういう事ができるかというと、例えば、社内で社員のスケジュール管理をする際に個人別に、各々の情報を管理するとします。 その際に、他人のスケジュールを覗けてしまったり、また勝手に書き換えてしまう事があっては、大変です。(我が社では、簡単に覗けてしまいますが・・・^ ^;) そこで登場するのが、セッション関数で、ユーザー別にログインしたりする方法です。ユーザーIDとパスワードなどを用いて、ログインすると、その人がログインしている画面では、その人の分の情報の閲覧のみを可能にしてしまったりします。(もちろん必要に応じては、外の社員の情報を閲覧できるようにすることも可能なのですが。) ログイン中、ずっと『私は、○○よ。私の情報を見せてちょうだい。』と、マシーンに教えてあげるのが、セッション関数の仕事だと思います。 セッション関数があれば、ページが変わってもログインしたユーザーの情報を受け渡してくれるので、何回もログインする必要もないし、セキュリティ上でも、安心です。 また、Cookieなどは、オフにしているユーザーなどもいるので、あまりお勧めできないです。 下記のURLに、(PHPですが)セッション関数の具体的な使い方(ソースの記述方法)がありますので、参考にしてみて下さい。 的を得ない回答かもしれませんが、すみません。

参考URL:
http://www.hotwired.co.jp/webmonkey/2001/49/index2a.html
noname#1886
質問者

お礼

ご意見ありがとうございました。 PHPでもセッションというのがあるんですね。 参考になりました。

全文を見る
すると、全ての回答が全文表示されます。
  • bradpitt
  • ベストアンサー率33% (5/15)
回答No.1

セッションはSessionと書いて、そういうオブジェクトがあるってことだと思います。 (セッションって言葉だけ上げるといくつか他にあると思うけど、ASPだとSessionオブジェクト) セッション管理にSessionオブジェクトを使用できます。 って感じでもっと情報を得たほうが良さそうですよ。だって、すごい大きな質問だもの。 SessionとApplicationの二つがいろいろ使えるからそれを紹介してあるサイトとかで見たほうが良いかも。

noname#1886
質問者

お礼

ご意見ありがとうございました。

全文を見る
すると、全ての回答が全文表示されます。

関連するQ&A

  • セッションについて

    php初心者&ど素人です 勉強のためにphpとmysqlで簡単なログイン機能を作ってみようと思いました しかし、Locationでページ移動したときのセッションがセキュリティ的に安全なのかわかりません ログインフォームのlogin.phpから自分自身に送信、ログインできたらセッションを付けてから header("Location:hoge.php");でhoge.phpに飛ばしています ログインした後のhoge.phpページではログイン確認をセッションidがあるかだけ確認しています セッションidがなかったらログインページ戻す if(!$_SESSION['id']){ header('Location: login.php'); exit(); } 質問1 セッションidは表示されている誰でも見れるidなのでセキュリティ的にまずいですか? 簡単にセッションのっとれるもんなんでしょうか? 質問2 一般的にはどうやているのでしょうか? ログインページ全て(例えば編集画面とか会員情報とか)にmysqlから暗号化されたパスワードを取得して、それをセクションに入れて、また、mysqlからパスワードと照合したりしてるんでしょうか? よろしくお願いします

    • ベストアンサー
    • PHP
  • httpセッション

    失礼致します。 セッションについてお聞きします。 httpsessionの受け渡しについてなのですが、画面jspページから ログイン名とパスワードを取得し、サーブレットに渡しています。 サーブレットの書き出しは次のようになっています。 public void doGet(HttpServletRequest req, HttpServletResponse res) throws ServletException, IOException { HttpSession session3 = req.getSession(true); ・・・ このあとsession3セッションにパスワードをセットし、 jspページでセッションチェックした後falseならログイン画面に リダイレクトします。ここまでは出来ました。 ところが、このログイン名を文字列操作したいと思い、 サーブレットからjspページにディスパッチする前に一旦 文字列操作用javaページで文字列操作をしようと思いました。 ところが、サーブレットでない純粋なjavaページではhttpsessionが使えないことが分かりました。 HttpSessionを型に解決できませんと言われます。 この問題は一度は直面したことのある方も多いのではないかと思い、質問させて頂きました。 このような場合、どのように対処されていますでしょうか?

  • セッション情報について

    現在、ユーザー名とパスワードを入力し自分専用のページにログインするようなサイトを作成しています。 top画面A⇒ログイン画面B(新しい画面)⇒専用ページC ログインが成功した時点で2画面AとCが存在します。 Cではログインした際、状態識別としてセッション変数に値を入れています。 そこで、C画面をログアウトからでななく、直接ブラウザの×ボタンにて閉じると、上記で設定したセッション変数が残っているため、アドレスバーにCのURLを直接記述するとなんなくログインできてしまいます。 上記をできなくする方法などはないでしょうか? 分かりづらい説明で申し訳ありませんが、宜しくお願い致します。

    • 締切済み
    • PHP
  • セッションをログインについて

    はじめまして。 今、セッションを使ったログインのページを作っています。 流れは、 1.ログインページでIDとパスワードを入力。 2.入力したID・パスワードがあらかじめMysqlに保存してあったのと一致していたら会員ページに移動。 3.セッションにID・パスワードを保存してブラウザを閉じない限り、次回はログイン無しで会員ページに直接いけるようにする。セッションに保存されてないときはログインページにもどす。 以上の流れにそってプログラムを作りました しかし1・2は上手くいったのですが3の部分がうまくいきません。セッションにIDとパスワードを保存することができてるようなのですが、ブラウザを閉じずに、いったん別にページに行き、もう一度会員ページにもどろうとすると、ログインページ戻されてしまい、もう一度ログインしなければいけません。 以下に今回のプログラムを書きました。このプログラムのどこを直せば、いいのかお分かりになる方いらっしゃいましたらアドバイスのほうよろしくお願いします。 使用環境は PHP 5.2.5(xampp使用) MySQL 5.0.51a register_globals = Onになっています。 /*ログインページは省略しました。パスワードとユーザーIDを入力してこのページに飛びます。*/ <?php function redirect($url) { header("Location: ".$url); exit; } session_start(); /*保存していたセッションが存在するか確認なければログインのページにもどす。$_SESSION['username']) の部分を$_POST…にしたのですがそれでも結果は同じでした。*/ if(empty($_SESSION['username']) || empty($_SESSION['password'])) redirect("loginpage.php"); $user = $_POST['username']; $pass = md5($_POST['password']); /*Mysqlへ接続。セッションの問題が解決したらMysql用のクラスを作る予定です。*/ $dbHost = "localhost"; $dbUser = "*****"; $dbPass = "******"; $dbDatabase = "mysql"; $db = mysql_connect("$dbHost", "$dbUser", "$dbPass") or die ("Error connecting to database."); mysql_select_db("$dbDatabase", $db) or die ("Couldn't select the database."); $result=mysql_query("select * from users where username='$user' AND password='$pass'", $db); $rowCheck = mysql_num_rows($result); /*ID・パスワードが間違ってたら、ログインページに戻す。*/ if(empty($rowCheck)) redirect("loginpage.php"); $row = mysql_fetch_array($result); /*IDとパスワードをセッションに保存*/ $_SESSION['username'] = $user; $_SESSION['password'] = $pass; if($rowCheck > 0) { while($row = mysql_fetch_array($result)) { } /*ログイン成功したら会員ページを表示。*/ echo "Login Succeeded!".$_SESSION['username'];/*←セッションに保存されてるかのテスト。ちゃんと表示されました*/ include("C:/xampp/htdocs/cvptoylibrary.com.au/assets/includes/link1.php"); include("C:/xampp/htdocs/cvptoylibrary.com.au/assets/includes/link3.php"); } else { /*ID・パスワードを間違えてたらログインページに戻す。*/ echo 'Incorrect login name or password. Please try again.'; redirect("loginPage.php" ); } ?>

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

    PHP初心者です。 今、セッションについて勉強しています。 名前を入力してログインすると次のページに名前が表示するようにしたいのですが、表示されません。どうしたらよいでしょうか? ソース(ログインページ) <? session_start();// セッション管理の開始 session_register("namae1");//現在のセッションに1つ以上の変数を登録する ?> <? header("Content-type: text/html;charset=EUC_JP"); ?> <html><head><title>ログイン</title></head> <form action="sessiontop.php" method="post"> 名前: <input type="text" name="namae"><br><br> <input type="submit" value="ログイン"> </form> </body></html> ソース(名前が表示されるページ) <? session_start();// セッション管理の開始 header("Content-type: text/html;charset=EUC_JP"); //ディレクトリー内に入っているHTMLファイルは全てEUC-JPですという命令がブラウザに送信される。 ?> <html> <head> <title>セッションメインページ</title></head> <? $name = $_POST["namae"]; $_SESSION["s_name"]=$name; ?> <?= $s_name ?>さんこんにちわ<br><br> <a href="session3.php">ログイン画面に戻る</a><br> </body></html> よろしくお願いします。

    • ベストアンサー
    • PHP
  • セッションが切れないのは何故?

    画面にログインして操作中、セッションが切れた場合にまたログイン画面を表示するという処理のテストをしています。 タイムアウトまでの時間が24分となっていたので、画面にログインした状態でPCに触らず放置していました。 30分程度放置した後に次の処理に移るためのsubmitボタンをクリックしたところ、セッションは切れず処理が続行されてしまいました。 何故セッションは切れなかったのでしょうか? タイムアウトさせるには何か特別な処理を行わなければいけないのでしょうか? アドバイスをお願いいたします。

    • ベストアンサー
    • PHP
  • JSPとJavabeansによるセッション管理について

    今JSPとJavabeansを使ってログイン認証のプログラムを作ってます。 JSPのsessionスコープを使って一度ログイン画面で認証に成功すれば、セッション継続中はログインの必要なページに行ったとき認証されるというプログラムです(認証されてない場合ログイン画面に飛ぶ。jsp内でif文分岐) 認証成立した場合、javabeansに結果(true)を保存してします。 これでログイン認証は成功したのですが、別のページに行った後 再びログインの必要なページに行ったとします。 ここで問題なのですが、認証に成功しているのにエクスプローラーの更新ボタンを押さないと認証されません(つまりログイン画面に飛び、更新ボタンを押さないといけない)。 セッションは継続しているのに更新ボタンを押さないといけないのはなぜなのかわかりません。 だれかログイン認証のセッションのわかる人教えてください。お願いします。

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

    Weblogic10.0.3にてWebアプリケーションの 開発を行っていますが、解決しない問題があり 質問させていただきます。 現在、ログイン画面にてユーザーIDとパスワードを 入力してログイン後各処理を行うアプリを開発していますが、 ログイン時のユーザー情報をセッションに保持する作りに していますが、ログイン時にjsessionidがURLに 表示されてしまいます。 (例:http://testserver:9000/TestApp/Test.do;jsessionid=vFqyK3xMrJ9QCLJnW0X0r2w17ylBVhhD2VQT4qGwdMsGvhnZHdJQ!-425034523) 一度ログインするとそのブラウザを閉じるまでは、画面遷移をしても 何度ログイン・ログアウト処理(セッションの生成・削除)を 行っても二度と表示されません。 (画面遷移はStrutsで制御しています) セッションIDをCookieに保持する方法もあるようですが、 なるべくCookieを使いたくないので、セッションに保持するように したいのです。 web.xml、weblogic.xml、Weblogicサーバーの設定などで セッションIDを表示しなくなる方法がありましたら 教えてください。よろしくお願いします。

  • phpのセッションについて質問です

    現在、phpのセッションについて学習しています。 開発環境はxamppでMySQLデータベースにPDOで接続しています。 セッションについていくつか質問があります。 セッションを使った認証の流れですが、 ログインフォーム画面で、session_start()し、ログインの認証が成功したらsession_regenerate_idで新しいセッションを発行⇒ログインが必要な画面でセッションの有無を確認 という流れで良いのでしょうか? セッションハイジャック対策にsession_regenerate_idをするようですが、 これは全てのページで毎回行ったほうが良いのでしょうか? セッションIDの受け渡しはcookieに保存する方法とURLに含む方法があり、 セッションハイジャック対策について記述しているサイトではcookieが推奨されている雰囲気ですが、 PHPマニュアル(http://php.net/manual/ja/session.idpassing.php)では信頼性がないとあります。 どちらを使うのが良いのでしょうか? セッションの有無のチェックはsession_start()を記述するだけでサーバーが行ってくれるのでしょうか? $SESSIONにセッションIDを保存してissetで調べるといった記述が必要なのでしょうか? メールアドレスとパスワードでのログイン認証を実装したいのですが、 その場合、マイページでユーザー情報を表示したい際、ログイン時に入力したメールアドレスを$SESSION[email]に格納し、マイページのphpプログラムにて、$SESSION[email]に格納されたメールアドレスを検索条件にしてSELECTで他の情報を取得したら良いのでしょうか? メールアドレスを$SESSION変数で受け渡しするのはセキュリティ上危険でしょうか?(危険であれば内部管理用のユーザーIDを$SESSIONに格納してデータを取得しようと思います。) 基本的なセッションの知識がないため、質問の数が多くなってしまいましたが、 答えられる範囲で良いのでご回答頂けると有難いです。

    • ベストアンサー
    • PHP
  • 携帯サイトでsessionは使用可能か

    HTML・PHPで3キャリア対応携帯サイトを作成しているのですが、session_id()などのセッション関連は携帯サイトでも使用できるのでしょうか? 例えば、ログインページで入力フォームの値(IDとパスワード)をsesession_id()で次のページに渡す際(header("Loca"))、PCのブラウザ(IE)では値を渡せ、かつ、次のページに進んだのですが、i-modeのエミュレータ(imodetool)では、次のページに移らず、ログイン画面に戻ってしまいます。 なお、ソースは以下のように記述しています。 if($_POST["name"] == XXXX) { session_start(); $_SESSION["user_id"] = $_POST["name"]; header("Location: http://xxxxxxxx.php?id=". session_id()); exit(); } お手数ですが、回答頂けると幸いです。 よろしくお願い致します。

    • ベストアンサー
    • PHP