Ver Mensaje Individual
  #4 (permalink)  
Antiguo 16/03/2015, 15:22
edevep
 
Fecha de Ingreso: diciembre-2014
Mensajes: 20
Antigüedad: 10 años, 3 meses
Puntos: 0
Respuesta: Contador de visitas

Gracias por responder a mi tema. @jluishuaman

Edito: Ya solucione el tema.

Resulta que tenia que devolver el objeto de la variable para que me muestre la cantidad de visitas.

Tenia que retornar el valor de la variable, osea, $return $res.

Dejo el codigo corregido por si alguien lo necesita.

Modelo paginas_model.php

Código PHP:
Ver original
  1. <?php if ( ! defined('BASEPATH')) exit('No direct script access allowed');
  2.  
  3. class Paginas_model extends CI_Model
  4. {
  5.     function __construct()
  6.     {
  7.         parent::__construct();
  8.         $this->load->database();
  9.     }
  10.  
  11.     function visitas()
  12.     {
  13.  
  14.         // Pregunto si la variable counte existe
  15.         if (!isset($_COOKIE['counte']))
  16.         {
  17.  
  18.             // $dtz = new DateTimeZone("America/Lima"); //Your timezone
  19.             // $currentv = new DateTime('NOW');
  20.             // $currentv = $currentv->format('Y-m-d H:i:s'); // had to format this 
  21.  
  22.             $dtz = new DateTimeZone("America/Lima"); //Your timezone
  23.             $currentv = new DateTime('NOW', $dtz);
  24.             $currentv = $currentv->format("Y-m-d H:i:s");                  
  25.            
  26.             // Los campos a registrar
  27.             $this->fecha = $currentv;
  28.             $this->direccionip   = $_SERVER['REMOTE_ADDR']; // direccionip
  29.             $this->direccionip4  = ip2long($_SERVER['REMOTE_ADDR']); // direccionip4
  30.  
  31.             $this->db->insert('visitas', $this);
  32.  
  33.         }
  34.  
  35.         setcookie('counte', 1, time()+3700);
  36.  
  37.         // Realizo una query a la la tabla visitas
  38.         $consulta = $this->db->query('SELECT count(*) as visitas FROM visitas');           
  39.         $res      = $consulta->row();  // retorna los resultados de la tabla visitas
  40.  
  41.         return $res;
  42.  
  43.     }
  44.  
  45. }

Controlador paginas.php

Código PHP:
Ver original
  1. <?php if ( ! defined('BASEPATH')) exit('No direct script access allowed');
  2.  
  3. // Declaro la clase Paginas
  4. class Paginas extends CI_Controller {
  5.  
  6.     // declaramos el constructor
  7.     function __construct()
  8.     {
  9.         parent::__construct();
  10.         $this->load->helper('url');
  11.     }
  12.  
  13.     // el metodo index para mostrar la pagina de inicio
  14.     public function index()
  15.     {
  16.         $data['titulo']      = "titulo prueba";
  17.         $data['description'] = "titulo prueba";
  18.         $data['keywords']    = "titulo prueba";
  19.  
  20.         // LLamo al modelo que he creado
  21.         $this->load->model('paginas_model', 'Paginas');
  22.         $data['res'] = $this->Paginas->visitas();
  23.  
  24.         $this->load->view('bienvenido',$data);
  25.     }
  26.  
  27. }

La vista

Código PHP:
Ver original
  1. <section>
  2.       <p>Visitas: <?php echo $res->visitas; ?></p>
  3. </section>

Tabla mysql visitas

Código MySQL:
Ver original
  1. CREATE TABLE `visitas` (
  2.   `id` int(11) NOT NULL auto_increment,
  3.   `fecha` datetime default NULL,
  4.   `direccionip` varchar(200) collate utf8_unicode_ci default NULL,
  5.   `direccionip4` varchar(200) collate utf8_unicode_ci default NULL,
  6.   PRIMARY KEY  (`id`)
  7. ) ENGINE=MyISAM  DEFAULT CHARSET=utf8 COLLATE=utf8_unicode_ci AUTO_INCREMENT=6 ;

Última edición por edevep; 18/03/2015 a las 15:40 Razón: Se soluciono el tema del contador de visitas y se agrego la tabla mysql