-2

我在 JQuery 中包含一个 php 文件,如下所示:

主 php 文件:

<?php
session_start();
?>
<script src="//ajax.googleapis.com/ajax/libs/jquery/1.9.1/jquery.min.js"></script>

<?php

$_SESSION['ID'] = "32";

?>

<div id="sesion"></div>

<script>

$("#sesion").load("fun.php");

</script>

将加载的 php 文件 fun.php:

<?php
session_start();
echo 'new php';
echo $_SESSION['ID'];
?>

fun.php 在我添加 session_start() 后立即显示空白,如果我删除它,它将显示:“new php”

我需要在“fun.php”文件中打开会话,但我似乎无法实现。

4

6 回答 6

0

放在包含在其页面session_start()中的页面顶部chalk_element.php

于 2013-08-12T16:00:57.390 回答
0

尝试简化您的环境。

在最顶部创建一个新的 index.php session_start(),然后创建几个会话变量。

接下来,创建您的 chalk_element.php 文件并通过 jQuery 在 index.php 中加载它。

现在做一些非常简单的事情来访问会话变量,看看会发生什么。这将为您提供一个简化的测试环境,您可以在其中试验配置。

于 2013-08-12T16:06:46.417 回答
0

听起来你在调用之前输出了一些东西(HTML)session_start。您可以移动session_start()使其位于页面顶部(位于顶部,没有空格)或ob_start()先调用。然后您可以输出数据并session_start()稍后调用。

此外,请检查您的错误日志以获取有关 PHP 文件刚刚停止工作的原因的任何有用的错误信息。

于 2013-08-12T16:09:35.130 回答
0

这两个文件都需要session_start();在每个文件的顶部,然后再进行任何其他输出,因为此函数会发送多个 HTTP 标头。

这是一个简单的例子:

索引.php

<?php 
//Start session
session_start(); 
//Set the value in your session
$_SESSION['key']='value';
?>
<!DOCTYPE HTML>
<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=utf-8">
<title>Untitled Document</title>
<script src="http://code.jquery.com/jquery-latest.min.js" type="text/javascript"></script>
</head>

<body>
<script>
$(function() {
   $("#Chalk").load('chalk_element.php');
});
</script>

<div id="Chalk">Loading...</div>

</body>
</html>

chalk_element.php

<?php 
//Start session also to `resume` session
session_start(); 
//Check from ajax
if(isset($_SERVER['HTTP_X_REQUESTED_WITH']) && strtolower($_SERVER['HTTP_X_REQUESTED_WITH']) === 'xmlhttprequest'){
    //output session var if set
    echo isset($_SESSION['key']) ? $_SESSION['key'].' was set in session' : 'session value was not set';
}
?>
于 2013-08-12T16:11:02.780 回答
0

当我保存文件时,这是一个编码问题。我将这两个文件都保存为 ANSI 代码并解决了问题。

于 2013-08-12T17:01:53.987 回答
-1

试试这个..!

ob_start(); //页面顶部

ob_flush();//页面结束

于 2013-08-12T16:06:34.847 回答