我有一个类似这样的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>
获取Ajax传递的变量的getvar.php如下所示:
<?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的文件中获取会话?
您必须在任何时候使用会话变量时包含session_start();
就像这样…
<?php
session_start();
include ('../../../config/config.php');
//rest of your code
?>
也就是说……假设您在较早的时候设置了$_SESSION['id_user'],并且它实际上存在。。。
尝试回显Session变量并查看返回的内容,但当然,首先要确保像KyleK所说的那样启动会话。此外,如果设置了会话变量,进行验证也不会有什么害处。