Ver Mensaje Individual
  #1 (permalink)  
Antiguo 10/02/2013, 23:25
GonzaFY
 
Fecha de Ingreso: febrero-2013
Mensajes: 33
Antigüedad: 12 años
Puntos: 2
Usar sesiones o hacer llamados a la base de datos

La mayoria de las paginas que poseen un registro obviamente necesitan mostrar en pantalla el nombre de usuario y otras cosas..
En primer lugar tenia pensado hacer todo mediante sesiones pero ahora me di cuenta que no es muy efectivo ya que si cambio alguna informacion el usuario debera desconectarse y volverse a conectar para actualizar su info..
Entonces modifique mi codigo e hice que cada vez que se quiera utilizar el nombre y algo mas se haga un llamado a la base de datos para obtener todos los datos actualizados pero queria saber si hacer esto de esta forma es efectivo o podria hacerlo mejor:
Código PHP:
Ver original
  1. <?php if ( ! defined('BASEPATH')) exit('No direct script access allowed');
  2.  
  3. class Miembros {
  4.  
  5.    
  6.     function __construct()
  7.         {
  8.              $this->CI =& get_instance();
  9.            
  10.         }
  11.         public function Ingresar($usuario, $contrasenia)
  12.         {
  13.            
  14.             $this->CI->db->where('usuario', $usuario);
  15.             $this->CI->db->where('contrasenia', $contrasenia);
  16.             $query = $this->CI->db->get('miembros');
  17.            
  18.             if($query->num_rows() == 1)
  19.             {
  20.                 $obtener = $query->row();
  21.                 $data = array(
  22.                 'id' => $obtener->id,
  23.                 'conexion' => true );
  24.                 $this->CI->session->set_userdata($data);
  25.                 return true;
  26.             }
  27.             return false;
  28.         }
  29.    
  30.    
  31.         public function Datos()
  32.         {
  33.           $data['usuario'] = $this->Obtener('usuario');
  34.           $data['nombre'] = $this->Obtener('nombre');
  35.           $data['apellido'] = $this->Obtener('apellido');
  36.           $data['rango'] = $this->Obtener('rango');
  37.           $data['conexion'] = $this->CI->session->userdata('conexion');
  38.           $data['id'] = $this->CI->session->userdata('id');
  39.          
  40.           return $data;
  41.         }  
  42.    
  43.         public function Obtener($objeto)
  44.         {
  45.             $this->CI->db->where('id', $this->CI->session->userdata('id'));
  46.             $consulta = $this->CI->db->get('miembros');
  47.            
  48.             if($consulta->num_rows() == 1)
  49.             {
  50.                 $obtener = $this->CI->db->get('miembros')->row();  
  51.                 return $obtener->$objeto;
  52.             }
  53.                        
  54.            
  55.            
  56.         }
  57.    
  58.         public function Desconectar()
  59.         {
  60.             $this->CI->session->sess_destroy();
  61.         }
  62.        
  63.         public function Chequear()
  64.         {
  65.             if(isset($this->CI->session->userdata['conexion']))
  66.             {
  67.                 return true;
  68.             }
  69.             else {
  70.                
  71.            
  72.             return false;
  73.             }
  74.         }
  75. }
  76.  
  77. /* End of file Miembros.php */

Basicamente cuando hago llamado a la funcion Datos entonces me devuelve todo actualizado pero no se si esta mal hecho o creen que deberia hacerlo de otra forma..