Hola amigos,
Tengo un problemon, tengo el siguiente codigo:
<?php
require("admin/config.php");
@mysql_connect("$host", "$user", "$pass") or die ("Imposible conectar al servidor MySQL.");
@mysql_select_db("$db");
$query1 = mysql_query("SELECT * FROM trucos WHERE id='$_GET[id]'");
$truco = mysql_fetch_array($query1);
++$truco[lecturas];
mysql_query("update trucos set lecturas='$truco[lecturas]' where id='$_GET[id]'");
mysql_close();
?>
Se supone que cada vez que ingreso a esa pagina se deberia actualizar el registro lecturas de la base de datos sumandose 1 al valor actual, pero resulta que aveces se suman 2 o 3 y no tengo idea porque, lo pruebo en localhost y todo PERFECTO, pero luego lo subo a un servidor linux mandrake y me da el error de que le suma 2 o 3 en vez de 1, el error esta muy raro, ojala puedan ayudarme.
Nota del moderador: USAR LAS ETIQUETAS CODE!!
tienes adsense?? porq suele pasar q navegas or tu sitio e igusal akgun bot entra a esa pagina q tu entraste
Hola amigo, tengo puesto tres adsense en la pagina, quizas sea por eso, espero escuchar mas opiniones, pero el problema lo tengo cuando pasa de una lectura a 3 lectura, porque depsues no tengo mas problema, y en localhost no tengo el problema.
Prueba esto:
<?php
require("admin/config.php");
@mysql_connect("$host", "$user", "$pass") or die ("Imposible conectar al servidor MySQL.");
@mysql_select_db("$db");
$query1 = mysql_query("SELECT * FROM trucos WHERE id='$_GET[id]'");
$truco = mysql_fetch_array($query1);
++$truco[lecturas];
echo $truco[lecturas];
mysql_query("update trucos set lecturas='$truco[lecturas]' where id='$_GET[id]'");
mysql_close();
?>
Simplemente hay un echo de las lecturas antes de insertarlas en la base de datos, así puedes "debuggear" y ver que pasa.
Saludos.
¿Y eso te funciona?
Prueba con ésto...
[code]require("admin/config.php");
$conec=@mysql_connect($host, $user, $pass) or die ("Imposible conectar al servidor MySQL.");
@mysql_select_db($db);
$query1 = mysql_query("SELECT * FROM trucos WHERE id='".$_GET['id']."'",$conec);
$truco = mysql_fetch_array($query1);
$truco['lecturas']++;
mysql_query("update trucos set lecturas='".$truco['lecturas']."' where id='".$_GET['id']."'",$conec);
mysql_close();
por cierto yo lo haría asi...xD
if($id=$_GET['id']){
$conec=@mysql_connect($host, $user, $pass) or die ("Imposible conectar al servidor MySQL.");
@mysql_select_db($db);
mysql_query("update trucos set lecturas=lecturas+1 where id='$id'",$conec);
mysql_close();}
espero te sirva de ayuda, las arrays suelen ser bastante quisquillosas con eso de implementarlas dentro de cadenas a pelo...por eso me extraño que no te diese error
P.D que rápido es Ertai xD[/code]
hola amigos, no me funciono el codigo de hans, y ya habia intentado lo que decia ertai, puse un echo antes y desdes de incrementar el valor y todo se veia bien, pero le daba actualizar y pasaba de 1 a 4 y no pude concluir nada haciendo los echo....
Hola amigos,
Quite el codigo de todos los adsense google, y subi el sitio y que creen..., problema solucionado, los registros se actualizaban bien, seguramente el robot de adsense tambien ingresa a la pagina y por eso me contabiliza como lecturas, ya tengo reconocido el problema, ahora que puedo hacer?
verificar que no es el bot :P
function GetBotInfo()
{
global $IS_GOOGLE, $IS_MSN, $IS_YAHOO, $IS_OTHER_SE, $IS_ASK;
if (strpos($_SERVER["HTTP_USER_AGENT"],"Googlebot") === false)
if (strpos($_SERVER["HTTP_USER_AGENT"],"Slurp") === false)
if (strpos($_SERVER["HTTP_USER_AGENT"],"msnbot") === false)
if (strpos($_SERVER["HTTP_USER_AGENT"],"Teoma") === false)
if (strpos($_SERVER["HTTP_USER_AGENT"],"bot") === false) {}
else {
$IS_OTHER_SE = true;
}
else {
$IS_ASK = true;
}
else {
$IS_MSN = true;
}
else {
$IS_YAHOO = true;
}
else {
$IS_GOOGLE = true;
}
}
function IsBot()
{
global $IS_GOOGLE, $IS_MSN, $IS_YAHOO, $IS_OTHER_SE, $IS_ASK;
return $IS_GOOGLE || $IS_MSN || $IS_YAHOO || $IS_OTHER_SE || $IS_ASK;
}
GetBotInfo();
crea un archivo bot.php has un include y luego llama a isBot() si te devuelve 1 es un Bot si te da 0 no es un bot ;) prueba con eso
has un include
Hola amigos, me di cuenta que cada vez que me metia a la pagina que contaba y actualizaba el registro lecturas tambien se metia dos veces el robot de google, revise los Logs de accceso y me di cuenta del nombre del bot y escribi la siguiente proteccion y mi vida cambio xD
<?
if (eregi("Mediapartners-Google/2.1", $_SERVER['HTTP_USER_AGENT'])) {}
else {++$truco[lecturas]; mysql_query("update trucos set lecturas='$truco[lecturas]' where id='$_GET[id]'");}
mysql_close();
?>
Si ven alguna posible mejora en el codigo avisenme, saludosssss