我使用DataTables服务器端来制作表格。我调用login.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
);
?>
我从测试中得到的结果是,如果我通过ajax 运行我的login.php 则无法检查 session 。但是当我通过浏览器(localhost/dewata/php/query/login.php)运行它时,它可以正常检测 session 。如何从ajax调用的php文件中检查 session ?某处是否缺少代码?
最佳答案
我添加此代码:
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 功能正常:) 感谢您的帮助。
关于javascript - 无法通过 Ajax 从文件 PHP 调用检查 session ,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/35696391/