No.3ベストアンサー
- 回答日時:
no.2の回答者の方は何かひどく勘違いされているようですが、
PHPを使っていて質問者さんのような状況はよくあることですね。
で、やはりsession_name()にて分けるべきでしょう。
ある一つのシステム(スクリプト)で共通して読み込むincludeファイルがあるなら、そこにsession_name()を使って任意のセッションネームを設定しておけば一番簡単ですね。
この回答への補足
ありがとうございます。
ちなみに同一のファイル(ページ)内で2つの違う名前のSESSIONを同居なんて無理でしょうかね?
例えば会員認証(ログイン)システムのPHPを全てのページに設置、それに加え一部のページに問い合わせシステムも置くとなると同じページに2種類の違うシステムがあるわけで、さすがにこれは同じ変数名じゃ無理かな… と予想しています。
たびたび申し訳ありませんがよろしくお願いいたします。
No.7
- 回答日時:
No5ですが、
session_name('a')は$_SESSION['var'] = 10
session_name('b')は$_SESSION['var'] = 20
これをccc.phpで利用したいのであれば、setcookie()を使えば
いいのではないでしょうか?
session_name()=session_id()を持ち運びさせないのであれば、
ユーザー側のクッキー設定に委ねられますので、もしユーザー側のクッキー設定がoffならセッションも継続できない事になりますので。
もちろんsession_name()=session_id()をhiddenやURIで常に持ち運びさせるのであれば、逆にsetcookie()を使うのは避けた方がいいと思います。
No.6
- 回答日時:
そのような場合は、
A) 「aaa.php」にて
session_name('test');
session_start();
$_SESSION['a'] = 10;
B) 「bbb.php」にて
session_name('test');
session_start();
$_SESSION['b'] = 20;
・・・としておき、「ccc.php」にて
session_name('test');
を実行すれば、$_SESSION['a']や$_SESSION['b']の値が使えます。
もちろん用途に応じて多次元配列にしてもいいですし。
No.5
- 回答日時:
質問の意図が外れていたらゴメンナサイ。
例えば、"山田太郎"というユーザーさんがログインしたとします。
$_SESSION['user']['name']="山田太郎"となります。
この時のsession_name()を"UID"としたとします。
次にお問い合わせフォームでは、session_name()を"FID"とした場合には当然$_SESSION['user']['name']は空の状態になります。
質問者さんはこの辺りは理解出来ていらっしゃると思いますが、同一セッション内で変数の競合を避けたい場合だと、完全に変数を分けるしかないと思います。ですが、メンテナンス性を考えた上で変数をわかりやすくしておけば、そんなに難しく考えなくていいのではないでしょうか?
ちなみに私は素直に多次元配列で区別させちゃってます^^;
この回答への補足
ありがとうございます。
もし、ANo.4 の補足の内容が無理であれば確かに多次元配列がいいような気がしてきました。
同じページでの実行がありえないシステム同士ならsession_name()で単純明快にOKですが、同一ページで互いのシステムが同居するかもしれない、となると $_SESSION['user']['name'] 方式のほうが無難なような…
その都度変数の重複にびくびくしながら作業というの大変ですし。
でも、session_nameが同じだとsession_destoroy() は使いにくいですね。全部消えちゃうので。
No.4
- 回答日時:
No.3の者です。
セッション・ネームは同じでも、セッション変数を複数用意すればOKです。
たとえば、ログイン・フラグを$_SESSION['login']に格納して、
問い合わせシステム用のフラグなりデータなりを$_SESSION['toiawase']などとすれば良いと思います。
おそらくセッション・ネームとセッション変数の区別がごっちゃになって理解されているように見受けられますので、一度リファレンスをしっかり読んでみることをおすすめします。
この回答への補足
すみません。具体的に書くと、
A) 「aaa.php」にて
session_name('a');
session_start();
$_SESSION['var'] = 10;
B) 「bbb.php」にて
session_name('b');
session_start();
$_SESSION['var'] = 20;
とした場合、
「ccc.php」にて、同時にこれら10、20の値を取得できるんだろうか?
という疑問でした。(はじめの質問からずれてしまい申し訳ないのですが…)
No.2
- 回答日時:
同一のシステム(ハードウェア上)で全く関係ない別なシステム(ソフトウェア)を動かすって事自体が間違っているかと・・・
予算の関係で別サーバーを用意できないのであれば
使用しているSESSIONの一覧を作る
ネームスペース的なものを使う
例えば、 $_SESSION[機能名][パラメーター名]
とかしておく
$_SESSION["user"]["step"]
と
$_SESSION["cart"]["step"]
見たいな感じ
お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!
関連するカテゴリからQ&Aを探す
おすすめ情報
- ・漫画をレンタルでお得に読める!
- ・人生のプチ美学を教えてください!!
- ・10秒目をつむったら…
- ・あなたの習慣について教えてください!!
- ・牛、豚、鶏、どれか一つ食べられなくなるとしたら?
- ・【大喜利】【投稿~9/18】 おとぎ話『桃太郎』の知られざるエピソード
- ・街中で見かけて「グッときた人」の思い出
- ・「一気に最後まで読んだ」本、教えて下さい!
- ・幼稚園時代「何組」でしたか?
- ・激凹みから立ち直る方法
- ・1つだけ過去を変えられるとしたら?
- ・【あるあるbot連動企画】あるあるbotに投稿したけど採用されなかったあるある募集
- ・【あるあるbot連動企画】フォロワー20万人のアカウントであなたのあるあるを披露してみませんか?
- ・映画のエンドロール観る派?観ない派?
- ・海外旅行から帰ってきたら、まず何を食べる?
- ・誕生日にもらった意外なもの
- ・天使と悪魔選手権
- ・ちょっと先の未来クイズ第2問
- ・【大喜利】【投稿~9/7】 ロボットの住む世界で流行ってる罰ゲームとは?
- ・推しミネラルウォーターはありますか?
- ・都道府県穴埋めゲーム
- ・この人頭いいなと思ったエピソード
- ・準・究極の選択
デイリーランキングこのカテゴリの人気デイリーQ&Aランキング
-
$_SESSIONと、POSTやGETの違い
-
HTTPヘッダー内での順番などに...
-
php4のセッション機能とブラウ...
-
http://hogehoge.com/page.php?...
-
PHPでの複数ページに渡るメール...
-
session_unsetを使う利点
-
PHP SESSION変数を複数使用でき...
-
URLのパラメータをGETのままで...
-
cookieについて教えてください
-
DTOとEntityの差は何ですか。
-
Dosブロンプトでtabを出力したい
-
wordの差し込み印刷で文字...
-
shシェルスクリプト 空白行の...
-
「取得先」という表現について
-
バッチファイルでpingの結果を...
-
【C#】DataGridViewの最大列数...
-
findstrのerrorlevel
-
syntax error, unexpected 'ech...
-
Yahoo! JAPAN IDを新規取得でき...
-
ログイン処理を自動で行い、目...
マンスリーランキングこのカテゴリの人気マンスリーQ&Aランキング
-
URLのパラメータをGETのままで...
-
Sessionの上限について
-
セッション ID とセッション名...
-
【PHP】SESSION変数の競合を...
-
セッションのスコープ(有効範...
-
ログイン画面をはさんだ後、自...
-
PHP cookieの値が更新されない...
-
セッション変数にパスワードを...
-
「戻る」ボタンで値の保持
-
ログインしたら他からログイン...
-
session_start()で生成されるセ...
-
POSTで情報を他のサーバーに渡...
-
二重ログイン管理について
-
複数のサーバで運営する場合の...
-
ブラウザを閉じた後もセッショ...
-
The session id contains inval...
-
複数ページでセッションを使わ...
-
セッション変数の命名規則
-
別ブラウザ間でセッションの値...
-
クッキーを使わないセッション...
おすすめ情報