• 締切済み

セッション機能で

セッション機能を利用するときに、セッション変数を宣言しますよね。 セッション変数を配列として使いたい場合にはどのように宣言すればよいのでしょうか? 実際のスクリプト内では session_start(); session_cache_limiter('limit'); session_register("hoge"); のように記述していますが、どうもうまく動作しません。 何か間違っている点があればご指摘・アドバイスをいただければありがたいです。 よろしくおねがいします。

  • avalo
  • お礼率7% (1/13)
  • PHP
  • 回答数3
  • ありがとう数2

みんなの回答

  • four
  • ベストアンサー率33% (1/3)
回答No.3

すみません! 配列についてですよね、セッションについてと 勘違いしてしまいました。。。 $_SESSION["hoge"][0] = "xxxx";//通常の配列 $_SESSION["hoge"]['test'] = "yyyy";//連想配列 var_dump($_SESSION["hoge"]);//中身確認

  • four
  • ベストアンサー率33% (1/3)
回答No.2

session_cache_limiter('limit'); の'limit'がおかしいのではないのでしょうか? nocache,private,publicは指定できますが、 limitは無かったと思います。

回答No.1

PHP のヴァージョンはいくつですか。 4.1.0以降なら、$_SESSION["hoge"]とかで アクセスすれば、session_register("hoge")とか 不要だし、わかりやすいと思うのですが。

参考URL:
http://search.net-newbie.com/php/ref.session.html

