Codeigniter: автоматический вход нового зарегистрированного пользователя на сайт и перенаправление на страницу профиля

Я работаю в формах регистрации и входа в систему Codeigniter. Я создал их все работает. теперь мне нужно, чтобы пользователь автоматически вошел в систему, когда он успешно зарегистрировался на сайте.

Добавить код пользователя:

 public function add_user() {
    $data = array(
        'username' => $this->input->post('user_name'),
        'email' => $this->input->post('email_address'),
        'password' => md5($this->input->post('password'))
    );
    $this->db->insert('user', $data);
}



Регистрация и проверка:

public function registration() {
    $this->load->library('form_validation');
    // field name, error message, validation rules
    $this->form_validation->set_rules('user_name', 'User Name', 'trim|required|min_length[4]|xss_clean');
    $this->form_validation->set_rules('email_address', 'Your Email', 'trim|required|valid_email');
    $this->form_validation->set_rules('password', 'Password', 'trim|required|min_length[4]|max_length[32]');
    $this->form_validation->set_rules('con_password', 'Password Confirmation', 'trim|required|matches[password]');

    if ($this->form_validation->run() == FALSE) {
        $this->index();
    } else {
        $this->user_model->add_user();
        $this->thank();
    }
}

person Xabby    schedule 08.12.2015    source источник


Ответы (1)


В другой части,

else {
    $id = $this->user_model->add_user();
    // set session here like how you will set on login
    $data["user_id"] = $id; 
    ...// other required data for session
    $this->session->set_userdata($data);
    $this->thank();
}

В модели возвращается последний идентификатор вставки после вставки данных

$this->db->insert('user', $data);
return $this->db->insert_id();//   <--- this line
person Niranjan N Raju    schedule 08.12.2015
comment
Итак, в сеансе я должен получить адрес электронной почты и пароль ПОЛЬЗОВАТЕЛЯ, а затем войти в систему? не могли бы вы объяснить это немного больше для большего понимания. - person Xabby; 08.12.2015
comment
Вы имеете в виду, что хотите сохранить адрес электронной почты и пароль в сеансе вошедшего в систему пользователя ?? - person Niranjan N Raju; 08.12.2015
comment
да. потому что я вхожу в систему на основе адреса электронной почты и пароля. - person Xabby; 08.12.2015
comment
Покажите, как вы настраиваете сеанс после входа в систему ?? - person Niranjan N Raju; 08.12.2015
comment
Вот первая часть: function login($email, $password) { $this-›db-›where(email, $email); $this-›db-›where(пароль, $пароль); $query = $this-›db-›get(user); если ($query-›num_rows() › 0) { - person Xabby; 08.12.2015
comment
foreach ($query-›result() as $rows) { // добавляем все данные в сессию $newdata = array( 'user_id' =› $rows-›id, 'user_name' =› $rows-›username, 'user_email ' =› $rows-›email, 'logged_in' =› TRUE, ); } $this-›session-›set_userdata($newdata); вернуть истину; } вернуть ложь; } - person Xabby; 08.12.2015
comment
таким же образом установите сеанс и здесь, - person Niranjan N Raju; 08.12.2015
comment
Тот же сеанс для функции регистрации или добавить пользователя? - person Xabby; 08.12.2015