0

我知道我的问题很奇怪,但这是我的情况。我正在调用一个javascript

<script src="js/jscript.php"></script>

另一方面,我在 jscript.php 中编写 javascript

<?php 
header("Expires: Mon, 26 Jul 1997 05:00:00 GMT"); // Date in the past
header("Content-Type: text/javascript");
header("Cache-Control: post-check=0, pre-check=0", false);
header("Cache-Control: no-store, no-cache, must-revalidate, max-age=0");
header("Pragma: no-cache");
?>$(document).ready(function(){
....
....
....
alert('hello world!');//all my javascript stuff

<?php
echo $_SESSION['user_id'];  //echo nothing
echo $_SESSION['user_email']; //echo nothing
?>

});

然后我用我的浏览器测试,文件调用和那些调用alert('hello world!')没有问题,但是直到我尝试从 jscript.php 访问会话变量,它都是空的......我确实正确设置了这些变量

4

2 回答 2

1

我不确定这是否可行。

我认为更好的方法是对 PHP 页面进行 ajax 调用,以您想要的任何形式(json,或者只是 echo $var ...)取回数据,然后对其进行处理。

前与 jquery:

<script>
    $.ajax({
        url: 'mypage.php',
    }).done(function(msg) {
          // Do something with msg here
    });
</script>

和 mypage.php 可能是这样的:

<?php

$response = array();
$response['user_id'] = $_SESSION['user_id'];
$response['user_email'] = $_SESSION['user_email'];
echo json_encode($response);

?>

当进行 ajax 调用时,php 页面将创建一个数组,用您需要的会话变​​量填充它,并使用 json_encode 以 json 形式将其返回到您的脚本。您将其作为 .done 方法中的 var 获取,并使用它做任何您需要的事情。

于 2013-07-25T08:39:27.560 回答
0

添加一个会话开始一个非常开始的 jscript.php 解决了我的问题

session_start();

希望它帮助别人。

于 2013-07-25T08:51:13.860 回答