Search code examples
phpcodeigniterauthenticationion-auth

Ion auth Codeigniter Login throwing errors after logging in


This is my first project using both Codeigniter and Ion Auth and I've finished this tutorial: http://www.rappasoft.com/tutorials/view/5#.U1bJLeZdWpo

But now that I've reached the end, I have an error that is appearing when all of my code looks identical to the tutorial. The error is:

Message: Creating default object from empty value

Filename: core/MY_Controller.php

Line Number: 13

But the odd thing is that the code from the MY_Controller file is copied right from the tutorial. Here's the code I have:

<?php

if ( ! defined('BASEPATH')) exit('No direct script access allowed');  

class MY_Controller extends CI_Controller {
    public function __construct() {
       parent::__construct();

       if (!$this->ion_auth->is_admin()) {
            redirect('auth/login');
       } else {
            //Store user in $data
            $data->user_info = $this->ion_auth->user()->row();
            //Load $the_user in all views
            $this->load->vars($data);        
       }
    }
}

?>

The correct view loads underneath the error but obviously I'd like to know what's wrong. Since this is my first turn time working with ion-auth and I'm relatively new to code igniter as well, I was wondering if anyone knew how to go about debugging an error like this. Teach a man to fish, feed him for a lifetime! I'd really appreciate not just solutions but methods so I can learn and do this on my own.


Solution

  • Are you working on PHP 5.4+ ?

    In that case, you must declare $data before using it:

    Change:

    $data->user_info = $this->ion_auth->user()->row();
    

    to

    $data = new stdClass(); 
    $data->user_info = $this->ion_auth->user()->row();
    

    and try again. Hpe it helps!