Foros del Web » Programando para Internet » PHP » CodeIgniter »

[SOLUCIONADO] Problemas con login con rol en codeigniter

Estas en el tema de Problemas con login con rol en codeigniter en el foro de CodeIgniter en Foros del Web. Buenas a todos, gracias por leer mi post, tengo el siguiente problema al crear una cuenta de usuario (estoy siguiendo unos tutoriales en video de ...
  #1 (permalink)  
Antiguo 23/05/2013, 10:35
 
Fecha de Ingreso: diciembre-2008
Ubicación: http://www.solucionesrios.tk/
Mensajes: 413
Antigüedad: 15 años, 10 meses
Puntos: 19
Busqueda Problemas con login con rol en codeigniter

Buenas a todos, gracias por leer mi post, tengo el siguiente problema al crear una cuenta de usuario (estoy siguiendo unos tutoriales en video de nettus)



Acá mi controlador (login.php)

Código PHP:
<?php
class Login extends CI_Controller {
    
    function 
index()
    {
        
$data['main_content'] = 'login_form';
        
$this->load->view('includes/template'$data);
    }
    
    function 
validate_credentials()
    {
        
$this->load->model('membership_model');    
        
$query $this->membership_model->validate();
        
        if (
$query//Existe el usuario
        
{
            
$rol $this->membership_model->roles($this->input->post('username')); //Busco el rol en el modelo
            
$data = array(
                
'username' => $this->input->post('username'),
                
'rol' => $rol,
                
'is_logged_in' => true
            
);    
            
            
$this->session->set_userdata($data);
            
redirect('site/members_area');
        }
        else 
        {
            
$this->index();    
        }
    }
    
    function 
signup()
    {
        
$data['main_content'] = 'signup_form';
        
$this->load->view('includes/template'$data);
    }
    
    function 
create_member()
    {
        
$this->load->library('form_validation');
        
//field name, error message, validation rules
        
        
$this->form_validation->set_rules('first_name''First Name''trim|required');
        
$this->form_validation->set_rules('last_name''Last Name''trim|required');
        
$this->form_validation->set_rules('email_address''Email Address''trim|required|valid_email');    
        
        
$this->form_validation->set_rules('username''Username''trim|required|min_lenght[4]');
        
$this->form_validation->set_rules('password''Password''trim|required|min_lenght[4]|max_lenght[32]');
        
$this->form_validation->set_rules('password2''Password Confirmation''trim|required|min_lenght[4]|max_lenght[32]|matches[password]');
        
        if ((
$this->form_validation->run()) == FALSE)
        {
            
$this->signup();
        }
        else 
        {
            
$this->load->model('membership_model');    
            if (
$query $this->membership_model->create_member)
            {
                
$data['main_content'] = 'signup_succesful';
                
$this->load->view('includes/template'$data);
            }
            else
            {
                
$this->load->view('signup_form');    
            }
        }
    }
}
?>
Acá el modelo (membership_model.php)

Código PHP:
<?php
class Membership_model extends CI_Model {
    
    function 
validate()
    {
        
$this->db->where('username'$this->input->post('username'));
        
$this->db->where('password'md5($this->input->post('password')));
        
$query $this->db->get('membership');
        
        if(
$query->num_rows == 1)
        {
            return 
true;    
        }
    }
    
    function 
roles($usuario)
    {
        
$sql "SELECT roles FROM membership WHERE username = ? LIMIT 1";
        
$q $this->db->query($sql$usuario);    
        if (
$q->num_rows() > 0)
        {
            foreach(
$q->result() as $row) {
                
$data $row;
            }
            return 
$data;
        }
    }
    
    function 
create_member()
    {
        
$new_member_insert_data = array(
            
'first_name' => $this->input->post('first_name'),
            
'last_name' => $this->input->post('last_name'),
            
'username' => $this->input->post('username'),
            
'password' => md5($this->input->post('password')),
            
'email_address' => $this->input->post('email_address'),
            
'roles' => '1'
        
);    
        
        
$insert $this->db->insert('membership'$new_member_insert_data);
        return 
$insert;
    }
    
}
?>
Y acá la vista (signup_form.php)

Código PHP:
<h1>Create an Account</h1>
<fieldset>
    <legend>Personal Information</legend>
    <?php
        
echo form_open('login/create_member');
        echo 
form_input('first_name'set_value('first_name''First Name'));
        echo 
form_input('last_name'set_value('last_name''Last Name'));
        echo 
form_input('email_address'set_value('email_address''Email Address'));
    
?>
</fieldset>
<fieldset>
    <legend>Login Info</legend>
    <?php
        
echo form_input('username'set_value('username''Username'));
        echo 
form_input('password'set_value('password''Password'));
        echo 
form_input('password2'set_value('password2''Password Confirm'));
        
        echo 
form_submit('submit','Create Account');
    
?>
    
    <?php echo validation_errors("<p class='error'>"); ?>
</fieldset>
__________________
http://www.solucionesrios.tk/

Visita mi Web!
  #2 (permalink)  
Antiguo 23/05/2013, 11:14
Avatar de abimex
Colaborador
 
Fecha de Ingreso: marzo-2007
Ubicación: ~
Mensajes: 751
Antigüedad: 17 años, 8 meses
Puntos: 137
Respuesta: Problemas con login con rol en codeigniter

en Login.php esta linea
Código PHP:
Ver original
  1. if ($query = $this->membership_model->create_member)
no estas llamando al metodo, tienes que ponerle los () al final para que lo ejecute, sino, busca una propiedad que no existe y por eso te tira el error
__________________
>> abimaelmartell.com
  #3 (permalink)  
Antiguo 23/05/2013, 11:36
 
Fecha de Ingreso: diciembre-2008
Ubicación: http://www.solucionesrios.tk/
Mensajes: 413
Antigüedad: 15 años, 10 meses
Puntos: 19
Respuesta: Problemas con login con rol en codeigniter

Gracias abimex
__________________
http://www.solucionesrios.tk/

Visita mi Web!

Etiquetas: login, rol
Atención: Estás leyendo un tema que no tiene actividad desde hace más de 6 MESES, te recomendamos abrir un Nuevo tema en lugar de responder al actual.
Respuesta




La zona horaria es GMT -6. Ahora son las 11:40.