동일한 서버에 여러 개의 사이트가 있습니다. 문제는 사용자가 A 사이트에 로그인 할 때 URL에서 B 사이트에 들어가면 콘텐츠를 볼 수 있다는 것입니다. B 사이트 콘텐츠를 보는 사용자를 어떻게 제한 할 수 있습니까?세션이 예상대로 작동하지 않습니다 PHP
아래 내 authenication 코드
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);
} ?>
피 : 한 가지 방법은 unique_session_id를 데이터베이스에 저장하고 사용자가 현재 데이터베이스에 속하는지 여부를 확인하는 것입니다. 하지만 좀 더 포괄적이고 나은 솔루션을 원합니다.
감사
시도. – rahul
예,이 옵션도 있습니다. 하지만 좀 더 나은 접근법을 알고 싶습니다. – user1885057
그들은 같은 서버 아래에 있기 때문에, 그곳의 사이트는 계속 존재할 것입니다. 이제는 다른 사이트에 로그인 할 때 다시 로그인 인증을 요청할지 여부에 대한 귀하의 논리가 향상됩니다. – rahul