関連するQ&A

  • セッション機能が使えない

    セッション機能を使って開発していたのですが、どうも思うように動作しないので、書籍に載っていた簡単なプログラムを試してみましたが動作しませんでした。 <書籍のソース> <?php session_name("MYSESS"); session_start(); if(!session_is_registered("access")) { session_register("access"); $access=1; } else { $access++; } ?> <html> <body> <p><?=$access?>回目の訪問です</p> <p><a href="sample.php?<?=SID?>">ここをクリック</a></p> </body> </html> 実行すると、「1回目の訪問です」と出て、クリックしても1回目のままで、増えることがありません。 <php.iniのsessionに関する部分の設定> [Session] session.name=PHPSESSID session.auto_start=1 session.serialize_handler=php session.gc_probability=1 session.gc_divisor=100 session.gc_maxlifetime=1440 session.bug_compat_42=0 session.bug_compat_warn=0 session.cache_limiter=nocache session.cache_expire=180 session.use_trans_sid=0 セッションデータは、ファイルとしては保存されていますが、中を見ると access|N; となっています。 他にもスクリプトを試しましたがすべてこのファイルのデータはNのままで値が保存されることがありません。 お気づきの点がありましたらご指摘をお願いいたします。

    • ベストアンサー
    • PHP
  • インラインフレームにセッション変数を渡す

    インラインフレーム使ってるのですが Warning: session_start() [function.session-start]: Cannot send session cache limiter が出てしまいます、 フレーム呼び出し側もインラインフレーム側も一番先頭に session_start(); を記述してるのですが、インラインフレームの場合、何かコツがあるのでしょうか? ご多忙中とは存じますが宜しくお願いいたします 説明不足の部分がありましたら補足入れますのでご指摘お願いいたします

    • 締切済み
    • PHP
  • セッション変数

    $_SESSION['name']=test $_SESSION['pass']=pass というようにセッション変数に、nameとpassを作成しました。 セッション変数とは、配列と考えてもいい物なのでしょうか それとも、一個一個の変数と考えるべきなのでしょうか。 よくセッション変数と言われますが、記述のされ方が配列と同じようにみえるので気になりました。 ・SESSION配列? ############################# | name = 'test'  | pass = 'aaa' | ############################# ・SESSION変数? ###############   ############# |  name = 'test' |   | pass = 'aaa' | ###############   ############# どちらが正解なのでしょうか?

    • 締切済み
    • PHP
  • session_cache_limiterの使い方

    警告 ページの有効期間切れと表示される場合は session_cache_limiter('private'); という1文を追加すればいいとあったので、ソースの1番上に追加しました。 それで、あるページでセッション変数を定義して、別のページではそのセッション変数があるかないかで何か処理を動かすということをやりたいのですが、セッション変数が無い状態でキャッシュされている(キャッシュの使い方が違っていたらすみません)ようで、その処理を動かすためには1回更新をかけないといけません。この場合はどのようにしたらいいのでしょうか?

    • 締切済み
    • PHP
  • セッションが変数が取得できません

    こんにちは。初心者で大変申し訳ないのですが、2日間悩みましたがどうしても解決できないため質問させて頂きました。どうかご教授下さい。 PHPのセッション機能の利用をしようと以下のような環境でテストスクリプトを実行したのですが、うまくいきません。 PHPバージョン4.3.10 register_globals On session.auto_start Off session.bug_compat_42 On session.bug_compat_warn On session.cache_expire 180 session.cache_limiter nocache session.cookie_domain no value session.cookie_lifetime 0 session.cookie_path / session.cookie_secure Off session.entropy_file no value no session.entropy_length 0 session.gc_divisor 100 session.gc_maxlifetime 1440 session.gc_probability 1 session.name PHPSESSID session.referer_check no value session.save_handler files session.save_path /tmp session.serialize_handler php session.use_cookies Off session.use_only_cookies Off session.use_trans_sid On SESSION登録側スクリプト <?php session_start(); $_SESSION['tarou'] = 50; ?> <a href="test.php">test</a> 結果表示側スクリプト <?php session_start(); echo($_SESSION['tarou']); ?> session.use_trans_sid Onで透過的にURIにセッションIDを埋め込むタイプで、 セッションファイル自体は作られているのですが セッション変数は登録されておらず、空のセッションファイルとなってしまっています。 色々と調べてみたのですがどうしても解決できません。 大変お手数ですがどうか宜しくお願い致します。

    • ベストアンサー
    • PHP
  • セッションの有効期限

    Linux7.2 + PHP4.2(DSO版)+ Apacheを使用しセッション管理を使用した認証機能を制作しています。 session.cache_expire = 180としているのに ログイン後20分くらいでセッションが切れる現象が生じています。 プログラム上では特別なことはしていません。 session_start(); session_cache_limiter('nocache'); を先頭に書いているだけです。 以下、php.iniのセッション関連の設定です。 どなた方この現象についてご存知でしたら教えて下さい。 宜しくお願いします。 session_auto session.save_handler = files session.save_path = /tmp session.use_cookies = 1 session.name = PHPSESSID session.auto_start = 0 session.cookie_lifetime = 0 session.cookie_path = / session.gc_probability = 1 session.gc_maxlifetime = 1440 session.referer_check = session.entropy_length = 0 session.entropy_file = ;session.entropy_length = 16 ;session.entropy_file = /dev/urandom session.cache_limiter = nocache session.cache_expire = 180 session.use_trans_sid = 0

    • 締切済み
    • PHP
  • session_start関数について

    現在、セッション管理を使ったサイトを作成中なのですが セキュリティソフトによるものと思われるのですが ノートンが搭載されているPCだと Warning: session_start[function.session-start]: Cannot send session cache limiter - headers already sent … というエラーが表示されてしまいます。 トレンドマイクロ、マカフィーでは、 上記のエラーは表示されず、正常に動作しているので コーディングには問題ないと思われるのですが やはり、コーディングに問題があるのでしょうか どうぞ、よろしくお願いします。

    • 締切済み
    • PHP
  • セッションIDがクッキーに渡るタイミングについて

    セッションIDが、クライアントPCのクッキーに書き込まれるタイミングについて、 教えてください ▼セッションを開始したとき ・session_start(); ▼セッション変数に、何かを格納したとき ・$_SESSION["HOGE"] =○○ ▼PHPの処理が終了したとき ▼セッションが終了したとき ▼それ以外

    • ベストアンサー
    • PHP
  • session_start()でwarningが表示されてしまいます。

    phpファイルの冒頭で<?php session_start() ?>と 記述しているのですが、 Warning: session_start() [function.session-start]: Cannot send session cookie - headers already sent by (output started at ファイル名) in ファイル名 Warning: session_start() [function.session-start]: Cannot send session cache limiter - headers already sent (output started at ファイル名) in ファイル名 とwarningが出てしまいます。 warning中のheaders already sent byにヒントがあるとは感じるのですが、その意味が理解できません。 どなたかお詳しい方宜しくご教示くださいませ。

    • ベストアンサー
    • PHP
  • session_startでエラー

    session_start()をファイルの頭に書いているのですが、Cannot send session cookie - headers already sentとCannot send session cache limiter - headers already sentというエラーが出てしまいます。 session_start()のまえに、ブラウザ出力を行うとエラーが出るという事だったのでファイルの頭に書いたのですがエラーが出てしまいます。 こういう場合、他にどういった原因が考えられるのでしょうか。 よろしくお願いします。

    • ベストアンサー
    • PHP

専門家に質問してみよう