Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/php/234.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/3/xpath/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Php 无法在动态javascript文件中访问会话变量_Php_Javascript_Session_Dynamic_Session Variables - Fatal编程技术网

Php 无法在动态javascript文件中访问会话变量

Php 无法在动态javascript文件中访问会话变量,php,javascript,session,dynamic,session-variables,Php,Javascript,Session,Dynamic,Session Variables,我知道我的问题很奇怪,但这是我的处境。我正在用 另一方面,我在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

我知道我的问题很奇怪,但这是我的处境。我正在用

另一方面,我在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
?>

});
$(文档).ready(函数(){
....
....
....
警报('hello world!');//我所有的javascript内容
});

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

我不确定这是否可行

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

带jquery的ex:

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

$.ajax({
url:'mypage.php',
}).done(函数(msg){
//在这里加味精
});
而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获得,并对其执行任何需要的操作。

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

session_start();

希望它能帮助其他人。

请让我知道我是否可以使用更好的术语。您不是在jscript.php文件的开头说
session\u start()
。请检查是否发送了cookie。还要检查
php.ini中是否启用了
session.auto\u start
in,或者调用
session\u start()
as@mohkhan sugested。感谢大家指出session\u start(),现在我必须再次调用session\u start,因为调用了jscript.php,它现在工作得很好,谢谢!