0

Codeigniter session works well on local but does not work on a hosting server. Need a help. thanks Config.php

$config['sess_driver'] = 'files';
$config['sess_cookie_name'] = 'ci_session';
$config['sess_expiration'] = 0;
$config['sess_save_path'] = 'ci_sessions';
$config['sess_match_ip'] = FALSE;
$config['sess_time_to_update'] = 3600;
$config['sess_regenerate_destroy'] = FALSE;
$config['cookie_prefix']    = ""; 

$config['cookie_domain']    = ""; 
$config['cookie_path']  = "/"; 
$config['cookie_secure']    = FALSE;
$config['cookie_httponly']  = FALSE;

Autoload.php

$autoload['libraries'] = array('session', 'form_validation', 'database', 'upload', 'email', 'encryption');

Home.php

public function konektion(){
    if(isset($_POST['ok']) && isset($_POST['email'])!=null && isset($_POST['passwd']) != null){
        $this->form_validation->set_rules('email','Email','required|valid_email');
        $this->form_validation->set_rules('passwd','Mot De Passe','required|min_length[4]');
        if($this->form_validation->run() == TRUE){
            $email = stripslashes(strtolower(($this->input->post('email'))));
            $passwd = stripslashes($this->input->post('passwd'));
            $salt = '$'.base64_encode('simo').'$'. do_hash($passwd, 'md5');
            $tab = array('login' => $email, 'password' => $salt);
            $tab1 = $this->UserModel->findOneUser($tab);
            if ($tab1['nbre'] == 1) {
                $sessiondata = array(
                        'userid'  => $tab1['iduser'],
                        'username'  => $tab1['nom'],
                        'status'  => $tab1['status'],
                        'login'  => $tab1['login'],
                        'role'  => $tab1['role'],
                        'logged_in' => TRUE
                );
                $this->load->library('session');
                $this->session->set_userdata($sessiondata);

                $data['page_title'] = 'Envol | Admin';
                $this->load->view('admin/index', $data);
            }
            else {
                    $data['msg']  = '<b>Invalid Email Or Password Entered</b>';
                    $data['page_title'] = "Admin Login";
                    $this->load->view("admin/login", $data);
                }

        }else{
            $this->index();
        }
    }else{
        $this->index();
    }
}

This what i have like code and configuration. While trying to get get access to $_session['userid] in any controller or viex the message i receive is Undefined index: userid

2 Answers2

0

Could you check your Codeigniter settings:

application/config/autoload.php

$autoload['libraries'] = array('database', 'session', 'user_agent');

and on application/config/config.php

$config['sess_driver'] = 'database';
$config['sess_cookie_name'] = 'ci_session';
$config['sess_save_path'] = 'ci_sessions';

Keep up the good work!

0

Here you are setting the session..

if ($tab1['nbre'] == 1) {
                $sessiondata = array(
                        'userid'  => $tab1['iduser'],
                        'username'  => $tab1['nom'],
                        'status'  => $tab1['status'],
                        'login'  => $tab1['login'],
                        'role'  => $tab1['role'],
                        'logged_in' => TRUE
                );
                $this->load->library('session');
                $this->session->set_userdata($sessiondata);

                $data['page_title'] = 'Envol | Admin';
                $this->load->view('admin/index', $data);
            }

the problem is wth your data may be you didnt export database on server .. do on thing

if ($tab1['nbre'] == 1) {
 $sessiondata = array(
                            'userid'  => $tab1['iduser'],
                            'username'  => $tab1['nom'],
                            'status'  => $tab1['status'],
                            'login'  => $tab1['login'],
                            'role'  => $tab1['role'],
                            'logged_in' => TRUE
                    );
                    $this->load->library('session');
                    $this->session->set_userdata($sessiondata);
 echo 'is one  <pre>';
print_r($_SESSION);
EXIT;
 $sessiondata = array(
                            'userid'  => $tab1['iduser'],
                            'username'  => $tab1['nom'],
                            'status'  => $tab1['status'],
                            'login'  => $tab1['login'],
                            'role'  => $tab1['role'],
                            'logged_in' => TRUE
                    );
                    $this->load->library('session');
                    $this->session->set_userdata($sessiondata);
} else {
echo 'is '.$tab1['nbre'].' ... unable to set session;  
EXIT;
}
Masih Ansari
  • 467
  • 3
  • 9