无法发送会话缓存限制器 - 已发送的标头 - CodeIgniter(Session.php)

时间:2017-05-19 11:33:34

标签: php ajax codeigniter session

如果没有阅读完整的问题,请不要将其标记为重复。

我知道这已经多次讨论了。

但这是不同的情况。

我正在对php方法进行简单的ajax调用,如下所示:

public function updateAbout()
{
    log_message('debug', "updateAbout is called", false);   

     log_message('debug',$this->input->post('fname'), false);

   log_message('debug', "updateAbout success", false);   

}

在这种方法中,我只是试图获取由ajax调用传递的数据。

但是我没有通过ajax调用发布数据而是获得2个错误:

Severity: Warning --> session_start(): Cannot send session cache limiter - headers already sent ...\..\\libraries\Session\Session.php 143
Severity: Warning --> Cannot modify header information - headers already sent ..\..\libraries\Session\Session.php 171

注意:

我没有使用session_start();在我的项目中的任何地方。

此错误指向session_start()方法,该方法位于Codeigniter库的Session.php文件中。它没有指向我的代码中的任何位置,所以我不确定在哪里寻找问题。

我已经在互联网上查了答案,但似乎没有人能解决这个问题。

有人可以解释我为什么会收到此错误,我该如何防止这种情况?

谢谢。

修改 根据其他答案中的建议,我已经检查并删除了所有代码中的空格。

这是我的javascript代码,其中进行了ajx调用。

      $("#btnupdateAbout").click(function(){

      $fname=$("#updatefname").val();
      $lname=$("#updatelname").val();
      $country=$("#updatecountry").val();
      $locality=$("#updatelocality").val();

      if($('#optradioMale').is(':checked')) { $gender="Male"; }
      else{$gender="Female";}

       $.ajax({

           url:"http://localhost/Voyager/ProfileControls/updateAbout",
           data:{'fname':$fname,'lname':$lname,'country':$country,'locality':$locality,'gender':$gender},
           method:"POST",
           contentType:false,
           cache:false,
           processData:false,

           success:function(){

           }

       });
   });

3 个答案:

答案 0 :(得分:2)

请您查看此答案How to fix "Headers already sent" error in PHP

可能在设置标头之前抛出了一些输出/错误。

答案 1 :(得分:1)

在ajax调用期间在浏览器中使用F12并单击控制台和网络以查看您的ajax调用详细信息,有时由于弃用方法而发生错误,您需要更改php.ini中的某些php设置 喜欢

always_populate_raw_post_data = -1

如果您使用的是routes.php,请确保使用正确的路径

答案 2 :(得分:0)

当您进行AJAX调用时,您正在调用Code-igniter入口点,该入口点将加载所有必需的库,包括启动会话。

不知道函数log_message()正在做什么,但我相信尝试打印到STDOUT,然后你的代码或Code Igniter试图发送一些Headers。

您可以发布有关log_message()函数???

的大部分详细信息