Foros del Web » Programando para Internet » PHP »

Problemas contador de visitas

Estas en el tema de Problemas contador de visitas en el foro de PHP en Foros del Web. Hola a todos...!!! He instalado PHP 5.1 y el contador de visitas de una pagina (que antes funcionaba) ahora NO funciona. Este contador tiene una ...
  #1 (permalink)  
Antiguo 03/08/2006, 09:48
 
Fecha de Ingreso: octubre-2004
Mensajes: 768
Antigüedad: 19 años, 6 meses
Puntos: 3
Problemas contador de visitas

Hola a todos...!!!
He instalado PHP 5.1 y el contador de visitas de una pagina (que antes funcionaba) ahora NO funciona. Este contador tiene una base de datos la cual probé conectandome y funciona.
Ademas tiene otro archivo que esl configuracion.php que funciona.
El archivo countbdd.php me muestra estos errores al ejecutarlo:

Notice: Undefined variable: REMOTE_ADDR in C:\Archivos de programa\Apache
Group\Apache2\htdocs\rawk.com.ar\countbdd.php on line 4

Notice: Use of undefined constant mysql_error - assumed 'mysql_error' in C:
\Archivos de programa\Apache Group\Apache2\htdocs\rawk.com.ar\countbdd.php on line 22
Error al grabar un mensaje: mysql_error

Ahora bien, mi sospecha es que, por lo menos en parte, algo tiene que ver con el archivo register_globals del php.ini al cual lo tengo en Off y me gustaria mantener así para empezar a usar lo que por ahí se dice de variables globales.

Ojalá me puedan ayudar... desde ya muchas gracias!!!
Paul.-

Este es el archivo countbdd.php:

Código PHP:
<?php
require('configuracion.php');
//se requiere el archivo para validar los datos de usuario de bdd para conectar
$IP $REMOTE_ADDR;
$fecha date("j \d\e\l n \d\e Y");
$hora date("h:i:s");
$segundos time();
$can "3600";
$resta $segundos-$can;
//se asignan la variables
$sql "SELECT segundos, IP ";
$sql.= "FROM contador WHERE segundos >= $resta AND IP LIKE '$IP' ";
$es mysql_query($sql$con) or die("Error al leer base de datos: ".mysql_error);
//se buscan los registros que num de seg mayor a num de seg hace una hora e IP
if(mysql_num_rows($es)>0)
{
//no se cuenta la visita
}
else
{
$sql "INSERT INTO contador (id, IP, fecha, hora, segundos) ";
$sql.= "VALUES ('','$IP','$fecha','$hora','$segundos')";
$es mysql_query($sql$con) or die("Error al grabar un mensaje: ".mysql_error);
}
//creamos el condicionamiendo para loguearlo o no.
$sql "SELECT * ";
$sql.= "FROM contador WHERE id ";
$es mysql_query($sql$con) or die("Error al leer base de datos: ".mysql_error);
$visitas mysql_num_rows($es);
$men=$men .
"<table style='width:auto;height:25px;background-color:#f0ffff;border:1px solid blue;text-align:left;font-size:14px;font-weight:bold;'>" chr(10);
$men=$men "<tr>" chr(10);
$men=$men "<td><font color= blue>Visitas:&nbsp;$visitas</font></td>" chr(10);
$men=$men .
"</tr>" chr(10);
$men=$men "</table>" chr(10);
?>
  #2 (permalink)  
Antiguo 03/08/2006, 09:57
Avatar de Nefertiter  
Fecha de Ingreso: enero-2003
Ubicación: Rosario
Mensajes: 1.316
Antigüedad: 21 años, 3 meses
Puntos: 9
justamente si variables globales esta en off, $IP = $REMOTE_ADDR; no tiene valor

el correcto seria

$IP = $_SERVER['REMOTE_ADDR'];
  #3 (permalink)  
Antiguo 03/08/2006, 10:07
 
Fecha de Ingreso: octubre-2004
Mensajes: 768
Antigüedad: 19 años, 6 meses
Puntos: 3
Desaparecio un error

Gracias Nefertiter
Bien, cambiando esa variable desaparecio una notica de error, pero me sigue saliendo esto:

Notice: Use of undefined constant mysql_error - assumed 'mysql_error' in C:\Archivos de programa\Apache Group\Apache2\htdocs\rawk.com.ar\countbdd.php on line 22
Error al grabar un mensaje: mysql_error

Gracias nuevamente!!!
Paul.-
  #4 (permalink)  
