Foros del Web » Programando para Internet » PHP »

¿contador de clicks?

Estas en el tema de ¿contador de clicks? en el foro de PHP en Foros del Web. como podeis ver la pagina muestra una serie de peliculas... voy a pegar el codigo que se encarga de mostrarlas: @import url("http://static.forosdelweb.com/clientscript/vbulletin_css/geshi.css"); Código PHP: Ver ...
  #1 (permalink)  
Antiguo 30/01/2012, 13:53
 
Fecha de Ingreso: enero-2012
Mensajes: 56
Antigüedad: 12 años, 10 meses
Puntos: 1
¿contador de clicks?

como podeis ver la pagina muestra una serie de peliculas... voy a pegar el codigo que se encarga de mostrarlas:

Código PHP:
Ver original
  1. echo strip_tags($fila["titulo"]);
  2.     echo "</b><br />Director: <b>";
  3.     echo strip_tags($fila["director"]);
  4.     echo "</b><br />Año: <b>";
  5.     echo strip_tags($fila["fecha"]);
  6.     echo "</h1>";
  7.     echo '<br><center><img src="' . $fila["imagen"] . '"width="440px" /></center><p></p>';
  8.     echo "<p></p></b>Licencia: ";
  9.     echo strip_tags($fila["licencia"]);
  10.     echo "<p></p>Genero: ";
  11.     echo strip_tags($fila["genero1"]);
  12.     echo ", ";
  13.     echo strip_tags($fila["genero2"]);
  14.     echo '<p>Sinopsis:<br>     ';
  15.     echo strip_tags($fila["sinopsis"]);
  16.     echo "</p> Colaborador: ";
  17.     echo strip_tags($fila["colaborador"]);
  18.     echo "<br> Ver Online: ";
  19.     echo '<a href="' . $fila["link"] . '"target="_blank">';
  20.     echo strip_tags($fila["link"]);
  21.     echo '</a>';
  22.     echo "<br> Descargar: ";
  23.     echo '<a href="' . $fila["descarga"] . '"target="_blank">';
  24.     echo strip_tags($fila["descarga"]);
  25.     echo '</a>';


la gracia es que quiero poner una contador de visitas a cada peli... con intencion de hacer un apartado de "mas vistas"... estoy pensando que podría hacer algo parecido a un onclic en los ultimos <a href..> me ayudáis a enfocarlo?

Última edición por GatorV; 30/01/2012 a las 19:44
  #2 (permalink)  
Antiguo 30/01/2012, 14:01
Avatar de GatorV
$this->role('moderador');
 
Fecha de Ingreso: mayo-2006
Ubicación: /home/ams/
Mensajes: 38.567
Antigüedad: 18 años, 6 meses
Puntos: 2135
Respuesta: ¿contador de clicks?

Si lo único que estas haciendo es guardando links a sitios externos, la única forma de hacerlo es usando lo que se conoce como un script puente, que lo que hagas es redirigir a ese script, incrementar el número de visitas y al terminar redirigir al sitio destino.

Si en cambio los links son internos hacia tu sitio, entonces al desplegar los datos de tu película incrementas el contador de visitas.

Saludos.
  #3 (permalink)  
Antiguo 30/01/2012, 14:02
Avatar de andres_aquino  
Fecha de Ingreso: septiembre-2010
Ubicación: $("#place").html("FDW");
Mensajes: 138
Antigüedad: 14 años, 2 meses
Puntos: 24
Respuesta: ¿contador de clicks?

Simple: consulta SQL y listo.

Código PHP:
$id $_POST['id_pelicula'];
$sql "UPDATE pelicula SET visitas=visitas+1 WHERE id='$id'";
mysql_query($sql); 
__________________
Te sirvió mi ayuda? +1 ;D
Andy Aquino - @aquiandres
  #4 (permalink)  
Antiguo 30/01/2012, 14:06
 
Fecha de Ingreso: enero-2012
Mensajes: 56
Antigüedad: 12 años, 10 meses
Puntos: 1
Respuesta: ¿contador de clicks?

Cita:
Iniciado por andres_aquino Ver Mensaje
Simple: consulta SQL y listo.

Código PHP:
$id $_POST['id_pelicula'];
$sql "UPDATE pelicula SET visitas=visitas+1 WHERE id='$id'";
mysql_query($sql); 
me gusta, simple, pero estoy muy fresco para entenderlo sin mas... como puedo hacer que se ejecute eso al hacer clic en ESE link de esa pelicula y no otra¿
  #5 (permalink)  
