Foros del Web » Programando para Internet » PHP »

contador de clics en enlaces externos

Estas en el tema de contador de clics en enlaces externos en el foro de PHP en Foros del Web. Buenos noches preciso vuestra ayuda. Estoy diseñando una web, donde a traves de paginas dinamicas y sacando los datos desde mysql los muestro en un ...
  #1 (permalink)  
Antiguo 01/08/2011, 15:14
 
Fecha de Ingreso: julio-2011
Mensajes: 103
Antigüedad: 13 años, 4 meses
Puntos: 1
contador de clics en enlaces externos

Buenos noches preciso vuestra ayuda. Estoy diseñando una web, donde a traves de paginas dinamicas y sacando los datos desde mysql los muestro en un formulario
BD mysql: db934807
tabla: muestras
Campos: id, f_inclusion, asunto, enlace, contador


En el formulario donde muestro los datos el codigo que tengo es siguiente sintaxis:
<a href="intermedio_contador.php?url=<?php echo $row_rmuestras['enlace']; ?>" target="_blank">aquí</a>

(llamo al fichero intermedio_contador.php) con la siguiente sintaxis:
<?php$var=$_GET["enlace"];
if($var){$dbhost = "localhost";
$dbusuario = "root"; // aqui debes ingresar el nombre de usuario para acceder a la base
$dbpassword = "micontraseña";
$db = "db934807";
$conexion = mysql_connect($dbhost, $dbusuario, $dbpassword) OR die("No se puedo conectar a la BDD ".mysql_error()."...!!!"); mysql_select_db($db, $conexion) OR die("No se pudo seleccionar la BDD ".mysql_error()."...!!!");

$existe=mysql_query("SELECT enlace FROM muestras WHERE enlace='$var'");
if($existe=mysql_fetch_array($existe)){
mysql_query("UPDATE muestras SET contador=contador+1 WHERE enlace='$var'");Header("Location: $var");
}
else
{
mysql_query("INSERT INTO muestras (id, f_inclusion, enlace, asunto, comentarios, contador) VALUES ('NULL','1','$var')");Header("Location: $var");
}
}
?>
Por favor echadme una mano, no consigo que en el campo contador me sume cada vez que alguien hace clic en el enlace, y tampo me muestra la pagina a la que deberia llevar el enlace
un saludo y muchas gracias
  #2 (permalink)  
Antiguo 01/08/2011, 15:33
 
Fecha de Ingreso: julio-2010
Mensajes: 2
Antigüedad: 14 años, 3 meses
Puntos: 0
Respuesta: contador de clics en enlaces externos

La forma mas conveniente de hacerlo es primero obtener las visitas que tienes registradas en la base de datos y mediante PHP le sumas 1 una vez hecho esto utilizas UPDATE de mysql pero con la variable a la cual le sumaste. Saludos!
  #3 (permalink)  
Antiguo 01/08/2011, 15:34
 
Fecha de Ingreso: julio-2011
Mensajes: 103
Antigüedad: 13 años, 4 meses
Puntos: 1
Respuesta: contador de clics en enlaces externos

ufff si el problema que veo es que algo de mi sintaxis esta mal y no doy con el error
  #4 (permalink)  
Antiguo 01/08/2011, 15:54
Avatar de andresdzphp
Colaborador
 
Fecha de Ingreso: julio-2011
Ubicación: $this->Colombia;
Mensajes: 2.749
Antigüedad: 13 años, 4 meses
Puntos: 793
Respuesta: contador de clics en enlaces externos

Cita:
Iniciado por joaquinbg2000 Ver Mensaje
ufff si el problema que veo es que algo de mi sintaxis esta mal y no doy con el error
Por lo menos colorea el código a ver si no nos quedamos ciegos y alguien pueda ayudarte:

Código PHP:
Ver original
  1. <?php
  2.  
  3. $var = $_GET["enlace"];
  4.  
  5. if ($var) {
  6.    
  7.     $dbhost = "localhost";
  8.     $dbusuario = "root"; // aqui debes ingresar el nombre de usuario para acceder a la base
  9.     $dbpassword = "micontraseña";
  10.     $db = "db934807";
  11.    
  12.     $conexion = mysql_connect($dbhost, $dbusuario, $dbpassword)
  13.             or die("No se puedo conectar a la BDD " . mysql_error() . "...!!!");
  14.     mysql_select_db($db, $conexion)
  15.             or die("No se pudo seleccionar la BDD " . mysql_error() . "...!!!");
  16.  
  17.     $existe = mysql_query("SELECT enlace FROM muestras WHERE enlace='$var'");
  18.    
  19.     if ($existe = mysql_fetch_array($existe)) {
  20.         mysql_query("UPDATE muestras SET contador=contador+1 WHERE enlace='$var'");
  21.         Header("Location: $var");
  22.     } else {
  23.         mysql_query("INSERT INTO muestras (id, f_inclusion, enlace, asunto, comentarios, contador) VALUES ('NULL','1','$var')");
  24.         Header("Location: $var");
  25.     }
  26. }
