如何将数据保存到会话CodeIgniter

haii, i try looking for saving data to session CodeIgniter 3, so if i post a form but a validation form says the form is not complete, the value from user not to be deleted

Controller :

$err = array();
if(!$_POST['message']) {
        $err['msg_err'] = '<strong>Oh snap!</strong> message is empty';
}
//saving temporary data if error
if(count($err)){
        $ses_data = array(
            'phonebook'         => $this->input->post['phonebook'],
            'message'           => $this->input->post('message')
        );
        $this->session->set_tempdata($ses_data);
}

View :

<textarea name="message" placeholder="Type a message"><?php if (isset($_SESSION['message'])) {echo $_SESSION['message'];} ?></textarea>

the code above is work correcly if i post single data, i mean from text or textarea but not with select if the condition is multiple, i know because the data is array.

here the problem begin :

<select name="phonebook" class="form-control select2" multiple="multiple" data-placeholder="Select a contact" style="width: 99.5%;">
<?php
    foreach ($phonebook->result() as $p){
    echo"<option value='$p->Number' ";if (isset($_SESSION['phonebook'])) { if($_SESSION['phonebook']===$p->Number){echo "selected";}} echo">$p->u_full_name</option>"; }
    }
?>
</select>

it only could save 1 selection data, event i was change on controller with array $this->input->post['phonebook'] i think the problem on view, so how i shown array on multiple selection ? Thanks

First auto load session in configuration in ci then try this code

$err = array();
if(!$_POST['message']) {
    $err['msg_err'] = '<strong>Oh snap!</strong> message is empty';
  }
 //saving temporary data if error
 if(count($err)){
    $ses_data = array(
        'phonebook'         => $this->input->post['phonebook'],
        'message'           => $this->input->post('message')
    );
    $this->session->set_userdata($ses_data);
 }

Thank You