Как записать ID юзера в момент логина?

190
26 апреля 2017, 13:09

Всем привет!

Хочу организовать запись логов о логине пользователей по типу:

IP | Date | User ID |

Получается записать IP и Date, а вот как записать USER ID понять не могу.

Файл контролера:

function login()
{
    if ($this->session->userdata('logged_in'))
    {
        $logged_in_user = $this->session->userdata('logged_in');
        if ($logged_in_user['is_admin'])
        {
            redirect('admin');
        }
        else
        {
            redirect(base_url());
        }
    }
    // set form validation rules
    $this->form_validation->set_error_delimiters($this->config->item('error_delimeter_left'), $this->config->item('error_delimeter_right'));
    $this->form_validation->set_rules('username', lang('users input username_email'), 'required|trim|max_length[256]');
    $this->form_validation->set_rules('password', lang('users input password'), 'required|trim|max_length[72]|callback__check_login');
    if ($this->form_validation->run() == TRUE)
    {
        if ($this->session->userdata('redirect'))
        {
            // redirect to desired page
            $redirect = $this->session->userdata('redirect');
            $this->session->unset_userdata('redirect');
            redirect($redirect);
        }
        else
        {
            $logged_in_user = $this->session->userdata('logged_in');
            if ($logged_in_user['is_admin'])
            {
                                    $this->users_model->login_history();
                // redirect to admin dashboard
                redirect('admin');
            }
            else
            {       
                                    $this->users_model->login_history($id);
                // redirect to landing page
                redirect(base_url());
            }
        }
    }
    // setup page header data
    $this->set_title(lang('users title login'));
            $this->add_css_theme('login.css');
    $data = $this->includes;
    // load views
    $data['content'] = $this->load->view('user/login', NULL, TRUE);
    $this->load->view($this->template, $data);
}

Файл модели:

function login($username = NULL, $password = NULL)
{
    if ($username && $password)
    {
        $sql = "
            SELECT
                id,
                username,
                password,
                salt,
                first_name,
                last_name,
                email,
                language,
                is_admin,
                status,
                created,
                updated
            FROM {$this->_db}
            WHERE (username = " . $this->db->escape($username) . "
                    OR email = " . $this->db->escape($username) . ")
                AND status = '1'
                AND deleted = '0'
            LIMIT 1
        ";
        $query = $this->db->query($sql);
        if ($query->num_rows())
        {
            $results = $query->row_array();
            $salted_password = hash('sha512', $password . $results['salt']);
            if ($results['password'] == $salted_password)
            {
                unset($results['password']);
                unset($results['salt']);
                return $results;
            }
        }
    }
    return FALSE;
}
    /**
 * Handle user login history
 *
 * @return boolean
 */
function login_history()
{
        $sql = "
            INSERT INTO login_history (
                                    ip,
                                    date,
                                    event,
                            ) VALUES (
                                    " . $this->db->escape($_SERVER['REMOTE_ADDR']) . ",
                                    '" . date("Y-m-d H:i:s") . "',
                                    'Выполнен вход'
                            )
        ";
                    $this->db->query($sql);
    return TRUE;
}

Благодарен за любую помощь!

READ ALSO
Yii2 сессия очищается после авторизации

Yii2 сессия очищается после авторизации

ЗдравствуйтеДелаю простой интернет-магазин

371
Как написать такой .htaccess?

Как написать такой .htaccess?

Как написать в правилоhtaccess, чтобы при заходе на сайт переправляло на public/index

174
SELECT * FROM “название стола в переменной”

SELECT * FROM “название стола в переменной”

Подскажите плз реализацию правильного написания вот этого куска, чтобы название стола бралось из переменной с помощью метода Post

194
регулярное выражения php

регулярное выражения php

Здравствуйтехочу получит счет:

229