2016-09-23 14 views
0

私は同じ変更を加えて同じサーバーに複数のサイトを持っています。問題は、ユーザーがAサイトにログインし、Bサイトに入るとURLからURLを入力すると、コンテンツを閲覧できることです。どのように私はBサイトのコンテンツを表示するユーザーを制限することができます。私authenicationコードセッションが正常に動作していませんPHP

function validate_login($email , $password){ 
     global $_config; 
     if(empty($email) or empty($password)){ 
      return false; 
     } 

     //Now perform validation here 
     //$email = mysql_real_escape_string($email); 
     //$password = mysql_real_escape_string($password); 

     $query_obj = new execute_query(); 
     $where = 'email="'.$email.'" and password = md5("'.$password.'")'; 
     $result = $query_obj->select_query(array('*') , 'user' , $where); 

     $user = array(); 

     if($result->num_rows > 0){ 

      $user = array(); 
      while($row = $result->fetch_assoc()) { 
       $user = $row; 
       $user['is_logged'] = true; 
      } 

      session_start(); 
      $_SESSION['user'] = $user; 
      $url = $_config['site_url'].'dashboard.php'; 
      //header('Location :'.$url);die; 
      header("Location: ".$url); 
     } 
     return false; 
    } 

と私はのようなセッションをチェックしていますすべてのページの上部にある場合は、以下の

<?php 
session_start(); 
//echo "<pre>";print_r($_SESSION['user']);die; 
if(!isset($_SESSION['user'])){ 
    $url = $_config['site_url'].'login.php'; 
    //header('Location :'.$url);die; 
    header("Location: ".$url); 
} ?> 

P.S:unique_session_idをデータベースに保存し、ユーザーが現在のデータベースに属しているかどうかを確認する方法があります。しかし、私はより一般的でより良い解決策を望んでいます。あなたが2つのサイトを保存するために、あなたのセッションに余分なレベルを追加することができ

おかげ

+0

試してみます。 – rahul

+0

はい、これもオプションです。しかし、よりよいアプローチを知りたい。 – user1885057

+0

が同じサーバーの下にあるため、その下にサイトが存在するセッションが存在します。今すぐあなたのロジックまで、他のサイトにログインしたときに再度ログイン認証を要求するかどうかを指定します。 – rahul

答えて

0

一意

<?php 
    session_start(); 

    if(!isset($_SESSION['siteA']['user'])) { 
     $url = $_config['site_url'].'login.php'; 
     header("Location: ".$url); 
} 
?> 

すべてを行う必要がsiteAsiteBで確認コードがどのようなキーの値を知っている作ることを知っています各サイトには、siteAsiteBというキーがあります。別のサイトで$ _SESSION [「site1_session」]、$ _SESSION [「site2_session」]を追加すると、彼は第二のサイトを閲覧しているときに、セッションかどうか2が利用可能であることを確認し

<?php 
    session_start(); 
    $site = getSiteKeyFromConfig(); 

    if(!isset($_SESSION[$site]['user'])) { 
     $url = $_config['site_url'].'login.php'; 
     header("Location: ".$url); 
} 
?> 
関連する問題