• Viernes 3 de Mayo de 2024, 16:22

Autor Tema:  Ayuda Con Codigo..  (Leído 1168 veces)

McBlink

  • Nuevo Miembro
  • *
  • Mensajes: 4
    • Ver Perfil
Ayuda Con Codigo..
« en: Domingo 15 de Abril de 2007, 16:46 »
0
Buenos Dias.. me presento.. soy Argentino y es un gusto estar con ustedes en el foro.. que por cierto, muy bueno esta..
les cuento cual es mi problemita.. necesitaria una orientacion..

yo tengo este codigo hecho por mi..

<?

include('config.php');

$ips   = $_SERVER["REMOTE_ADDR"]; //traigo el IP del user


$sql = "UPDATE user SET clicks=clicks+1 WHERE id_imagen=$id_usuario";
mysql_query($sql);
 
echo '<meta http-equiv="Refresh" content="10;URL=index.php">';

?>



Lo que quiero hacer, es que un usuario no pueda clickear en un enlace mas de una vez cada por ejemplo, 24 hs.
por ejemplo si yo hago click en el ENLACE1, a ese enlace no lo voy a poder clickear en 24 hs, pero si yo quiero clickear el ENLACE2 me tendria que dejar.
no se se entiende..?

lo que tenia pensado es hacer una tabla con ID - IP - ENLACE - FECHA

pero el problema viene cuando yo le tengo que decir que si el IP - y el ENLACE estan en la tabla, else{UQE TE DE EL ERROR}

echo'que te ejecute el update';


algo asi..

saludos y muchas gracias!!
MC

McBlink

  • Nuevo Miembro
  • *
  • Mensajes: 4
    • Ver Perfil
Re: Ayuda Con Codigo..
« Respuesta #1 en: Lunes 16 de Abril de 2007, 02:04 »
0
Alguna idea u orientacion??
saludos y gracias!
MC :hola:

McBlink

  • Nuevo Miembro
  • *
  • Mensajes: 4
    • Ver Perfil
Re: Ayuda Con Codigo..
« Respuesta #2 en: Lunes 16 de Abril de 2007, 02:06 »
0
Alguna idea u orientacion??
saludos y gracias!
MC :hola:

McBlink

  • Nuevo Miembro
  • *
  • Mensajes: 4
    • Ver Perfil
Re: Ayuda Con Codigo..
« Respuesta #3 en: Lunes 16 de Abril de 2007, 02:09 »
0
Alguna idea u orientacion??
saludos y gracias!
MC :hola:

hdr

  • Miembro MUY activo
  • ***
  • Mensajes: 128
    • Ver Perfil
Re: Ayuda Con Codigo..
« Respuesta #4 en: Lunes 16 de Abril de 2007, 02:27 »
0
pero si eso lo usas por internet tienes q tener encuenta q la mayoria de usuarios tienen ip dinamica.

F_Tanori

  • Moderador
  • ******
  • Mensajes: 1919
  • Nacionalidad: mx
    • Ver Perfil
