6

我正在尝试构建一些 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);

它要么显示文本,要么根本不提醒

4

6 回答 6

6

只是回应它:

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

您需要三级运算符,因为false它作为空字符串回显,因此会导致var session = ;JS 语法错误。

于 2013-06-24T08:26:02.390 回答
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 变量导出到客户端根本不安全。

于 2013-06-24T08:32:51.150 回答
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);
于 2013-06-24T08:27:52.817 回答
0

试试下面的代码:

var session = "<?php echo $_SESSION['is_logged'] ?>";
于 2013-06-24T08:28:39.693 回答
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
于 2013-06-24T08:33:40.683 回答
-5
   var get_session=<?php echo $_SESSION['is_login'] 

  alert(get_session);
    ?>

## *试试这个 * ##

于 2013-06-24T08:31:14.953 回答