__________________
Si sabemos como leer e interpretar el manual será mucho más fácil aprender PHP. En lugar de confiar en ejemplos o copiar y pegar - PHP
  #5 (permalink)  
Antiguo 01/08/2011, 16:02
 
Fecha de Ingreso: julio-2011
Mensajes: 103
Antigüedad: 13 años, 4 meses
Puntos: 1
Respuesta: contador de clics en enlaces externos

tienes razon andresdzphp. Disculpad todos
A ver si así hay manera de dar con el error...me tiene hasta los ....
  #6 (permalink)  
Antiguo 01/08/2011, 16:25
Avatar de andresdzphp
Colaborador
 
Fecha de Ingreso: julio-2011
Ubicación: $this->Colombia;
Mensajes: 2.749
Antigüedad: 13 años, 4 meses
Puntos: 793
Respuesta: contador de clics en enlaces externos

Prueba de esta forma, lo probé en localhost y funciona.

Código PHP:
Ver original
  1. <?php
  2.  
  3. $var = $_GET["enlace"];
  4.  
  5. if (isset($var) && $var != '') {
  6.  
  7.     $dbhost = "localhost";
  8.     $dbusuario = "user"; // aqui debes ingresar el nombre de usuario para acceder a la base
  9.     $dbpassword = "pass";
  10.     $db = "bd";
  11.  
  12.     $conexion = mysql_connect($dbhost, $dbusuario, $dbpassword)
  13.             or die("No se puedo conectar a la BDD " . mysql_error() . "...!!!");
  14.     mysql_select_db($db, $conexion)
  15.             or die("No se pudo seleccionar la BDD " . mysql_error() . "...!!!");
  16.  
  17.     $res = mysql_query("SELECT enlace FROM muestras WHERE enlace='$var'");
  18.  
  19.     if (mysql_num_rows($res) >= 1) {
  20.         mysql_query("UPDATE muestras SET contador=contador+1 WHERE enlace='$var'");
  21.         header("Location: $var");
  22.     } else {
  23.         mysql_query("INSERT INTO muestras (id, contador, enlace) VALUES (NULL, 1,'$var')");
  24.         header("Location: $var");
  25.     }
  26. }

Edit: Debes agregar a la base de datos los links en formato http://www.google.com para que funcione.
__________________
Si sabemos como leer e interpretar el manual será mucho más fácil aprender PHP. En lugar de confiar en ejemplos o copiar y pegar - PHP

Última edición por andresdzphp; 01/08/2011 a las 16:56
  #7 (permalink)  
Antiguo 02/08/2011, 00:25
 
Fecha de Ingreso: julio-2011
Mensajes: 103
Antigüedad: 13 años, 4 meses
Puntos: 1
Respuesta: contador de clics en enlaces externos

Hola, tras mucho probar y experimentar sigue sin rematarse la cosa, porque bien es cierto que al hacer clic en el enlace "aqui" me abre una nueva ventana para la pagina externa...pero me la saca en blanco....
podeis verlo en la pagina..incluso la subi al servidor por si era tema de mi server local...
www.sorteosyregalosgratis.com

Estoy pensnado si el error puede venir de mas atras...ya que al ser una pagina dinamica la recapitulacion de registros lo hago a traves de un juego de registros (edito con dreamweaver)

<td width="150" align="left" valign="top"><span class="Estilo9"><a href="intermedio_contador.php?url=<?php echo $row_rmuestras['enlace']; ?>" target="_blank">aquí</a></span></td>

Les agradezco enormemente su esfuerzo e interes por ayudarme con este tema que me esta volviendo loco
  #8 (permalink)  
Antiguo 02/08/2011, 00:58
Avatar de andresdzphp
Colaborador
 
Fecha de Ingreso: julio-2011
Ubicación: $this->Colombia;
Mensajes: 2.749
Antigüedad: 13 años, 4 meses
Puntos: 793
Respuesta: contador de clics en enlaces externos

Creo que fue bastante claro mi ejemplo pero aqui lo intento de nuevo:

tienes en tu condicional:

Código PHP:
Ver original
  1. $existe=mysql_query("SELECT enlace FROM muestras WHERE enlace='$var'");
  2. if($existe=mysql_fetch_array($existe)){

Tienes malo el condicional, tendrías que hacerlo de esta forma:

Código PHP:
Ver original
  1. $res = mysql_query("SELECT * FROM tabla WHERE enlace='$var'");
  2.    
  3.     if (mysql_num_rows($res) >= 1) {
  4.         echo 'Ya existe entonces actualizamos';
  5.         header("Location: $var");
  6.     } else {
  7.         echo 'No existe entonces insertamos';
  8.         header("Location: $var");
  9.     }

Prueba así:

Código PHP:
Ver original
  1. $var = $_GET["enlace"];
  2.  
  3. if (isset($var) && $var != '') {
  4.    
  5.     $dbhost = "localhost";
  6.     $dbusuario = "root"; // aqui debes ingresar el nombre de usuario para acceder a la base
  7.     $dbpassword = "micontraseña";
  8.     $db = "db934807";
  9.    
  10.     $conexion = mysql_connect($dbhost, $dbusuario, $dbpassword)
  11.             or die("No se puedo conectar a la BDD " . mysql_error() . "...!!!");
  12.     mysql_select_db($db, $conexion)
  13.             or die("No se pudo seleccionar la BDD " . mysql_error() . "...!!!");
  14.  
  15.     $existe = mysql_query("SELECT enlace FROM muestras WHERE enlace='$var'");
  16.    
  17.     if (mysql_num_rows($existe) >= 1) {
  18.         mysql_query("UPDATE muestras SET contador=contador+1 WHERE enlace='$var'");
  19.         header("Location: $var");
  20.     } else {
  21.         mysql_query("INSERT INTO muestras (id, contador, enlace) VALUES (NULL, '1','$var')");
  22.         header("Location: $var");
  23.     }
  24. }
__________________
Si sabemos como leer e interpretar el manual será mucho más fácil aprender PHP. En lugar de confiar en ejemplos o copiar y pegar - PHP

Última edición por andresdzphp; 02/08/2011 a las 01:04
  #9 (permalink)  
Antiguo 02/08/2011, 01:09
Avatar de Eleazan  
Fecha de Ingreso: abril-2008
Ubicación: Ibiza
Mensajes: 1.879
Antigüedad: 16 años, 7 meses
Puntos: 326
Respuesta: contador de clics en enlaces externos

Yo creo que el principal problema es este:
Código PHP:
$var $_GET["enlace"]; 
Debería ser
Código PHP:
$var $_GET["url"]; 
;)
  #10 (permalink)  
Antiguo 02/08/2011, 01:19
Avatar de andresdzphp
Colaborador
 
Fecha de Ingreso: julio-2011
Ubicación: $this->Colombia;
Mensajes: 2.749
Antigüedad: 13 años, 4 meses
Puntos: 793
Respuesta: contador de clics en enlaces externos

Cita:
Iniciado por Eleazan Ver Mensaje
Yo creo que el principal problema es este:
Código PHP:
$var $_GET["enlace"]; 
Debería ser
Código PHP:
$var $_GET["url"]; 
;)
Tienes toda la razón los problemas empiezan desde ahí, problema de conexión con Mysql, siguen con problemas en el insert y terminan en la condición.

Deberías llamar a los enlaces:

Código HTML:
Ver original
  1. <a href="intermedio_contador.php?enlace=<?php echo $row_rmuestras['enlace']; ?>" target="_blank">aquí</a>

Intentando con intermedio_contador.php?enlace=http://www.pruebagratisfreshdepascual.com

Arroja este error: No se pudo seleccionar la BDD Access denied for user...
__________________
Si sabemos como leer e interpretar el manual será mucho más fácil aprender PHP. En lugar de confiar en ejemplos o copiar y pegar - PHP

Última edición por andresdzphp; 02/08/2011 a las 01:28 Razón: Más información.
  #11 (permalink)  
Antiguo 02/08/2011, 12:14
 
Fecha de Ingreso: julio-2011
Mensajes: 103
Antigüedad: 13 años, 4 meses
Puntos: 1
Respuesta: contador de clics en enlaces externos

ESTIMADOS AMIGOS Y EXPERTOS
GRACIASSSSSSS Y MIL GRACIAS A TODOS VOSOTROS , AL FINAL FUNCIONA

Tal y como se me ha indicado el error estaba:

El fallo como se me ha indicado estaba en esta linea:

<a href=intermedio_contador.php?url=<?php echo $row_muestras['enlace'];?>".......

y deberia ser:
<a href=intermedio_contador.php?enlace=<?php echo $row_muestras['enlace'];?>".......

ya que en el fichero intermedio-contador el termino "enlace" es una variable..



saludos Y MUCHAS GRACIASSSSSSS

Etiquetas: contador, enlaces, externos, mysql, sql, tabla, formulario, usuarios
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

SíEste tema le ha gustado a 1 personas




La zona horaria es GMT -6. Ahora son las 12:11.