Ver Mensaje Individual
  #5 (permalink)  
Antiguo 04/04/2008, 20:17
Avatar de destor77
destor77
 
Fecha de Ingreso: noviembre-2004
Ubicación: Gálvez, Santa Fe, Argentina
Mensajes: 2.654
Antigüedad: 20 años, 2 meses
Puntos: 43
Re: dudas mvc + POO

hola de nuevo, yo aca molestando otra vez, esta vez quiero hacer la siguiente consulta:

arme mi archivo modelo llamado iniciomodelo.php en el cual entre otras cosas contiene estas funciones:
Código PHP:

            $ip 
='202.164.32.81';
            
$fecha date("j del n de Y");
            
$hora date("h:i:s");
            
$segundos time();
            
$can "3600";
            
$resta $segundos-$can;
            
            
//Se genera la consulta a la base de datos, solicitando cualquier registro 3600 segundos 
             //anteriores a los segundos actuales(obtenemos todos los registros una hora atrás).
             
$sql $this->db->prepare("SELECT segundos, IP FROM `contador` WHERE segundos >= ? 
                                         AND IP LIKE ? "
);
             
$sql->execute(array($resta$IP));
             
            
// Creamos el condicionamiento de loguear o no la entrada, 
            // dependiendo si el numero de registros es o no mayor a cero.
            
if ($sql->rowcount()>0){
                
//no se cuenta la visita
            
}
            else{
                
$sql $this->db->prepare("INSERT INTO `contador` (id, IP, fecha, hora, segundos)
                                          VALUES ('','?','?','?')"
);
                
$sql->execute(array($IP,$fecha,$hora,$segundos));
            }
            
            
// Contamos los registros que tenemos en la tabla y se los asignamos
            // a la variable $visitas que es la que después visualizaremos en pantalla.
            
$visitas $this->db->prepare("select * from contador where id");
            
$visitas->execute();
            
$visitas->rowcount();
            return 
$visitas;
        }
        
        
/**
         * @name : get_visitante().
         * @return : Devuelve la ip y el pais desde donde nos visitan.
         */
        
        
public function get_visitante(){
                    
            
//obtengo la ip del visitante
            //$ip =$_SERVER["REMOTE_ADDR"];
            
$ip ='202.164.32.81';
            
            
//busco la ip en la base de datos.
            
$ip_country $this->db->prepare("SELECT country_code2,country_name FROM paises 
                                               WHERE IP_FROM<=inet_aton('?')
                                                AND IP_TO>=inet_aton('?') "
);
            
$ip_country->execute(array($ip,$ip));
            
            
//extraigo los datos
            
$nombre$ip_country->fetch();
            
            
//armo el resultado a mostrar.
            
$visitante="tu ip es: <b>".$ip."</b> - <B> - Pais: </B>".ucfirst(strtolower($nombre['country_name']))."
                         <img src='images/flag/"
.ucfirst(strtolower($nombre['country_name'])).".gif'  height='20' width='20' border='0'>";
            return 
$visitante;
        }
        
        
/**
         * @name : set_referencia().
         * @return : guarda las referencias en la base de datos.
         */
        
public function set_referencia(){
            
            
//obtengo la ip
            //$ip =$_SERVER["REMOTE_ADDR"];
            
$ip ='202.164.32.81';
            
            
//busco la ip en la base de datos.
            
$ip_country $this->db->prepare("SELECT country_code2,country_name FROM paises 
                                               WHERE IP_FROM<=inet_aton('?')
                                                AND IP_TO>=inet_aton('?') "
);
            
$ip_country->execute(array($ip,$ip));
            
            
//extraigo los datos
            
$nombre$ip_country->fetch();
            
            
//seteo la fecha
            
$fecha=date("l j F, Y, H:i");
            
            
//seteo la referencia
            
$dom=getenv("HTTP_REFERER");
            
            
//controlo la ip y guardo los datos
            
if (($ip!='200.43.135.145') ){
                
$sql$this->db->prepare("INSERT INTO referencias (`id_ref`, `ip`, `dominio`, `pais`,`fecha`) VALUES (NULL,'$ip','$dom','$nombre[country_name]','$fecha')");
                
$sql->execute();
            }
        } 
despues en mi controlador uso esto:
Código PHP:
class IndexController extends ControllerBase {
        
        
/**
         * @name : Index().
         * @return : Devuelve los datos para mostrar en la pagina principal del blog.
         * @access : public.
         */
        
public function index()
        {
            
            
//llamo a los modelos
            
require('modelo/InicioModelo.php');
            
            
//creo una instancia del modelo
            
$inicio= new InicioModel();
            
            
//pido al modelo todas las secciones
            
$visitantes=$inicio->get_visitante();
            
$visitas=$inicio->get_visitas();
            
$categorias=$inicio->get_cetegorias();
            
$referencias=$inicio->set_referencia();
            
$links=$inicio->get_links();
            
$post=$inicio->get_noticias();
            
            
//preparo los datos para la vista
            
$data['visitantes']=$visitantes;
            
$data['visitas']=$visitas;
            
$data['categorias']=$categorias;
            
$data['links']=$links;
            
$data['referencias']=$referencias;
            
$data['post']=$post;
            
            
//presento nuestra plantilla
            
$this->view->show("index.php"$data);
        }
        
    } 
y por ultimo en la vista pongo asi:
Código PHP:
<div  id="menu">
            <ul>
                <li id="current"><a href="index.html">Inicio</a></li>
                <li><a href="index.html">Archivo</a></li>
                <li class="last"><a href="index.html">About</a></li>        
                <li class="last">Sos el visitante nº: <?php //echo $visitas;?></li>
                <li class="last"><?php echo $visitante;?></li>
            </ul>
            <?php
                
//armo la referencias
                
$referencias
            ?>
        </div>
Bien el problema que estoy teniendo es que no me muestra el contador ($visitas) ni el origen de la visita($visitantes) y no me guarda la referencia ($refencias) en que me estoy equivocando?

Desde ya muchas gracias