Php 单页应用程序会话\u启动错误通知

Php 单页应用程序会话\u启动错误通知,php,ajax,session,Php,Ajax,Session,我有一个基于index.php页面的单页应用程序,在这里我启动会话并显示第一个内容。然后,根据单击的链接,通过Ajax加载不同div中的内容 如果我想访问加载页面中的$\u SESSION数组(例如显示用户名),我需要将SESSION\u start也放在通过Ajax加载的页面中。 这样一切都很好,但当我看到日志时,我发现每当我通过Ajax加载一个页面时,php都会抛出一个错误 “会话已启动。正在忽略会话_start()” 因此:一方面我需要放置session_start来访问会话数组,但另一方

我有一个基于
index.php
页面的单页应用程序,在这里我启动会话并显示第一个内容。然后,根据单击的链接,通过Ajax加载不同div中的内容

如果我想访问加载页面中的
$\u SESSION
数组(例如显示用户名),我需要将
SESSION\u start
也放在通过Ajax加载的页面中。 这样一切都很好,但当我看到日志时,我发现每当我通过Ajax加载一个页面时,php都会抛出一个错误

“会话已启动。正在忽略会话_start()”

因此:一方面我需要放置session_start来访问会话数组,但另一方面session_start命令被忽略

从index.php:

<?php
require '../session_handler.inc.php';
require 'global_functions.php';
session_start();
if(isset($_SESSION['id1'])){
    $actusr=$_SESSION['id1'];
}
我需要的php位于被调用页面的顶部:

<?php 
require '../../session_handler.inc.php';
require '../global_functions.php';
session_start();

最好使用此行,而不是
会话\u start()
。 您可能要启动多个会话,并在这两个会话之间使用会话

if(session_id() == '') {
    session_start();
}

如果您在本地WAMP或Xamp环境中进行测试,我建议您清除缓存,关闭浏览器(而不是单个选项卡),然后运行应用程序

试试这1:

 <?php
        if(!isset($_SESSION)) 
        { 
            session_start(); 
        } 
    ?>
希望这有帮助。

移动会话_start();到页面顶部


尝试从ajax中删除它,因为它是您运行它的脚本的一部分。@Fred ii-然后我将不再加载$\u Session arrayHm…,这很奇怪。你能分享你的代码吗?我不知道怎么会那样破裂。您没有2个
session_start()>在同一个文件中的任何位置,您知道吗?还是别的什么东西叫它两次?比如某个地方的include/require等函数。@Fred ii-当然不是!将添加一些示例codeDoes
session\u handler.inc.php
和/或
global\u functions.php
contain
session\u start()
或任何其他文件调用它两次@LelioFaieta也检查一下你的控制台。@Fred ii-,添加了描述这并不能解决问题。它将运行会话_start@LelioFaieta,您在第一行包含的会话处理程序文件中有什么?它是一个完全空的文件@LelioFaieta,你试过我的解决方案吗?如果是,请回显session_id()以查看您需要什么getIndex.php需要session start检查用户是否已登录,以便我无法删除it@LelioFaieta不要删除它,只是在你知道这不会改变任何事情之后,把它移到页面顶部?这不是“已发送邮件头”的问题。代码序列根本不会影响结果(已测试)@LelioFaieta请尝试在正在加载到div和index.php页面的页面中执行相同的操作。不久前,我遇到了类似的问题,这样做解决了我的问题。在我的情况下不是这样。我为这个应用运行了一个Web服务器。这种解决办法解决不了问题。我需要以会话启动以外的任何其他方式将会话数组传递到新页面
 <?php
        if(!isset($_SESSION)) 
        { 
            session_start(); 
        } 
    ?>
$status = session_status();
if($status == PHP_SESSION_NONE){
    //There is no active session
    session_start();

}else
if($status == PHP_SESSION_ACTIVE){
    //Destroy current and start new one
    session_destroy();
    session_start();
}