无法访问包含文件ajax中的会话

时间:2013-06-23 22:41:27

标签: php ajax

我有一个像这样的Ajax脚本,其中包含一个要处理的文件,即getvar.php:

<script type="text/javascript">
    $(document).ready(function() {
        $(".jenisdata").change(function() {
            var jenisdata =$(this).val();

            var dataString = 'jenisdata='+jenisdata;
            $.ajax({
                type: "POST",
                url: "includes/analisis/getvar.php",
                data: dataString,
                cache: false,
                success: function(html) {
                    $(".variabel").html(html);
                } 
            });
        });
    });
</script>

和getvar.php来获取从Ajax传递的变量是这样的:

<?php
include ('../../../config/config.php');

$id_user=$_SESSION['id_user'];
if($_POST['jenisdata']) {
    $id= $_POST['jenisdata'];
    $query      = "SELECT var.id_var, var.nama_var
FROM var, hak_akses
WHERE var.id_var = hak_akses.id_var
AND id_user ='$id_user' AND id_data ='$id'";
    $results    = mysql_query( $query);
    $total      = mysql_num_rows($results);

    if ($total >0) {
        while ($rows = mysql_fetch_assoc($results)) {
                echo '<option     value="'.$rows['id_var'].'">'.$rows['nama_var'].'</option>';
        }
    } else {
        echo '<option value="" selected="selected">Data variabel belum diisi     dijenisdata Ini</option>';
    }
}
?>

此处无法读取变量$_SESSION['id_user']。有什么问题,如何在Ajax包含的文件中获取会话?

2 个答案:

答案 0 :(得分:0)

您必须在任何时候使用会话变量包含session_start();

像这样...

<?php
session_start();
include ('../../../config/config.php');


//rest of your code

?>

那是....假设你已经在较早的时间设置了$ _SESSION ['id_user'],并且确实存在......

答案 1 :(得分:0)

尝试回显你的Session变量并查看返回的内容,但当然首先要确保以KyleK说的方式启动会话。此外,验证会话变量是否已设置也没有坏处。