Javascript 无法通过Ajax从文件PHP调用检查会话

Javascript 无法通过Ajax从文件PHP调用检查会话,javascript,php,jquery,ajax,session,Javascript,Php,Jquery,Ajax,Session,我使用DataTables服务器端创建表。我调用login.php通过Ajax从数据库中获取一些值。这是数据表的代码: <?PHP session_start(); ?> <script type="text/javascript" language="javascript" class="init"> $(document).ready(function() { t = $('#table_stok').dataTable({ "bJQ

我使用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>

$(文档).ready(函数(){
t=$('#table_stok')。数据表({
“bJQueryUI”:没错,
“sPaginationType”:“完整编号”,
“处理”:对,
“服务器端”:正确,
“ajax”:“php/query/login.php”
});
} );
我在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无法检查会话。但当我通过浏览器(localhost/dewata/php/query/login.php)运行它时,它可以正常检测会话。我如何从ajax调用的php文件中检查会话?某个地方缺少代码吗?

我添加了以下代码:

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函数通常是:) 谢谢您的帮助。

我添加了以下代码:

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函数通常是:)
谢谢您的帮助。

是否从ajax调用并不重要,如果您有SESSION_start(),php将填充$_SESSION;在脚本的顶部,然后将会话变量设置为将在浏览器控制台中传递的某个值。如果(会话id()=''会话id()=''会话id()=''会话id()!isset($会话)){会话启动()},请始终检查并启动会话。我收到错误:DataTables警告:表id=表stok-无效的JSON响应。但当我删除检查会话是否存在的函数时,它运行正常。谢谢学习模式。添加if(session_id()=''||!isset($_session)){session_start()}和我的代码工作:)从ajax调用它与否无关紧要,如果您有session_start(),php将填充$_session;在脚本的顶部,然后将会话变量设置为将在浏览器控制台中传递的某个值。如果(会话id()=''会话id()=''会话id()=''会话id()!isset($会话)){会话启动()},请始终检查并启动会话。我收到错误:DataTables警告:表id=表stok-无效的JSON响应。但当我删除检查会话是否存在的函数时,它运行正常。谢谢学习模式。添加if(session_id()=''||!isset($_session)){session_start()}和我的代码工作:)