Re: Ayuda Con Codigo..
« Respuesta #5 en: Lunes 16 de Abril de 2007, 06:42 »
0
Código: Text
  1. &#60;?php
  2.    
  3.    &#036;bd=&#34;base&#34;;
  4.    &#036;host=&#34;localhost&#34;;
  5.    &#036;user=&#34;root&#34;;
  6.    &#036;password=&#34;&#34;;
  7.    &#036;Conexion = mysql_connect(&#036;host,&#036;user,&#036;password);
  8.    mysql_select_db(&#036;bd, &#036;Conexion);
  9.  
  10.    
  11.     if(isset(&#036;_GET['enlace']))
  12.       {
  13.    
  14.       &#036;link=&#036;_GET['enlace'];
  15.      
  16.       if (getenv(&#34;HTTP_X_FORWARDED_FOR&#34;))
  17.          {
  18.            &#036;ip   = getenv(&#34;HTTP_X_FORWARDED_FOR&#34;);
  19.          }
  20.       else
  21.          {
  22.            &#036;ip   = getenv(&#34;REMOTE_ADDR&#34;);
  23.          }
  24.        
  25.         &#036;fecha=date('Y-m-d').&#34; 00:00:00&#34;;
  26.  
  27.  
  28.       &#036;sSQL=&#34;SELECT count(*) FROM enlaces_usuarios WHERE ip='&#036;ip' and fecha='&#036;fecha' and id_enlace=&#036;link&#34;;
  29.       &#036;rs = mysql_db_query(&#036;bd,&#036;sSQL);
  30.      
  31.      
  32.       if (&#036;rs)
  33.        {
  34.           &#036;registros=mysql_fetch_row(&#036;rs);
  35.          
  36.             if (&#036;registros[0]==0)
  37.              {
  38.           &#036;sSQL=&#34;UPDATE enlaces SET clicks=clicks+1 WHERE id_enlace=&#036;link&#34;;
  39.           &#036;rs = mysql_db_query(&#036;bd,&#036;sSQL);
  40.           &#036;sSQL=&#34;INSERT INTO enlaces_usuarios (id_enlace, ip, fecha, id_row) VALUES(&#036;link,'&#036;ip','&#036;fecha',NULL)&#34;;
  41.           &#036;rs = mysql_db_query(&#036;bd,&#036;sSQL);
  42.              }
  43.  
  44.        }
  45.     }    
  46.    
  47.    
  48.  
  49.     &#036;sSQL=&#34;SELECT id_enlace, descipcion, clicks FROM enlaces&#34;;
  50.   &#036;rs = mysql_db_query(&#036;bd,&#036;sSQL);  
  51.    
  52.     echo &#34;&#60;table&#62;&#34;;
  53.     echo &#34;&#60;tr&#62;&#60;td&#62;IP:&#60;/td&#62;&#60;td&#62;&#036;ip&#60;/td&#62;&#60;td&#62;Clicks&#60;/td&#62;&#60;/tr&#62;&#34;;
  54.       while(&#036;encontrado=mysql_fetch_row(&#036;rs))
  55.         {
  56.            
  57.            echo &#34;&#60;tr&#62;&#60;td&#62;&#34;.&#036;encontrado[0].&#34;&#60;/td&#62;&#60;td&#62;&#60;a href='?enlace=&#34;.&#036;encontrado[0].&#34;'&#62;&#34;.&#036;encontrado[1].&#34;&#60;/a&#62;&#60;/td&#62;&#60;td&#62;&#34;.&#036;encontrado[2].&#34;&#60;/td&#62;&#60;/tr&#62;&#34;;
  58.  
  59.         }  
  60.     echo &#34;&#60;/table&#62;&#34;;
  61.    
  62.     //echo '&#60;meta http-equiv=&#34;Refresh&#34; content=&#34;10;URL=index.php&#34;&#62;';
  63. ?&#62;
  64.  

<!--sql--></div><table border='0' align='center' width='95%' cellpadding='3' cellspacing='1'><tr><td>SQL </td></tr><tr><td id='CODE'><!--sql1-->CREATE TABLE  enlaces (
  `id_enlace` int(10) unsigned NOT NULL auto_increment,
  `descipcion` varchar(20) default NULL,
  `clicks` int(10) unsigned default NULL,
  PRIMARY KEY  (`id_enlace`)
) ENGINE=InnoDB DEFAULT CHARSET=latin1;


CREATE TABLE  enlaces_usuarios (
  `id_enlace` int(10) unsigned NOT NULL default '0',
  `ip` varchar(20) default NULL,
  `fecha` datetime default NULL,
  `id_row` int(10) unsigned NOT NULL auto_increment,
  PRIMARY KEY  (`id_row`),
  KEY `FK_enlaces_usuarios_1` (`id_enlace`),
  CONSTRAINT `FK_enlaces_usuarios_1` FOREIGN KEY (`id_enlace`) REFERENCES `enlaces` (`id_enlace`)
) ENGINE=InnoDB DEFAULT CHARSET=latin1;

<!--sql2--></td></tr></table><div class='postcolor'><!--sql3-->

Eso funciona todo esta en un solo archivo para mayor facilidad, pero puedes separarlo, y las validaciones son superficiales, tampoco se considera la hora solo la fecha pero puede darte una idea de como hacerlo tambien puedes usar las cookies



Saludos
" ExIsTo y A vEcEs PiEnSo "

NOTA:
===========================================================================================================================
Este foro es para ayudar, aprender, compartir... usenlo para eso,
NO SE RESUELVEN DUDAS POR MENSAJE PRIVADO Y MENOS POR CORREO
===========================================================================================================================