如何在JavaScript中访问php $ _SESSION数组?

时间:2013-06-24 08:23:29

标签: php javascript

我正在尝试构建一些javascript函数,我需要检查用户是否已登录。当用户登录我的站点时,我在名为is_logged的会话数组中设置了一个变量。我想在javascript中达到那个变量是否可能??? 我尝试了一些方法,但没有像下面那样工作:

var session = "<?php print_r $_SESSION['is_logged']; ?>";
alert(session);

var session = '<?php echo json_encode($_SESSION['is_logged']) ?>';
alert(session);

要么显示文字,要么从不警示

6 个答案:

答案 0 :(得分:6)

请回复一下:

var session = <?php echo $_SESSION['is_logged']?'true':'false'; ?>;
alert(session);

您需要三元运算符,因为false被回显为空字符串,因此会导致var session = ;这是一个JS语法错误。

答案 1 :(得分:2)

如果你想在JavaScript中访问$ _SESSION的所有元素,你可以使用json_encode,

<?php
session_start();
$_SESSION["x"]="y";
?>

<script>
 var session = eval('(<?php echo json_encode($_SESSION)?>)');
 console.log(session);

//you may access session variable "x" as follows
alert(session.x);
</script>

但请注意,将所有$ _SESSION变量导出到客户端根本不安全。

答案 2 :(得分:0)

在js文件中你无法获得php变量的值或php代码在js文件上不起作用,因为php代码将在.php扩展名文件中运行。 因此,一种方法是将会话值设置为隐藏元素值,并在js文件中获取隐藏元素的值。

在html中:

<input type="hidden" id="sess_var" value="<?php echo $_SESSION['is_logged']; ?>"/>

在你的js中:

var session = document.getElementById('sess_var').value;
alert(session);

答案 3 :(得分:0)

请尝试以下代码:

var session = "<?php echo $_SESSION['is_logged'] ?>";

答案 4 :(得分:0)

你可以做这样的事情

只需将$_SESSION['is_logged']插入隐藏字段,例如

<input type = "hidden" value = "<?php echo $_SESSION['is_logged']; ?>" id = "is_logged" />

然后你可以像你这样在你的jquery中访问它

var is_logged = jQuery.trim($('#is_logged').val());
//then do validation here

答案 5 :(得分:-4)

   var get_session=<?php echo $_SESSION['is_login'] 

  alert(get_session);
    ?>

## * 试试这个* ##