2016-02-29 76 views
1

我使用DataTables服務器端來創建表。我調用login.php從Ajax獲取數據庫中的一些值。這是代碼DataTables:無法從文件檢查會話PHP通過Ajax調用

<?PHP session_start(); ?> 

    <script type="text/javascript" language="javascript" class="init">  
$(document).ready(function() { 
    t = $('#table_stok').dataTable({ 
    "bJQueryUI": true, 
    "sPaginationType": "full_numbers", 
    "processing": true, 
    "serverSide": true, 
    "ajax": "php/query/login.php" 
    }); 
}); 

</script> 

我已經在Ajax頂部調用了session_start()。這是文件的login.php連接到表:

<?PHP 
session_start(); 
if(empty($_SESSION['login'])){ 
$db_username = 'root'; 
$db_password = ''; 
$db_name  = 'dbmaster2'; 
$db_host  = 'localhost'; 
}else if($_SESSION['login']==1){ 
$db_username = 'root'; 
$db_password = ''; 
$db_name  = 'dbmaster2'; 
$db_host  = 'localhost'; 
}else{ 
$db_username = 'root'; 
$db_password = ''; 
$db_name  = 'dewata'; 
$db_host  = 'localhost'; 
} 

$sql_details = array(
'user' => $db_username, 
'pass' => $db_password, 
'db' => $db_name, 
'host' => $db_host 
); 
?> 

我從測試中得到什麼,我的login.php不能,如果我通過AJAX運行它檢查會話。但是當我通過瀏覽器(localhost/dewata/php/query/login.php)運行它時,它可以正常檢測會話。何我檢查由ajax調用的php文件中的會話?在某處丟失代碼?

+0

從ajax調用它或沒有關係,PHP會填充$ _SESSION,如果你有session_start();在腳本的頂部,然後將會話變量設置爲將在 –

+0

上傳遞的內容。您是否在瀏覽器控制檯中收到任何錯誤? – C2486

+0

總是檢查,然後開始會話_if(session_id()==''||!isset($ _ SESSION)){ session_start(); } _ – C2486

回答

0

我添加以下代碼:

if(session_id() == '' || !isset($_SESSION)) { session_start(); }  
if(empty($_SESSION['login'])){ 
$db_username = 'root'; 
$db_password = ''; 
$db_name  = 'dbmaster2'; 
$db_host  = 'localhost'; 
}else if($_SESSION['login']==1){ 
$db_username = 'root'; 
$db_password = ''; 
$db_name  = 'dbmaster2'; 
$db_host  = 'localhost'; 
}else{ 
$db_username = 'root'; 
$db_password = ''; 
$db_name  = 'dewata'; 
$db_host  = 'localhost'; 
} 

$sql_details = array(
'user' => $db_username, 
'pass' => $db_password, 
'db' => $db_name, 
'host' => $db_host 
); 

和我的PHP函數通常:) 感謝您的幫助。