Сессия Codeigniter проблема уничтожить / создать

Я обновляюсь с 1.7.3 до 2.2.0 Codeigniter. Мой старый скрипт входа в систему работал, но больше не работает. Почему sess_destroy вызывает это?

Эта работа в новой версии codeigniter:

        $this->session->sess_destroy();
$this->session->unset_userdata( array( 'logged' => false, 'users_id' => false, 'teams_id' => false, 'leader_teams_id' => false ) );
$this->session->sess_create();
$this->session->set_userdata( $data );

Это не работает в новой версии codeigniter:

        $this->session->sess_destroy();
$this->session->unset_userdata( array( 'logged' => false, 'users_id' => false, 'teams_id' => false, 'leader_teams_id' => false ) );
$this->session->set_userdata( $data );

так в основном $this->session->sess_create(); заставить его работать, но почему это так, и правильно ли это так же использовать?

Вот полная функция входа в систему, так как она работала в старой версии codeigniter:

function login_do()
{
if ( $_POST['username'] && $_POST['password'] )
{
$user = $this->db->where( array( 'users_name' => trim( $_POST['username'] ), 'users_password' => sha1( md5( $_POST['password'] ) ) ) )->get( 'users' );
if ( $user->num_rows == '1' )
{
$user = $user->row();
$data = array( 'logged' => true, 'users_id' => $user->users_id );
if ( $user->users_teams_id > '0' )
{
$leader = $this->db->where( array( 'team_leader_id' => $user->users_id, 'teams_id' => $user->users_teams_id ) )->get( 'teams' )->row();
$data['teams_id'] = $user->users_teams_id;
if ( $leader )
$data['leader_teams_id'] = $user->users_teams_id;
}

$this->session->sess_destroy();
$this->session->unset_userdata( array( 'logged' => false, 'users_id' => false, 'teams_id' => false, 'leader_teams_id' => false ) );
$this->session->set_userdata( $data );
}
else
$this->session->set_flashdata( 'error', 'user_pass' );
}
else
$this->session->set_flashdata( 'error', 'data' );

redirect( 'home' );
}

0

Решение

Codeigniter сеанс создать:

$data = array(
'logged'   => $logged,
'users_id' => $users_id,
'teams_id'  => $teams_id,
'leader_teams_id'=> $leader_teams_id
);
$this->session->set_userdata($data);

Codeigniter сеанса уничтожить:

$array_items = array('logged' =>'', 'users_id'=>'', 'teams_id'=>'', 'leader_teams_id'=>'');
$this->session->unset_userdata($array_items);
0

Другие решения

Других решений пока нет …