バーチャルホストでのSESSION変数名

このQ&Aのポイント
  • バーチャルホスト内にて複数のWEBサイトがある場合、同一のSESSION変数名が有効となる問題が発生することがあります。
  • PHPを使用してバーチャルホストでSESSIONを扱う方法を知りたいです。
  • RedHat7.2とphp4.3.10の環境での解決策を教えてください。
回答を見る
  • ベストアンサー

バーチャルホストでの 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

  • ibdij
  • お礼率49% (25/51)
  • PHP
  • 回答数1
  • ありがとう数1

質問者が選んだベストアンサー

  • ベストアンサー
  • jone
  • ベストアンサー率42% (6/14)
回答No.1

試していませんが、個別にSESSIONファイルをご用意してみては?以下はどうでしょう?

参考URL:
http://php.s3.to/man/function.session-save-path.html
ibdij
質問者

お礼

ご回答ありがとうございました。 またお礼が大変遅れたこと失礼しました。 また、上記問題については変数名を変えるといった古典的な方法で脱出しました。 ありがとうございました。

関連するQ&A

  • ホスト名に"_"を含む場合のSession変数維持

    Windows 2000 Server環境を使用しています。 サーバーのホスト名に"_"を使用しており、ASPにてCookieが使用できないことを知りました。 単純にホスト名を変更すればよいのですが、他のアプリでも使用しており、変更することが難しいのが現状です。 Session変数がダメならとDimで試してみましたが、ページが偏移すると値は破棄されてしまいました。 ホスト名を変更せずにSession変数(またはDim)の値を維持させる方法はありませんでしょうか。 なお、Application変数は通るのですが、ユーザーごとに値が格納できないためNGとなりました。 宜しくお願いいたします。

  • 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
  • PHPのセッション変数について

    ページの構成が代わり、A-B-Cと順番だったのをA-Cと変更しました。 AからCリンクにとぶように設定したのですが、リンクを変更していてもBのページに行ってしまいます。 このプログラムを作った人に聞きましたところ、 if{session("user_sbt") というセッション変数で、新しく作られた画面のところで何もセットしていなければ初めの画面(B)に戻るというプログラムが走っているそうです。作った人に直してもらえたら良いのですが、事情で日本にはいないので、わかる方教えてください。よろしくお願いします。 PHPファイルの上部には session_start(); require_once("../_common/head.php"); require_once("../_common/mysql.php"); というセッション変数が記入されています。

    • 締切済み
    • 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
  • 変数名の付け方について

    例えば<input type="text" name="aaa">というフォームからのPOSTを受け取るとき、 自分はよく $aaa = $_POST['aaa']; のようにするのですが、変数名とフォームの名前を重複させるのは良くないでしょうか。 またPHPに限らずですが、別のスコープで同じ変数名を使い回すのは問題ないでしょうか。 グローバル変数は慎重に考えますが、ローカル変数はついhogeやtestを使い回してしまいます。 初心者なもので分かりにくい文章になったかもしれませんが、ご教授お願いします。

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

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

    • ベストアンサー
    • PHP
  • セッション変数にデータをセットする

    下記のPHPプログラムについて 1 <?php 2 // セッションを開始する 3 session_start(); 4 ?> 5 <html> 6 <head> 7 <title>セッション変数にデータをセットする</title> 8 </head> 9 <body> 10 <?php 11 // セッション変数にデータをセットする 12 if (!isset($_SESSION["name"])) { 13  echo "<p>セッション情報をセットしました"; 14  $_SESSION["name"] = "田中"; 15  } 16 echo "<p>名前:".$_SESSION["name"]; 17  18 // セッション変数にデータをセットする 19 if (!isset($HTTP_SESSION_VARS["name2"])) { 20  echo "<p>セッション情報をセットしました"; 21  $HTTP_SESSION_VARS["name2"] = "高橋"; 22 } 23 echo "<p>名前:".$HTTP_SESSION_VARS["name2"]; 24 25 ?> 26 </body> 27 </html> 実行すると 名前:田中 名前:高橋 となるのですが、なぜ13行目、20行目のecho文の内容が出力されないのか不思議です。 echo文の内容が表示がされない理由ついて教えてください。 よろしくお願いします!

    • ベストアンサー
    • PHP
  • apache バーチャルホスト

    “名前ベースのバーチャルホストを利用する” http://httpd.apache.org/docs/2.2/ja/vhosts/name-based.html#using に付いて、質問をさせてください。中ほどの行にある; 『たとえば、www.domain.tld を動かしていて、 さらにバーチャルホスト www.otherdomain.tld を追加するとしましょう。』 が今一理解できません。 たとえば登録済みのドメイン名が上記のようにdomain.tldとして、実際にウェブサイトをwww.domain.tld で運用していると仮定します。 www.sub.domain.tldをバーチャルホストとして使用できることは分かりますが、この追加するバーチャルホストの“www. otherdomain.tld”とは実際に何を示すのか教えていただきたいのです。 このドメイン名とは www.domain.tldと別に新たにwww.otherdomain.tldを登録して取得をした正式なドメイン名を示すのか、もしくは、バーチャルホストであるため他の人が登録をしていないドメイン名であればバーチャルとして使用して構わないと言うことなのかです。 前者であろうと推測しますがそれではバーチャルとは言わないのではとも考えています。 お願いします。

  • セッション変数に対するエラー表示

    こんにちは。いつもお世話になっています shingetsuです。 PHPをただいま勉強中で、わからないことがあったので質問させていただきます。よろしくお願いします。 現在自分でサイトを作っているのですが、ユーザー登録フォームに空欄があった場合空欄があります、というようなエラーを表示させたいのですが、その表示方法がよくわかりません。 <?php //入力されたデータを読み取る $_SESSION['name'] = $_POST['name']; $_SESSION['passwd'] = $_POST['passwd']; $_SESSION['address'] = $_POST['address']; $_SESSION['tel'] = $_POST['tel']; $_SESSION['email'] = $_POST['email']; このように読み取ってから、ここでif文を使ってエラーを表示させればいいのでしょうか?それとももっと簡単な方法がありますでしょうか?PHPの本を読んでみましたが載ってなく、ネット検索してみようにも検索方法がよくわからないのでヒントやアドバイスをよろしければ教えてください。お願いします

    • ベストアンサー
    • 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

専門家に質問してみよう