Antiguo 03/08/2006, 10:13
Avatar de Nefertiter  
Fecha de Ingreso: enero-2003
Ubicación: Rosario
Mensajes: 1.316
Antigüedad: 21 años, 3 meses
Puntos: 9
un detalle cambia mysql_error por mysql_error(); por si las moscas...

y fijate de hacer un echo $sql a ver si hay un error a la vista por asi decirlo... tambien depende un poco de la estructura de tu tabla, pero el error parace de php no de mysql....
  #5 (permalink)  
Antiguo 03/08/2006, 10:36
 
Fecha de Ingreso: octubre-2004
Mensajes: 768
Antigüedad: 19 años, 6 meses
Puntos: 3
Me da este error

He modificado las lineas que me has dicho dejandolo en el archivo así:

("Error al grabar un mensaje: ".mysql_error());

Y ha desaparecido la noticia anterior pero ahora me sale este error en pantalla:

Error al grabar un mensaje: Out of range value adjusted for column 'id' at row 1

Nefertiter, yo sigo tus pasos por que no tengo mucha esperiencia, digamos que nada!!!
Con respecto a hacer un echo $sql cómo sería y donde?
Disculpa mi ignorancia!!!
Gracias
  #6 (permalink)  
Antiguo 03/08/2006, 10:39
Avatar de Nefertiter  
Fecha de Ingreso: enero-2003
Ubicación: Rosario
Mensajes: 1.316
Antigüedad: 21 años, 3 meses
Puntos: 9
el echo $sql antes de la consulta a la db, si te esta tirando error es que justamente hay un error en el SQL y tendrias q ajustar tu codigo para q deje de tirarlo...
  #7 (permalink)  
Antiguo 03/08/2006, 10:54
 
Fecha de Ingreso: octubre-2004
Mensajes: 768
Antigüedad: 19 años, 6 meses
Puntos: 3
Coneccion a BD

El archvio configuración.php es este:

<?php
$bd_host = "localhost";
$bd_usuario = "root";
$bd_password = "0000";
$bd_base = "rawk";
$con = mysql_connect($bd_host, $bd_usuario, $bd_password);
mysql_select_db($bd_base, $con);
?>

Este es el archivo que me conecta a la base de datos, te refieres de hacer aqui un echo $sql y si es así como sería por favor.
Gracias.
  #8 (permalink)  
Antiguo 03/08/2006, 11:27
Avatar de Nefertiter  
Fecha de Ingreso: enero-2003
Ubicación: Rosario
Mensajes: 1.316
Antigüedad: 21 años, 3 meses
Puntos: 9
consulta -> mysql_query(); si haces el echo en el archivo anteiror no mostrara nada pues la variable no tiene valor alguno no estan dificil che
Código PHP:
$sql "INSERT INTO contador (id, IP, fecha, hora, segundos) "
$sql.= "VALUES ('','$IP','$fecha','$hora','$segundos')"
/*
ACA!!!
*/
echo $sql
$es 
mysql_query($sql$con) or die("Error al grabar un mensaje: ".mysql_error); 

yo vos ademas cambio el sql para que quede asi:

$sql = "INSERT INTO contador (IP, fecha, hora, segundos) ";
$sql.= "VALUES ('$IP','$fecha','$hora','$segundos')";
  #9 (permalink)  
Antiguo 03/08/2006, 11:53
 
Fecha de Ingreso: octubre-2004
Mensajes: 768
Antigüedad: 19 años, 6 meses
Puntos: 3
Pido disculpas

Me hiciste reir con el "ACA", no te enojes te pido disculpas, pero es verdad que no tengo mucha habilidad!!!
Hice todo lo que me dijiste y ahora me sale este error:

Parse error: parse error, unexpected T_VARIABLE, expecting ',' or ';' in C:\Archivos de programa\Apache Group\Apache2\htdocs\rawk.com.ar\countbdd.php on line 23

countbdd.php

