• ベストアンサー
※ ChatGPTを利用し、要約された質問です(原文:ログイン情報が混ざってしまう)

ログイン情報が混ざってしまう!同じwebサーバーで2つのサイトを運営する方法とは?

freepacketの回答

  • ベストアンサー
回答No.1

session_set_cookie_paramsを使ってセッションクッキーの有効範囲を指定するというのはどうでしょう。

参考URL:
http://php.mirror.camelnetwork.com/manual/ja/function.session-set-cookie-params.php
mentaiko2
質問者

お礼

回答ありがとうございました。 この関数を使う方向で考えたいと思います。

関連するQ&A

  • ユーザー定義関数内の相対パスについて

    phpで会員制サイト制作の学習をしています。 ログインしないと閲覧できないようなページを未ログインでアクセスした場合、 ログインフォームを表示する という動作のプログラムを記述したいです。 よく使用することになると思うので、クラスまたは関数にまとめようと思い、 まだクラスが理解できていないため、 とりあえず関数で以下の挙動を作成しました。 <セッションチェック関数> function sessionCheck($sessionId) { if(!isset($sessionId)){ require_once("../login_request.php"); //セッションIDが存在しない場合、ページ内にログインフォームを1つのコンテンツとして表示 }else{ return "true"; } } trueが返ってきた場合、ページ内のコンテンツを表示するような関数にしています。 セッションがある場合、ページコンテンツを表示するのはうまくいくのですが、 セッションがない場合、相対パスの関係でうまくlogin_requestを表示できません。 これ以外にも、 ログインフォームをページコンテンツとして読み込むのではなく、 別立ての1つのページにするという案も考えたのですが、 ログイン後にページを遷移させるのが難しいと思い、 このようにコンテンツとして読み込ませる関数にしました。 関数やクラス内には相対パスを記述しないほうが良いのでしょうか? ご回答、よろしくお願いします。

    • ベストアンサー
    • PHP
  • Windowsだとsession_set_cookie_paramsが

    Windowsだとsession_set_cookie_paramsが上手く動きません。 以前 http://okwave.jp/qa/q5387366.html でディレクトリ分けをしているときにセッションが混ざってしまうと相談したものです。 回答していただいたものを元にsession_set_cookie_paramsを使ってみたところセッションが混ざることがなくなったのですが、このコードをWindows(というかXampp for windows)で動かすとセッション情報を保存することが出来なくなってしまいます。 (具体的な挙動としてはログインフォームなのですが延々とログインできなくなってしまいました。) Windows版では動かせない関数なのでしょうか? それともphp.ini等に設定が必要でしょうか? windowsでうごかしたコードのセッション部分 if(isset($_REQUEST['PHPSESSID'])) { session_id($_REQUEST['PHPSESSID']); //Setting the same session id to Forums as in CRM $sid=$_REQUEST['PHPSESSID']; } session_set_cookie_params(time()+36000, "/pdt/test/", "localhost"); insert_charset_header(); きちんと動作する環境 OS: Linux CentOS5 PHP:5.3 独自ドメイン上で動かしている(上記コードのlocalhostの部分はそのドメイン名としている) 上手く動かない環境 OS: WindowsXP PHP: 5.2.9(Xamppで動かしています) テスト環境(ドメインは指定していないため上記コードのsession_set_cookie_paramsのホスト名の部分をlocalhostとしている) よろしく尾根がします。

    • ベストアンサー
    • PHP
  • sessionうまくいかない

    sessionの勉強のためにphpで簡単なページを作ってみたのですが、 sessionIDが次のページに送れてないみたいで、うまくいきません。 1ページ目 @session_start(); print session_id(); $_SESSION["ID"]=session_id(); 2ページ目 @session_start(); print session_id(); sessionの記述はこのようにしています。 環境は Windows Vista IE7 PHP5 Apache2.2 です。 よろしくお願いします。

    • 締切済み
    • PHP
  • PHPSESSIDについて

    当方、PHP初心者です。よろしくお願いします。 どこかのサイトでのリンク表記が ***.html?PHPSESSID=***************** となっていました。 htmlにリンクするときにセッションIDを発行していたのですが、 利点などあるのですか?

    • ベストアンサー
    • PHP
  • 携帯サイトでsessionは使用可能か

    HTML・PHPで3キャリア対応携帯サイトを作成しているのですが、session_id()などのセッション関連は携帯サイトでも使用できるのでしょうか? 例えば、ログインページで入力フォームの値(IDとパスワード)をsesession_id()で次のページに渡す際(header("Loca"))、PCのブラウザ(IE)では値を渡せ、かつ、次のページに進んだのですが、i-modeのエミュレータ(imodetool)では、次のページに移らず、ログイン画面に戻ってしまいます。 なお、ソースは以下のように記述しています。 if($_POST["name"] == XXXX) { session_start(); $_SESSION["user_id"] = $_POST["name"]; header("Location: http://xxxxxxxx.php?id=". session_id()); exit(); } お手数ですが、回答頂けると幸いです。 よろしくお願い致します。

    • ベストアンサー
    • PHP
  • 携帯電話でログインフォームに簡単に打ち込む方法

    教えてguuの携帯サイトにもログインフォームありますが、セッションが切れるせいか毎回ログインフォームにID、PWを入力しています。 ID、PWをもっとも簡単に打ち込む方法があったら教えてください。 機種はソフトバンクの923SHを使っています。

  • ログインしたら他からログインできないようにしたい

    PHP+MySQLで会員サイトを作っています。 1. 誰か一人がログインしていたら、そのログイン会員と同じIDとパスワードでログインしようとするとログインできないようにするか、元のログインしていた人が強制的にログアウトするようにしたい。 2. 一人のユーザーが複数アカウントを作って会員サイトを使いたい放題にするのを阻止したい。 そのため、「PC1台からは必ず1ユーザーのみしかログインできないようにしたい」です。 (複数PCを使われたら仕方ないかもしれません・・・) よく銀行サイトのようにログイン中に他のブラウザや端末からログインしようとすると「すでにログイン中です。ログインし直しますか?」のようになりますが、1.はこんな感じを考えています。 仕組みとしてはどのようにするのが良いのでしょうか? 1. ログイン時にセッションIDを作り、データベースにそのセッションIDとIPアドレスを記憶しておいて、Web上で何か操作するたびにブラウザ側のセッションIDとデータベース側のセッションIDを比べて同じなら操作を実行し、違うなら操作できないようにする。 2. ログイン中に別のブラウザからログインしようとすると、データベース側に保存されているセッションIDが違うのでログインできないようにする。 3. 同じIPアドレスですでにログイン中の場合、同じPCからは他のアカウントでログインできないようにする。 こんな感じでしょうか? 何か問題点やそもそもこの仕組は間違っていて常套手段があるなどありましたらお教えください。 なんとなく、IPアドレスのチェックはWiMAXなどは時間とともに変わったりするのであまり良くはないかもしれません。 どうぞよろしくお願い致します。

    • ベストアンサー
    • PHP
  • 携帯サイトで勝手にセッションIDを埋め込まれた場合どんな被害が考えられますか?

    あるASPを使って携帯サイトを作成したのですが、 ソースの一部が何者かに勝手に書き換えられてしまい、 <a href="?PHPSESSID=****&PHPSESSID=****&PHPSESSID=****&PHPSESSID=****&PHPSESSID=****&PHPSESSID=****&PHPSESSID=****&PHPSESSID=****&PHPSESSID=****">テキスト</a> となっていました。 ※****にはそれぞれ異なるセッションIDが書かれていました。 このリンク先に行くと、このページのURLにこのセッションIDが埋め込まれてしまうのですが、 これによってどんな被害が考えられますか? どのような意図でこのような書き換えを行ったのでしょうか? 教えて下さい。

    • 締切済み
    • PHP
  • セッションをつかったページについて

    メール送信フォームをPHPで作っています。 入力した値を管理するためにセッションを使っているのですが このページから、他のページに移動する際(リンクをクリック)に URLに http://www.xxxxx.co.jp/dir/?PHPSESSID=xxxxxxxxxxxxxxxxxxxxxxxxxxxxx のように表示されてしまいます。 できれば、 http://www.xxxxx.co.jp/dir/ のようにセッションIDは表示しないようにしたいのですが どのようにすればいいのか教えていただけないでしょうか

    • 締切済み
    • PHP
  • セッションについて教えてください。

    PHPを独学で勉強中の初心者です。(HTMLとCSSくらいしか分からない所からのスタートです) ログインフォーム→パスワード処理→コンテンツ表示というながれで作っています。 質問は、セッションの有効期限はデフォルトではブラウザを閉じるまでと聞いたのですが、それはウインドウを閉じるではなく、アプリケーションを終了するまでということでよいのでしょうか?ウインドウを閉じただけだと、コンテンツを表示できてしまいます。 また、コードがこんなんでよいものかアドバイスよろしくお願い致します。 --パスワード処理-- <?php session_start(); $id =p; $password =11; $n_id = $_POST["n_id"]; $n_password = $_POST["n_password"]; if(($n_id == $id ) && ($n_password == $password)){ $_SESSION['pass'] = 1; header("Location: page1.php"); }else{echo "IDまたはパスワードが違います。"; } ?> ----コンテンツページ----- <?php session_start(); if(isset($_SESSION["pass"]) && $_SESSION["pass"] == 1){ echo "コンテンツ"; echo "<html><head> <meta http-equiv=Content-type content=text/html; charset=EUC-JP> </head><body>"; echo "<form action =logout.php method=post>"; echo "<input type=submit name=sbm value=ログアウト>"; echo "</form></body></html>"; }else{ header("Location:login1.php"); } ?>

    • 締切済み
    • PHP