• 締切済み

session_unregisterとunsetの違い

表題の件で質問させて下さい。 ttp://php.s3.to/man/function.session-unregister.html を参考にしているのですが、 「session_unregister() は現在のセッションから name という名前のグローバル変数の登録を 削除します。」 と 「この関数は、nameに対応するグローバル変数 の登録を削除しません。」 で矛盾しているように思えます。 意識して使い分ける必要はありますでしょうか。

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

みんなの回答

回答No.1

今私もそのページを見て、自分なりに考えてみただけなのですが、 session_unregisterは、セッション内に既に保存されている情報としてのnameをセッションから削除するだけの関数であり、既に登録されているグローバル変数の登録自体を削除するものではないです。 なので、グローバル変数自体を空にしたいのならunset()を使ってくださいね。 という意味ではないのでしょうか? 違っていたらすいません。

kyouju
質問者

お礼

doutalakoutalaさん、返信ありがとう御座います。 理解することが出来ました。

関連するQ&A

  • sessionの使い方

    PHP4でセッションに変数を入れる方法を教えて下さい! $nameという変数をセッションで持ちたいです。 宜しくお願いします。

    • ベストアンサー
    • PHP
  • SESSION受け渡し

    SESSION受け渡し 毎回大変お世話になっております。 PHP初心者なので、変な質問になっているかもしれないのですが、どうか分かる方はお付き合いください。 環境 PHP 文字コード:Shift-JIS SESSION01.php から SESSION02.php へSESSIONを受け渡した場合、統一されるはずのSESSION変数($_SESSION["name"])が2つ作成されてしまい、別々の変数として扱われてしまいます。 ・ソース SESSION01.php(SESSION送信側) <?php session_start(); $_SESSION["name"] = "1"; echo $_SESSION["name"];  ←変数の中身は[1] ?> SESSION02.php(SESSION受信側) <?php session_start(); echo $_SESSION["name"]; ←変数の中身は何も無し ?> ・SESSIONのディレクトリ sess_eo683vtfgl5qk6d2o31ghcjpn7     1KB sess_nq1cikn5uhdlnc9uvii6b8l281     0KB SESSION変数($_SESSION["name"])をSESSION01.phpとSESSION02.phpの両方で同じ変数として扱いたいのですが、別々の変数の様な扱いになっております。 なぜSESSION変数が統一されていないか分かる方がいらっしゃいましたら、どうかご意見をお聞かせください。

    • 締切済み
    • PHP
  • バーチャルホストでの SESSION変数名

    現在バーチャルホスト内にて3つのWEBサイトが入っているサーバーがあります。 1つ目のサイトから2つ目のサイトへリンクをクリックして移動した場合にはSESSION変数名が同一の場合にはそのSESSION変数が有効となってしまいます。 例えば http://www.one.php/ $_SESSION['USER_NAME'] = '佐藤' http://www.two.php/ に$_SESSION['USER_NAME'] があると 佐藤が表示されてしまう。 つまり、サイト毎でSESSION変数名が同じであっても 別のSESSION変数としてスコープ等設定できるのでしょうか。 バーチャルホストにてPHPで、SESSIONを扱う場合はどうしたらよいのでしょうか。 環境 RedHat7.2 php4.3.10

    • ベストアンサー
    • PHP
  • PHP SESSION変数の削除について

    PHPでブラウザを×で閉じた場合、SESSION変数 の廃棄はどうすればよいのでしょうか? ガーペジコレクション(PHP.INI等の設定)に任せておけばよいのでしょうか? ちなみにログアウトの際は下記のプロシジャを実行しています。 ----------------------------- <?php session_start(); // セッション変数を全て解除する $_SESSION = array(); // セッションを切断するにはセッションクッキーも削除する。 // Note: セッション情報だけでなくセッションを破壊する。 if (isset($_COOKIE[session_name()])) { setcookie(session_name(), '', time()-42000, '/'); } // 最終的に、セッションを破壊する session_destroy(); ?> -----------------------------

    • 締切済み
    • PHP
  • セッションについて

    セッション関数は、とても便利な機能ですが、 プログラミングする上で、意識なく多用しても問題ないのでしょうか? 質問の意図は、例えばログインしたユーザーの登録情報等の値を20個位セッションにセットするようなコーディングをしたとして、 同時に1000人位のユーザーがアクセスした場合、システムへの負荷は?(変数と同等に使用してもいいのでしょうか?) a.意識する必要なし b.なるべくセッション関数は使わないほうがいい c.その他 専門的な事はわからないので、簡単に教えて頂けると助かります。 よろしくお願いします。

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

    PHPのセッション終了について http://c-brains.jp/blog/wsg/08/05/22-193020.php こちらのサイトでPHPを勉強しています。 セッションについてなのですが、セッションの開始と関数の働きはつかめたのですが、セッションの終了について不明な点があります。 <?php // セッションの開始 session_start(); // セッション変数の初期化 $_SESSION = array(); // セッションファイルの削除 session_destroy(); ?> この部分なのですが、セッション変数の初期化のみの記述では何がいけないのかが分かりません。 $_SESSION = array(); のみの記述で試してみたところ、$_SESSION に含まれていたキーを呼び出しても中身を出力しなかったので、ちゃんと中身は消えたと思うのですが、この場合、session_destroy()を実行する意味はあるのでしょうか? 何卒ご教授いただけますようお願い致します。

    • ベストアンサー
    • PHP
  • SESSION の受け渡し

    初心者ですので、見当違いの質問の場合はご容赦ください login.php(ユーザ認証) cart.php(ショッピングカート) という構成でSESSION変数の受け渡しを行いたいのですが login.php で認証確認後、 session_start(); $_SESSION['su_id'] = $u_id ; $_SESSION['su_name'] = $u_name ; のように設定の上 require "./cart.php"; でcart.phpを呼び出し(?)ています require直後のcart.phpの初期状態では $_SESSION['su_id'] 、$_SESSION['su_name']ともに正しく表示しますが submit等(次ページ表示などで)で再表示を行うと $_SESSION['su_id'] 、$_SESSION['su_name']が引き継がれません cart.phpにおける session_start()時に、新しいIDに置き換わっているからだと思いますが このようなケースではどういう処置を行えばよいのでしょうか? 幼稚な質問かどうかすら判断できていないのですが コメントを頂ければ助かります よろしくお願いします

    • 締切済み
    • PHP
  • PHPのセッションについて質問させてください。

    PHPのセッションについて質問させてください。 現在、ショッピングカートをPHPで作っているのですが、利用者のセッションIDに関連づけられているセッション変数の一覧を表示したいと思っているのですが、なかなかうまくできません。 msession_list()という関数も発見したのですが、エラーが出てしまいます。 サーバーに保存してあるセッション変数の一覧を取得するにはどうしたら良いのでしょうか? よろしくお願いします。

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

    PHPのセッションについてご教授ください。 session_start()の前でセッション名の変更を行うと、セッションidが受け渡されず、次ページが新規セッションとなってしまいます。クッキーを使った解決法を探してます。 セッション名を変更した場合、どのように解決すればよいでしょうか。初心者なのですが、一生懸命勉強中なので、宜しくお願いします。 開発環境: apache2.2 php 5.2 ページ1ソース <?php function main(){ session_name('member'); <= この行をコメントアウトすると、受け渡しできます session_start(); $_SESSION['test'] = 'test'; } main(); ?> <a href="sesstest2.php">test</a> ページ2ソース <?php session_start(); echo $_SESSION['test']; ?>

    • ベストアンサー
    • PHP
  • docomoのセッションが切れてしまうのは?

    携帯サイト用のセッションでdocomoの時だけ思うように フォームによるページ遷移ができません。 色々試してみたのですが、サッパリです。 どなたかお知恵をお貸し下さい。 例) -- page01.php -- session_name( "test" ); session_start(); session_regenerate_id(true); $test = session_name()."=".session_id(); if ( ( $smp01 = auth() ) == FALSE ) { header( "Location: ./test.php?redirect=index_test.php?" ); exit; }←ログイン時の処理(ユーザー定義関数にて) ・        ・        ・        ・ <form action="page02.php?<?= $test ?>" method="get" /> 入力:<input name="test01" type="text" value="" /> <input name="smp02" type="submit" value="next" > </form> ↑入力させてpage02.phpにて処理 上記のようにしているのですが、 submitするとログイン時の処理に掛かってセッションが切れてしまい ログインページに戻ってしまいます。 ログイン時の処理を削除するとpage02.phpへと遷移します。 ログイン時の処理を残したままセッションが切れずにフォームによる ページ遷移ができるようにするにはどのようにすれば良いのでしょうか? よろしくお願いします。

    • ベストアンサー
    • PHP