Código PHP:
<?php
require('configuracion.php');
//se requiere el archivo para validar los datos de usuario de bdd para conectar
$IP $_SERVER['REMOTE_ADDR'];
$fecha date("j \d\e\l n \d\e Y");
$hora date("h:i:s");
$segundos time();
$can "3600";
$resta $segundos-$can;
//se asignan la variables
$sql "SELECT segundos, IP ";
$sql.= "FROM contador WHERE segundos >= $resta AND IP LIKE '$IP' ";
$es mysql_query($sql$con) or die("Error al leer base de datos: ".mysql_error());
//se buscan los registros que num de seg mayor a num de seg hace una hora e IP
if(mysql_num_rows($es)>0)
{
//no se cuenta la visita
}
else
{
$sql "INSERT INTO contador (IP, fecha, hora, segundos) ";
$sql.= "VALUES ('$IP','$fecha','$hora','$segundos')";
echo 
$sql
$es 
mysql_query($sql$con) or die("Error al grabar un mensaje: ".mysql_error());
}
//creamos el condicionamiendo para loguearlo o no.
$sql "SELECT * ";
$sql.= "FROM contador WHERE id ";
$es mysql_query($sql$con) or die("Error al leer base de datos: ".mysql_error());
$visitas mysql_num_rows($es);
$men=$men .
"<table style='width:auto;height:25px;background-color:#f0ffff;border:1px solid blue;text-align:left;font-size:14px;font-weight:bold;'>" chr(10);
$men=$men "<tr>" chr(10);
$men=$men "<td><font color= blue>Visitas:&nbsp;$visitas</font></td>" chr(10);
$men=$men .
"</tr>" chr(10);
$men=$men "</table>" chr(10);
?>
  #10 (permalink)  
Antiguo 03/08/2006, 13:13
Avatar de Nefertiter  
Fecha de Ingreso: enero-2003
Ubicación: Rosario
Mensajes: 1.316
Antigüedad: 21 años, 3 meses
Puntos: 9
me comi un ';'

cambia "echo $sql" por "echo $sql;"
  #11 (permalink)  
Antiguo 03/08/2006, 13:38
 
Fecha de Ingreso: octubre-2004
Mensajes: 768
Antigüedad: 19 años, 6 meses
Puntos: 3
Cambió de error

le he agregado el ; quedando así:

echo $sql;

y me muestra ahora este errror:

Notice: Undefined variable: men in C:\Archivos de programa\Apache Group\Apache2\htdocs\rawk.com.ar\countbdd.php on line 31
  #12 (permalink)  
Antiguo 03/08/2006, 14:03
Avatar de Seppo  
Fecha de Ingreso: marzo-2005
Ubicación: Buenos Aires, Argentina
Mensajes: 1.284
Antigüedad: 19 años, 1 mes
Puntos: 17
Código PHP:
<?php
require('configuracion.php');
//se requiere el archivo para validar los datos de usuario de bdd para conectar
$IP $_SERVER['REMOTE_ADDR'];
$fecha date("j \d\e\l n \d\e Y");
$hora date("h:i:s");
$segundos time();
$can "3600";
$resta $segundos-$can;
//se asignan la variables
$sql "SELECT segundos, IP ";
$sql.= "FROM contador WHERE segundos >= $resta AND IP LIKE '$IP' ";
$es mysql_query($sql$con) or die("Error al leer base de datos: ".mysql_error());
//se buscan los registros que num de seg mayor a num de seg hace una hora e IP
if(mysql_num_rows($es)>0)
{
//no se cuenta la visita
}
else
{
$sql "INSERT INTO contador (IP, fecha, hora, segundos) ";
$sql.= "VALUES ('$IP','$fecha','$hora','$segundos')";
echo 
$sql;
$es mysql_query($sql$con) or die("Error al grabar un mensaje: ".mysql_error());
}
//creamos el condicionamiendo para loguearlo o no.
$sql "SELECT * ";
$sql.= "FROM contador WHERE id ";
$es mysql_query($sql$con) or die("Error al leer base de datos: ".mysql_error());
$visitas mysql_num_rows($es);
if (!isset(
$men)) { $men ""; }
$men=$men .
"<table style='width:auto;height:25px;background-color:#f0ffff;border:1px solid blue;text-align:left;font-size:14px;font-weight:bold;'>" chr(10);
$men=$men "<tr>" chr(10);
$men=$men "<td><font color= blue>Visitas:&nbsp;$visitas</font></td>" chr(10);
$men=$men .
"</tr>" chr(10);
$men=$men "</table>" chr(10);
?>
Saludos
  #13 (permalink)  
Antiguo 03/08/2006, 14:17
 
Fecha de Ingreso: octubre-2004
Mensajes: 768
Antigüedad: 19 años, 6 meses
Puntos: 3
La pantalla queda en blanco...

Gracias Seppo, pero agregandole la linea if (!isset($men)) { $men = ""; } donde dices la pantalla queda en blanco... no se como solucionarlo.
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 15:37.