2016-10-07 3 views
0

сеансовые Im когда пользователь Войти модель пользователякак создать новую сессию, чтобы заменить старую сессию CodeIgniter

function cek(){ 
$username=$this->input->post('username'); 
$password=md5($this->input->post('password')); 
$query=$this->db->query("select akun.*,profile.kelas, profile.jurusan FROM profile right JOIN akun ON profile.id_akun = akun.id_akun WHERE akun.username = '$username' AND akun.password = '$password'"); 
    if ($query->num_rows() > 0) 
    foreach ($query->result() as $data) { 
     $data=array('LOGIN'=>TRUE,'LEVEL'=>$data->level,'KELAS'=>$data->kelas,'JURUSAN'=>$data->jurusan,'ID_AKUN'=>$data->id_akun,'USERNAME'=>$data->username); 
     $this->session->set_userdata($data); 
     echo json_encode(array("status" => TRUE)); 

    } else { 
    echo json_encode(array("status" => FALSE)); 
    }  

} Я хочу, чтобы заменить только сеанс KELAS и JURUSAN

профиль Контроллер

public function tambahprofile() 
     { 
      if($this->session->userdata('LOGIN')=='TRUE' and $this->session->userdata('LEVEL')==1) 
      { 
       $id_akun=$this->session->userdata('ID_AKUN'); 
       $kelas='12'; 
       $jurusan='multimedia'; 
       $this->validasi(); 
       $data = array(
        'nis' =>$this->input->post('nis'), 
        'id_akun' =>$id_akun, 
        'nama' =>$this->input->post('nama'), 
        'telpon' =>$this->input->post('telpon'), 
        'alamat' =>$this->input->post('alamat'), 
        'tgllahir' =>$this->input->post('tgllahir'), 
        'tmptlahir' =>$this->input->post('tmptlahir'), 
        'jurusan' =>$this->input->post('jurusan'), 
        'kelas' =>$this->input->post('kelas'), 
        'jk' =>$this->input->post('jk'), 

        ); 
       if ($this->input->post('id')=='') { 
        $this->profile_model->tambah($data); 
        /** 

         TODO: 
         - First todo item 
         - Second todo item 

        */ 


       echo json_encode(array("status" => TRUE)); 
       }else{ 
        $this->profile_model->update(array('id' => $this->input->post('id')),$data); 
         $this->profile_model->update($data); 

       echo json_encode(array("status" => TRUE)); 
       } 
       }else { 
      redirect('beranda/loginPage');  
      } 

      } 

Вид

<?php echo $this->session->userdata('KELAS').$this->session->userdata('JURUSAN');?> 

Я создать новую сессию, чтобы заменить старый сессионный KELAS и jurusan нет ошибок, но на мой взгляд, старая сессия

+0

Где вы разместили этот код в контроллере? –

+0

профиль контроллера в функции addprofile – faza

ответ

0

, когда вам нужно заменить старые данные только незадана предыдущие данные, а затем снова установить свои новые данные

//remove old data 
$perticular_data = array('KELAS'=>$kelas,'JURUSAN'=>$jurusan); 
$this->session->unset_userdata($perticular_data); 

//set new data 
$perticular_data = array('KELAS'=>$new_kelas,'JURUSAN'=>$new_jurusan); 
$this->session->set_userdata($perticular_data); 
+0

$ this-> session-> unset_userdata ($ data); удалить всю сессию? это мой полный сеанс $ data = array ('LOGIN' => TRUE, 'LEVEL' => $ data-> level, 'KELAS' => $ data-> kelas, 'JURUSAN' => $ data-> jurusan, 'iD_AKUN' => $ данных-> id_akun, 'USERNAME' => $ данных-> имя пользователя); Я просто хочу заменить юрзана и келаса – faza

0

Попробуйте это.

$data = array(
       'kelas' => "test1", 
       'jurusan' => "Test2" 
      ); 
$this->session->set_userdata($data); 

var_dump($this->session->userdata()); 

$this->session->unset_userdata('kelas'); 
$data = array('kelas' => "newTest"); 
$this->session->set_userdata($data); 

var_dump($this->session->userdata()); 

Использование $this->session->unset_userdata('kelas'); будет отменено только для этой записи. $data = array('kelas' => "newTest"); $this->session->set_userdata($data); заменит только эту запись.

На боковой ноте $password=md5($this->input->post('password')); это не рекомендуется. Если вы читаете о скорости, в которой md5() может быть сломан, это делает ее плохой вариант для хранения паролей.

PHP имеет встроенную функцию хэширования password_hash()

http://php.net/manual/en/function.password-hash.php

стоило бы прочитать.

Смежные вопросы