スレッド表示 | フラット表示〕 全トピック 920 件中 793 番目 次≫ ≪前

sessionについて教えてください。

created: 2003-09-25 08:16 | modified: 2003-09-26 16:01 | reply: 4

[698] sessionについて教えてください。

user: めぐ | created: 2003-09-25 08:16
セッション変数のスコープってどうなっているのでしょうか?
ファイルの先頭でsession_start()してサブルーチン内でセッション変数やSIDを取ろうとしたら何も取れません。またその逆もあって共通化しようと思いrequireしてるサブルーチン内でsession_start()してみたのですがやはり駄目でした。
通常セッションとはこういう使い方はしてはならないものなのでしょうか?
reply: 699 返信 編集 削除

[699] もう少し情報を…

user: hamaji | created: 2003-09-25 09:15
まずはPHPのバージョンとOSを教えてください。それとエラーか何かは出ますか?出ているならばその内容を教えてください。
それとphp.iniの設定はどうなっていますか?
session_start()を使っているという時点PHP4だと思いますが。。。
あとはphpinfo()でregister_globalsの値とSESSIONの設定を確認してください。
register_globalsがoffとonでは動きがまったく異なります。
あとsession.save_pathの設定は?
OSがwindowsならC:/tmpなど
linuxなら/tmpなど
> セッション変数のスコープってどうなっているのでしょうか?
セッションや、クッキーはスーパーグローバル変数と呼ばれています。
http://www.php.net/manual/ja/language.variables.predefined.php
を見てください。

> ファイルの先頭でsession_start()してサブルーチン内でセッション変数やSIDを取ろうとしたら何も取れません。またその逆もあって
>共通化しようと思いrequireしてるサブルーチン内でsession_start()してみたのですがやはり駄目でした。
サブルーチンとはユーザ定義関数のことですか?それともサブクラスのことですか?
簡単な関数を作ってそこからセッションの値を取得しましたが問題無しでしたよ。
ただし関数内でsession_start()を使うと思うように動きません。通常はこんな使い方はしないほうがよいとおもうのですが。。。
http://www.php.net/manual/ja/ref.session.php
をもう一度よく読んでみてください。

あとregister_globalsがoffなら
session_register()関数などは使えません。
$_SESSION['変数名']でセッションの値を取得します。

とにかく現状をもう少し詳しく教えてください。
Parent: 698  reply: 701 返信 編集 削除

[701] ありがとうございます

user: めぐ | created: 2003-09-25 21:51
詳しい解説ありがとうございます。
なんか知識不足だったみたいで本当に申し訳ありません。
>あとregister_globalsがoffなら
session_register()関数などは使えません。
$_SESSION['変数名']でセッションの値を取得します。
まさにこれでした。$_SESSION['変数名']で取る事ができました。教えてもらったとおりに関数内でstart_session()はやめました。
もう少しマニュアルをしっかり読んでみます。ご親切に本当にありがとうございました。
Parent: 699  reply: 702 返信 編集 削除

[702] 補足

user: hamaji | created: 2003-09-25 22:09
> まさにこれでした。$_SESSION['変数名']で取る事ができました。教えてもらったとおりに関数内でstart_session()はやめました。
> もう少しマニュアルをしっかり読んでみます。ご親切に本当にありがとうございました。
OKでしたか。よかったですね。

ちなみに補足ですが
register_globalsがoffのときは

セッション変数のセット
×session_register('変数名')
○$_SESSION['変数名'] = 値
セッション変数がセットされているかどうか調べる
×session_is_registerd()
○isset($_SESSION['変数名'])
セッション変数を破棄する
×session_unregister()
○unset($_SESSION['変数名'])
となりますので注意してください。

ちなみにセッション変数を配列(連想配列)にするときは
$_SESSION['変数名'][インデックス名]
などとして扱います。
もちろんセッション変数はインデックスが数字の普通の配列や二次元配列なども扱うことができます。
Parent: 701  reply: 713 返信 編集 削除

[713] ありがとうございます2

user: めぐ | created: 2003-09-26 16:01
ご親切にありがとうございます。
丁寧な説明で分かりやすいです。この辺に注意してやってみます。凄く困っていたので本当に助かりました。
どうもありがとうございました。
Parent: 702  返信 編集 削除
スレッド表示 | フラット表示〕 全トピック 920 件中 793 番目 次≫ ≪前
ページの一番上へ
Googleグックマークに登録 Yahooグックマークに登録 livedoorクリップに登録 @niftyクリップに登録 はてなブックマークに登録 deliciousに登録 Buzzurlに登録 FC2ブックマークに登録
最近更新された掲示板トピックス
管理人Blog
Yahoo Search

最近更新したNote
PHPマニュアル
今日のブックマーク
PHPマニュアル関数検索
関数名を入力し検索ボタンをクリック↑