同一ドメインで、フォルダごとに別のセッションを利用したいと思っています。
フォルダ構成
| 列1 | 列2 | 列3 |
|---|---|---|
| 第1階層 | A | |
| 第2階層 | B | D |
| 第3階層 | C | E |
第2階層のBファイル
<? session_name("hoge"); session_start(); $_SESSION["b"]="b";
第2階層のDファイル
<? session_name("piyo"); session_start(); $_SESSION["d"]="d";
第3階層のC/Eファイル
<? var_dump($_SESSION);
質問は、
上記の例の場合、第3階層のC/Eファイルに、
session_name();とsession_start();
は必要でしょうか。
.
.
いままで、同一ドメインでは1つのセッションしか使ったことがありません。
最近、phpを使ってなかったので記憶が定かではないのですが、
一度、session_start();をすると、どこでも$_SESSIONが使えたと記憶しています。
しかし、session_name()で名前を付けると、
Warning: Undefined array key ・・・
が出たりでなかったりします。
.
.
session_start();は、ファイルごとに記入するのでしょうか。
もし違う場合、フォルダごとに違うセッションを使う場合、
どうすればセッションを使い分けることができるのでしょうか。
よろしくお願いします。
「違うセッションを使う」とはどういう運用を想定されてるのでしょうか。
ネットショップとその管理画面です。
色々調べた結果、管理画面は、サブドメインを使えば解決することがわかりました。
しかし、今後の知識のために質問しました。
質問に編集して追記を。
セッションってあくまで「そのブラウザ」という単位で管理されるものなので、ブラウザを変えれば無関係です。
ただ、そもそも管理画面とネットショップの画面って利用するユーザーが違うのでは?
ユーザー自体の区分を変えてしまえば競合することはないと思うのですが。
サーバーの設定云々ではなく設計の問題にも思います。
質問は、同一ドメインで、フォルダごとに別のセッションをする方法です。
xamppでいろいろ試していますが、思ったような結果になりません。
だから、質問しました、誰も設計の問題を聞いているのではありません。
設計の問題なら、サブドメインやネットショップと管理でセッションを
$_SESSION["shop"],$_SESSION[”admin"]などを使えば解決すると思います。
今回の知識は、ほかのところで考えています。
たとえば、同じ環境で簡単なプログラム試して覚書で残す場合などです。
質問内容を、設計などに変える場合、まず質問に答えてからにしてください。
>質問に編集して追記を。
これをすると、今回の質問の意図が変わります。
私の知りたいのは、
同一ドメインで、フォルダごとに別のセッションをどうすればうまくいくかです。
とりあえず session_set_cookie_params で設定できるようです。(でも、バグの温床になりそうで怖い…。)
https://stackoverflow.com/questions/5479626/same-domain-different-folder-php-session
質問内容を変更するのではなく、手掛かりをありがとうございます。
session_set_cookie_paramsのpathを調べると「/」になっています。
そのため、そのフォルダ以下は、同じsession_nameだと思ったのですが違うようです。
session_name("hoge");を指定せずに、echo session_name();をすると、
初期設定のPHPSESSIDが表示されます。
ちなみに参考にしたサイトは
https://www.projectgroup.info/tips/php/comm_0010.html
回答1件
あなたの回答
tips
プレビュー