Не работает колбек функция

Вопросы об установке, настройке и работе самого фреймворка

Не работает колбек функция

Сообщение nazarov » 29 июл 2010, 01:54

Здравствуйте, подскажите кто знает в чем проблема, почему не хочет работать колбек username_not_exists
контроллер:
Код: Выделить всё
<?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 лишь бы получить ошибку что не такой функции, но похоже что медот просто не вызывается
nazarov
 
Сообщения: 4
Зарегистрирован: 28 июл 2010, 21:28

Re: Не работает колбек функция

Сообщение irokezeg » 29 июл 2010, 10:15

Рабочий вариант
Код: Выделить всё

    function _CheckPass
($pass)
    {
        $flag = 1;

        if(!($this->user_info['pass'] == md5($pass.SALT) && $this->user_info['status'] == ACTIVATED))
        {
              $ci = &get_instance();
              $ci->validation->set_message('_CheckPass', $this->lang->line("wrongpass", "payments"));
              $flag = 0;
        }

        return ($flag)?true:false;
    }
 
Аватара пользователя
irokezeg
 
Сообщения: 8
Зарегистрирован: 27 фев 2009, 13:18

Re: Не работает колбек функция

Сообщение nazarov » 29 июл 2010, 11:20

да она не вызывается, а не то-что не работает...
а, да...использую hmvc, уже нарыл в чем проблема, попозже попробую
nazarov
 
Сообщения: 4
Зарегистрирован: 28 июл 2010, 21:28

Re: Не работает колбек функция

Сообщение nazarov » 29 июл 2010, 12:34

Может кому-то понадобится, вот решение:
Код: Выделить всё
<?php if (!defined('BASEPATH')) exit('No direct script access allowed');

class MY_Form_validation extends CI_Form_validation
{
 function run($module = '', $group = '') {
 (is_object($module)) AND $this->CI =& $module;
 return parent::run($group);
 }
}
/* End of file MY_Form_validation.php */
/* Location: ./application/libraries/MY_Form_validation.php */

 

И проверять форму так: if ($this->form_validation->run($this) == FALSE) вместо if ($this->form_validation->run() == FALSE)
nazarov
 
Сообщения: 4
Зарегистрирован: 28 июл 2010, 21:28

Re: Не работает колбек функция

Сообщение HRustBB » 26 авг 2010, 21:00

nazarov писал(а): nazarov 29 июл 2010, 13:34
Может кому-то понадобится, вот решение:


Fatal error: Call to a member function set_rules() on a non-object in Z:\home\codeigniter2.ru\www\system\application\modules\autorize\controllers\autorize.php on line 84

Вот что получается, как с этим то бороться
HRustBB
 
Сообщения: 13
Зарегистрирован: 18 авг 2010, 18:57


Вернуться в Общие вопросы по фреймворку

Кто сейчас на конференции

Сейчас этот форум просматривают: Denis и гости: 0