0
我在同一臺服務器上有多個網站,發生小的變化。問題是,當用戶登錄到一個網站,如果他進入B站點,從url,他是允許查看內容。如何限制用戶查看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);
} ?>
P.S:一種方法是unique_session_id保存在數據庫中,並檢查用戶是否屬於當前數據庫或沒有。但我想要一些更通用和更好的解決方案。
感謝
嘗試在單獨的網站添加$ _SESSION [「site1_session」],$ _SESSION [「site2_session」],檢查是否會話2可當他觀看第二個站點。 – rahul
是的,這也是一個選項。但我想知道一些更好的方法。 – user1885057
,因爲它們在同一臺服務器下,會話將存在於其下的任何站點中。現在它已經達到了你的邏輯,即當他們進入其他網站時是否再次要求登錄認證。 – rahul