контроллер:
- Код: Выделить всё
<?php
class User extends Controller {
function User()
{
parent::Controller();
$this->load->model('user_model');
}
/* Метод входа на сайт */
function index()
{
$data['main_content'] = 'login_form';
$this->load->view('includes/template', $data);
}
/* Метод загрузки формы регистрации */
function register()
{
$data['main_content'] = 'register_form';
$this->load->view('includes/template', $data);
}
/* Метод добавления нового пользователя в базу */
function create()
{
$this->load->library('form_validation');
$this->form_validation->set_rules('username', 'Логин', 'trim|required|valid_username|min_length[2]|max_length[15]|xss_clean|callback_username_not_exists');
$this->form_validation->set_rules('email', 'Email', 'trim|required|valid_email');
$this->form_validation->set_rules('password', 'Пароль', 'trim|required|min_length[4]|max_length[32]');
$this->form_validation->set_rules('password_confirm', 'Подтверждение пароля', 'trim|required|matches[password]');
if($this->form_validation->run() == FALSE)
{
$data['main_content'] = 'register_form';
$this->load->view('includes/template', $data);
}
else
{
//$this->load->model('user_model');
if($query = $this->user_model->create_member())
{
$data['main_content'] = 'register_success';
$this->load->view('includes/template', $data);
}
else
{
$this->load->view('register_form');
}
}
}
function username_not_exists($username)
{
$this->form_validation->set_message('username_not_exists', 'Уже занято');
if (!$this->user_model->check_exists_username($username))
{
return FALSE;
}
else
{
return TRUE;
}
}
} // END class
И модель:
- Код: Выделить всё
<?php
class User_model extends Model {
function create_member()
{
$new_member_insert_data = array(
'username' => $this->input->post('username'),
'email' => $this->input->post('email'),
'password' => sha1($this->input->post('password'))
);
return $insert = $this->db->insert('users', $new_member_insert_data);
}
function check_exists_username($username)
{
$query = "SELECT id FROM users WHERE username = ?";
$result = $this->db->query($query, $username);
if($rusult->num_rows() > 0)
{
return TRUE;
}
else
{
return FALSE;
}
}
} // END class
Мануал глядел, делал проверку по слову "test" все равно не хочет даже по мануалу, так и не получил "Уже занято"...
П.С. пробовал уже каверкать название username_not_exists и check_exists_username лишь бы получить ошибку что не такой функции, но похоже что медот просто не вызывается