Antiguo 30/01/2012, 14:21
Avatar de andres_aquino  
Fecha de Ingreso: septiembre-2010
Ubicación: $("#place").html("FDW");
Mensajes: 138
Antigüedad: 14 años, 2 meses
Puntos: 24
Respuesta: ¿contador de clicks?

Básicamente es recorrer con un while (o un foreach) la tabla donde tienes los links a las películas. Luego en un archivo (por ej: ver.php) preguntas por el 'id' de la película y redireccionas al usuario usando el link almacenado en la BD.

index.php
Código PHP:
$sql "SELECT * FROM pelicula";
$rst mysql_query($sql);

while (
$row mysql_fetch_assoc($rst))
{
  
$contenido '
    <div class="pt-1">
      <a href="'
$root '/ver.php?id='$row['id'] .'">'$row['titulo'] .'</a>
    </div>
  '
;
  echo 
$contenido;


ver.php
Código PHP:
$id $_POST['id'];
$sql "SELECT * FROM pelicula WHERE id='".$id."'";
$rst mysql_query($sql);
$rows mysql_num_rows($rst);

if (
$rows)
{
  
$row mysql_fetch_assoc($rst);
  
header("Location: " $row['link']);
}
else
{
  echo 
"Ups! No he encontrado la película.";

Esto, de vuelta, es algo simple pero útil para comenzar. La lógica es sencilla, el código también y te vendrá como anillo al dedo.
__________________
Te sirvió mi ayuda? +1 ;D
Andy Aquino - @aquiandres
  #6 (permalink)  
Antiguo 30/01/2012, 14:29
 
Fecha de Ingreso: enero-2012
Mensajes: 56
Antigüedad: 12 años, 10 meses
Puntos: 1
Respuesta: ¿contador de clicks?

menudo lio...

antes de ponerme a ello...

lo que vendria a ser el index.html es en realidad main.php, que se carga en un frame.

su codigo completo vendria a ser esto:

Código PHP:
Ver original
  1. <body background="img/fondo.png">
  2.  
  3. <center>
  4. <p><img src="img/banner.png" width="600" height="200" /></p>
  5. <p>
  6. <p>
  7.   <?php
  8.  
  9. $conexion = mysql_connect("xxxxxxxxxxxxxx","xxxxxxxxxxxx","xxxxxxxxxxxxxxxx");
  10. mysql_select_db ("xxxxxxxxxxxxx",$conexion);
  11.  
  12. $registros = mysql_query ("select * from `peliculas` ORDER BY matricula DESC LIMIT 0, 50", $conexion);
  13.  
  14.  
  15.  
  16. while ($fila = mysql_fetch_array($registros)) {
  17.    
  18.     echo '<div style="background-image:url(img/marcoarriba.png); background-repeat:no-repeat; width:600px; height:59px"></div>';   
  19.     echo '<div style="background-image:url(img/marcocentro.png); background-repeat:repeat-y; width:600px; text-align: center;">';
  20.     echo '<div style="text-align: center; padding-left: 60px; padding-right: 55px; width: 480px;">';
  21.     echo "<br /><h1> <b>";
  22.     echo strip_tags($fila["titulo"]);
  23.     echo "</b><br />Director: <b>";
  24.     echo strip_tags($fila["director"]);
  25.     echo "</b><br />Año: <b>";
  26.     echo strip_tags($fila["fecha"]);
  27.     echo "</h1>";
  28.     echo '<br><center><img src="' . $fila["imagen"] . '"width="440px" /></center><p></p>';
  29.     echo "<p></p></b>Licencia: ";
  30.     echo strip_tags($fila["licencia"]);
  31.     echo "<p></p>Genero: ";
  32.     echo strip_tags($fila["genero1"]);
  33.     echo ", ";
  34.     echo strip_tags($fila["genero2"]);
  35.     echo '<p>Sinopsis:<br>     ';
  36.     echo strip_tags($fila["sinopsis"]);
  37.     echo "</p> Colaborador: ";
  38.     echo strip_tags($fila["colaborador"]);
  39.     echo "<br> Ver Online: ";
  40.     echo '<a href="' . $fila["link"] . '"target="_blank" onclick="mysql_query(UPDATE . peliculas . SET visitas = visitas+1 WHERE titulo = strip_tags($fila[ . titulo . ]))">';
  41.     echo strip_tags($fila["link"]);
  42.     echo '</a>';
  43.     echo "<br> Descargar: ";
  44.     echo '<a href="' . $fila["descarga"] . '"target="_blank" onclick="mysql_query(UPDATE . peliculas . SET visitas = visitas+1 WHERE titulo = strip_tags($fila[ . titulo . ]))">';
  45.     echo strip_tags($fila["descarga"]);
  46.     echo '</a>';
  47.     echo "<p></p>";
  48.     echo '</div><div style="background-image:url(img/marcoabajo.png); background-repeat:no-repeat; width:600px; height:54px"><p></p></div></div>';
  49. }
  50. ?>
  51. </center></body>

está pensado para mostrar todo de una sola sentada.... sigues pensando que se puede hacer eso?? voy a cenar y sigo investigando :P GRACIAS!
  #7 (permalink)  
Antiguo 30/01/2012, 14:44
Avatar de andres_aquino  
Fecha de Ingreso: septiembre-2010
Ubicación: $("#place").html("FDW");
Mensajes: 138
Antigüedad: 14 años, 2 meses
Puntos: 24
Respuesta: ¿contador de clicks?

Podrías hacer un link al archivo "ver.php" pasando el 'id' por GET y luego redireccionar. Entonces, sería cuestión de sólo poner en el link algo como "ver.php?id=3", luego ver.php selecciona ese id haciendo primeramente el UPDATE y luego redireccionando.

O bien, podrías hacerlo en el mismo archivo main.php.

Saludos
__________________
Te sirvió mi ayuda? +1 ;D
Andy Aquino - @aquiandres
  #8 (permalink)  
Antiguo 30/01/2012, 14:48
 
Fecha de Ingreso: enero-2012
Mensajes: 56
Antigüedad: 12 años, 10 meses
Puntos: 1
Respuesta: ¿contador de clicks?

ok, comprendo, voy a ponerme a hacerlo lo mejor que pueda... vuelvo en un rato :P GRACIAS!
  #9 (permalink)  
Antiguo 30/01/2012, 15:22
 
Fecha de Ingreso: enero-2012
Mensajes: 56
Antigüedad: 12 años, 10 meses
Puntos: 1
Respuesta: ¿contador de clicks?

a ver que hago mal....

en main.php he puesto:

Código PHP:
Ver original
  1. echo '<a href="/ver.php?matricula='. $fila['matricula'] .'"target="_blank">';
  2.     echo strip_tags($fila["link"]);
  3.     echo '</a>';

y en ver.php he puesto:

Código PHP:
Ver original
  1. <?php
  2. $matricula = $_POST["matricula"];
  3. echo '$matricula';
  4. ?>

"matricula" es el ID :P

además veo que en la url pone:
http://pelislegales.com/ver.php?matricula=22

de modo que el error esta en el ver.php... porque soy tan cazurro? :P
  #10 (permalink)  
Antiguo 30/01/2012, 15:37
Avatar de GatorV
$this->role('moderador');
 
Fecha de Ingreso: mayo-2006
Ubicación: /home/ams/
Mensajes: 38.567
Antigüedad: 18 años, 6 meses
Puntos: 2135
Respuesta: ¿contador de clicks?

Cuando mandas parámetros por la URL, los tiens que rescatar en $_GET, no en $_POST, lee lo siguiente: http://www.php.net/variables.external

También lee un poco sobre como funcionan los requests HTTP para que veas la diferencía entre POST y GET.
  #11 (permalink)  
Antiguo 30/01/2012, 16:38
 
Fecha de Ingreso: enero-2012
Mensajes: 56
Antigüedad: 12 años, 10 meses
Puntos: 1
Respuesta: ¿contador de clicks?

Muy bien... esto marcha... ahora el codigo del ver.php está asi:

Código PHP:
Ver original
  1. <?php
  2. $conexion = mysql_connect("zzzzz","zzzzz","zzzzzz");
  3. mysql_select_db ("zzzzzzz",$conexion);
  4.  
  5. $matricula = $_GET['matricula'];
  6. $sql = "SELECT * FROM peliculas WHERE matricula = '$matricula'";
  7. $update1 = "UPDATE peliculas SET visitas=visitas+1 WHERE matricula='$matricula'";
  8. $rst = mysql_query($sql, $conexion);
  9. $update = mysql_query($update1, $conexion);
  10. $rows = mysql_num_rows($rst);
  11.  
  12. if ($rows)
  13. {
  14. $update;
  15. header("Location: . $rows['link'] . ");
  16. }
  17. else
  18. {
  19.   echo "Ups! No he encontrado la película.";
  20. }  
  21.  
  22.  
  23. ?>


me cuenta las visitas perfectamente... pero me estoy liando con el header... alguno sabe porq?
  #12 (permalink)  
Antiguo 30/01/2012, 16:57
 
Fecha de Ingreso: enero-2012
Mensajes: 56
Antigüedad: 12 años, 10 meses
Puntos: 1
Respuesta: ¿contador de clicks?

mas facil: paso por URL tanto la ID como la url... pero el header no funciona:

Código PHP:
Ver original
  1. <?php
  2. $conexion = mysql_connect("xxxxxx","xxxxxxx","xxxxxx");
  3. mysql_select_db ("xxxxxxx",$conexion);
  4. $link = $_GET['link'];
  5. $matricula = $_GET['matricula'];
  6. $sql = "SELECT * FROM peliculas WHERE matricula = '$matricula'";
  7. $update1 = "UPDATE peliculas SET visitas=visitas+1 WHERE matricula='$matricula'";
  8. $rst = mysql_query($sql, $conexion);
  9. $update = mysql_query($update1, $conexion);
  10. $rows = mysql_num_rows($rst);
  11. if ($rows)
  12. {
  13. $update;
  14. header("Location: $link");
  15. }
  16. else
  17. {
  18.   echo "Ups! No he encontrado la película.";
  19. }  
  20. ?>

respuesta: Warning: Cannot modify header information - headers already sent by (output started at /homepages/35/d400236901/htdocs/ver.php:7) in /homepages/35/d400236901/htdocs/ver.php on line 20 :(
  #13 (permalink)  
Antiguo 30/01/2012, 17:10
Avatar de GatorV
$this->role('moderador');
 
Fecha de Ingreso: mayo-2006
Ubicación: /home/ams/
Mensajes: 38.567
Antigüedad: 18 años, 6 meses
Puntos: 2135
Respuesta: ¿contador de clicks?

¿Que tienes en la línea 7 de ver.php?
  #14 (permalink)  
Antiguo 30/01/2012, 17:11
 
Fecha de Ingreso: enero-2012
Mensajes: 56
Antigüedad: 12 años, 10 meses
Puntos: 1
problema con header

facil... quiero redirigir a una web:


Código PHP:
Ver original
  1. <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
  2. <html xmlns="http://www.w3.org/1999/xhtml">
  3. <head>
  4. <meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
  5. <title>Documento sin título</title>
  6. <?php
  7. $conexion = mysql_connect("xxxxxxx","xxxxx","xxxx");
  8. mysql_select_db ("xxxxxxx",$conexion);
  9. $link = $_GET['link'];
  10. $matricula = $_GET['matricula'];
  11. $update1 = "UPDATE peliculas SET visitas=visitas+1 WHERE matricula='$matricula'";
  12. $update = mysql_query($update1, $conexion);
  13. $link = $_GET['link'];
  14. $matricula = $_GET['matricula'];
  15. $update1 = "UPDATE peliculas SET visitas=visitas+1 WHERE matricula='$matricula'";
  16. $update = mysql_query($update1, $conexion);
  17. $update;
  18. header("Location:$link");
  19. ?>

pero me sale un famosos error: Warning: Cannot modify header information - headers already sent by (output started at /homepages/blablabla

ya he mirado de no tener espacios en blanco y demás.. pero bueno... he puesto TODO el código para que no queden cabos sueltos...

alguna idea¿¿¿ gracias de antemano
  #15 (permalink)  
Antiguo 30/01/2012, 17:18
Avatar de pateketrueke
Modernizr
 
Fecha de Ingreso: abril-2008
Ubicación: Mexihco-Tenochtitlan
Mensajes: 26.399
Antigüedad: 16 años, 7 meses
Puntos: 2534
Respuesta: problema con header

Error común, solución común:
http://www.forosdelweb.com/wiki/PHP:...n_line_4%22%3F

Cita:
Iniciado por apadravya Ver Mensaje
[...] ya he mirado de no tener espacios en blanco y demás.. pero bueno... [...]
Pues claro, tremendo HTML al inicio del script y dices que no hay "demás".
__________________
Y U NO RTFM? щ(ºдºщ)

No atiendo por MP nada que no sea personal.
  #16 (permalink)  
Antiguo 30/01/2012, 17:21
 
Fecha de Ingreso: enero-2012
Mensajes: 56
Antigüedad: 12 años, 10 meses
Puntos: 1
Respuesta: problema con header

te quiero pateketrueke...


no se me habia ocurrido borrar TODAS las etiquetas HTML XD

Etiquetas: header, html, mysql
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 13:00.