Ver Mensaje Individual
  #4 (permalink)  
Antiguo 24/04/2010, 09:28
Avatar de spider_boy
spider_boy
 
Fecha de Ingreso: diciembre-2003
Ubicación: Chile
Mensajes: 1.855
Antigüedad: 20 años, 5 meses
Puntos: 89
Respuesta: Comprobar y continuar

El Usuario 1 visita al referido 318, y lo registra, pero si lo intenta por 2da vez o más, le lanza el error de que ya lo visitó. Simplemente usas la IP.

Código PHP:
Ver original
  1. // Verificamos si la IP existe...
  2. $query = mysql_query("SELECT id FROM users WHERE ip='".$ip."'");
  3. if(mysql_num_rows($query)>0) {
  4.    die("La IP XXX.XXX.... ya se encuentra registrada.");
  5.    /*
  6.      O puedes usar un echo y un exit;
  7.      Ej :
  8.  
  9.       echo "La IP ya está registrada...";
  10.       exit;
  11.  
  12.    */
  13. }

Uso die, ya que tu código solo tiene un echo, es decir, tu código no detiene la ejecución de lo que está debajo, por lo cual seguirá insertando, e insertando.

Un consejo...

Tú tienes el siguiente comando update :

Código PHP:
Ver original
  1. $id = $_GET['id'];
  2. $query = mysql_query("SELECT * FROM users WHERE id='$id'");
  3. $ver = mysql_fetch_array($query);
  4. $reffers = $ver['reffers'];
  5. $updater = mysql_query("UPDATE users SET reffers='$reffers'+'1' WHERE reffers='$reffers' AND id = $id");

Lo que estás haciendo no es del todo necesario. Primero sacas los datos del usuario con ID = $_GET['id'], obtienes la cantidad de referidos y luego la sumas en la tabla, pero eso lo puedes hacer sin el primer select, un ejemplo :

Código PHP:
Ver original
  1. $id = $_GET['id'];
  2. $updater = mysql_query("UPDATE users SET reffers=reffers+1 WHERE id = $id");

Así es mucho más simple, menos carga a la BD, aunque sea ínfima y menos líneas de código también.

Sumar campos de esa manera es propio de los motores de base de datos.

Nos vemos.
__________________
Nunca te olvidaré mi negra hermosa. Te extraño demasiado.