dragon8899 2014-09-04 16:22
浏览 29
已采纳

类会话警告php 5.4中的session_start()[重复]

This question already has an answer here:

i have issuer in my files php get in index.php messages Warning: session_start(): Cannot send session cache limiter - headers already sent (output started at /Users/[username]/Sites/application/Core/users.php:3) in /Users/[username]/Sites/application/Core/session.php on line 20

<?php
// A class to help work with Sessions
// In our case, primarily to manage logging users in and out

// Keep in mind when working with sessions that it is generally 
// inadvisable to store DB-related objects in sessions


require_once('includes/initialize.php');

class Session{


    private $logged_in=false;
    public $id;


    function __construct() {
        //@ob_start();
        session_start();
        $this->check_login();

        if($this->logged_in) {

        }else{

        }


    }


    public function is_logged_in() {
       return $this->logged_in;
     }

    public function login($username) {
     // database should find user based on username/password
         if($username){
           $this->id = $_SESSION['id'] = $username->id;
           $this->logged_in = true;
         }
    }


    public function logout() {
      unset($_SESSION['id']);
      unset($this->id);
      $this->logged_in = false;
    }



    private function check_login() {
        if(isset($_SESSION['id'])) {
          $this->id = $_SESSION['id'];
          $this->logged_in = true;
        } else {
          unset($this->id);
          $this->logged_in = false;
        }
    }
}

$session = new Session();

?>
</div>
  • 写回答

1条回答 默认 最新

  • dongsong4418 2014-09-04 16:26
    关注

    session_start(); has to be called before anything else. You need to take it out of your constructor and place it before your require_once statement.

    本回答被题主选为最佳回答 , 对您是否有帮助呢?
    评论

报告相同问题?

悬赏问题

  • ¥15 php 将rtmp协议转hls协议,无法播放
  • ¥15 miniconda安装不了
  • ¥20 python代码编写
  • ¥20 使用MPI广播数据遇到阻塞
  • ¥15 TinyMCE如何去掉自动弹出的“链接…”工具?
  • ¥15 微信支付转账凭证,如何解决
  • ¥15 在win10下使用指纹登录时,界面上的文字最后一个字产生换行现象
  • ¥20 使用AT89C51微控制器和MAX7219驱动器来实现0到99秒的秒表计数,有开始和暂停以及复位功能,下面有仿真图,请根据仿真图来设计c语言程序
  • ¥15 51单片机 双路ad同步采样
  • ¥15 使用xdocreport 生成word