Contador de clics sin reinicio (con php)

Resuelto
letocest Mensajes publicados 34 Estado Miembro -  
letocest Mensajes publicados 34 Estado Miembro -

Hola,

me gustaría que en mi sitio, las personas interesadas en un proyecto se contaran al hacer clic en un botón.

He encontrado el script en html/java, pero el contador se restablece a cero cuando se sale de la página.

He entendido que necesito usar php para mantener el número mostrado, pero no tengo idea (soy un manitas, pero no un campeón campeón).

¿Alguien podría explicarme (de forma sencilla) cómo hacerlo? Con ejemplos de scripts, por favor.

Estoy pidiendo mucho, lo sé, pero aprendo rápido...

Atentamente,

18 respuestas

  1. letocest Mensajes publicados 34 Estado Miembro
     

    Soy yo de nuevo. Acabo de ver que quizás debería usar Ajax. Pero aparte de Sófocles, Ajax...

    0
  2. jordane45 Mensajes publicados 30426 Fecha de registro   Estado Moderador Última intervención   4 830
     

    Hola,

    Entonces sí, necesitarás JavaScript, AJAX y un lenguaje de servidor (como PHP).

    Luego, la primera pregunta que debes hacerte es: ¿dónde quieres almacenar los datos de este contador? ¿en una base de datos o en un simple archivo?

    Si es en una base de datos, también necesitarás aprender SQL para poder hacer consultas INSERT o UPDATE.

    Aquí hay ejemplos de scripts JavaScript (jQuery) AJAX: https://codes-sources.commentcamarche.net/source/102253-exemple-ajax-en-jquery

    Seguramente encontrarás algunos más simples en cualquier lugar de la web...

    Vuelve a vernos con tus intentos si encuentras algún problema... veremos cómo ayudarte a solucionarlo.


    .
    Cordialmente,
    Jordane

    0
  3. letocest Mensajes publicados 34 Estado Miembro
     

    Muchas gracias. Ya encontré un ejemplo en otro sitio, con php y todo. El contador se muestra pero no se incrementa. Voy a mirar tu enlace y estoy seguro de que acabaré juntando las piezas. Hasta pronto. Gracias de nuevo.

    0
  4. letocest Mensajes publicados 34 Estado Miembro
     

    Hola,

    aquí hay algunos archivos que encontré para mi contador. Según lo que entiendo, los datos se registran en archivos (PHP5 y clickcount.data) y no en una base de datos. ¿Es correcto?

    1) Índice

     <?xml version="1.0" encoding="iso-8859-15"?><!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd"> <html> <head> <title>AJAX : Ejemplo de cliente</title> <script type="text/javascript" src=""></script> </head> <body> <p> <a href="" onclick="gestionClic(); return false;">¡Haz clic aquí!</a> (Número de clics : <span id="nbr_clics"> <?php $str = @file_get_contents('compteur/clickcount.data'); if($str !== FALSE) echo unserialize($str); else echo 0; ?></span>) </p> </body> </html>

    2) /compteur/clickcount.data

     0

    3) /compteur/compteur.php5

     <?php sleep(1); $nbr = 1; $str = @file_get_contents('clickcount.data'); if($str !== FALSE) $nbr = unserialize($str)+1; header("Expires: Mon, 26 Jul 1997 05:00:00 GMT"); header("Last-Modified: " . gmdate("D, d M Y H:i:s") . " GMT"); header("Cache-Control: no-store, no-cache, must-revalidate"); header("Cache-Control: post-check=0, pre-check=0", false); header("Pragma: no-cache"); echo $nbr; file_put_contents('clickcount.data', serialize($nbr)); ?> 

    4) /js/compteur-click.js

     var http; // Nuestro objeto XMLHttpRequest function createRequestObject() { var http; if(window.XMLHttpRequest) { // Mozilla, Safari, ... http = new XMLHttpRequest(); } else if(window.ActiveXObject) { // Internet Explorer http = new ActiveXObject("Microsoft.XMLHTTP"); } return http; } function gestionClic() { document.getElementById('nbr_clics').innerHTML = '<em>Cargando...</em>'; http = createRequestObject(); http.open('get', '.compteur/compteur.php5', true); http.onreadystatechange = handleAJAXReturn; http.send(null); } function handleAJAXReturn() { if(http.readyState == 4) { if(http.status == 200) { document.getElementById('nbr_clics').innerHTML = http.responseText; } else { document.getElementById('nbr_clics').innerHTML = "<strong>No disponible</strong>"; } } }

    Tengo varios problemas:
    aunque los archivos PHP5 y clickcount.data se incrementan, el resultado es No disponible.
    He visto la línea de código en el archivo compteur-click.js

    Extractos:
    (...)

     function handleAJAXReturn() { if(http.readyState == 4) { if(http.status == 200) { document.getElementById('nbr_clics').innerHTML = http.responseText; } else { document.getElementById('nbr_clics').innerHTML = "<strong>No disponible</strong>"; } } 

    (...)
    no sé qué está mal y qué debo cambiar.

    Además, quise, con Kompozer, modificar el texto, la capitalización de los caracteres, etc. en la página principal (índice), y todo desapareció. Lo cual es un problema porque, por supuesto, deseo insertar este contador en un rincón de la página principal con un texto que lo anuncie y lo acompañe.

    Asimismo, al actualizar el índice, con fileZilla, parece que la incrementación no continúa desde el día anterior, lo que, en este caso, es un gran problema, ya que quiero modificar regularmente la página principal (índice) y mantener la incrementación.

    Esto es donde estoy. Está avanzando...

    Si es útil, la dirección es
    http://letaucestnous.lescigales.org

    0
  5. letocest Mensajes publicados 34 Estado Miembro
     

    Hola,

    aquí hay archivos que encontré para mi contador. Según lo que entiendo, los datos están registrados en archivos (PHP5 y clickcount.data) y no en una base de datos. ¿Es correcto?

    1) Índice

    <?xml version="1.0" encoding="iso-8859-15"?><!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd"> <html> <head> <title>AJAX : Ejemplo de cliente</title> <script type="text/javascript" src="""></script> </head> <body> <p> <a href="" onclick="gestionClic(); return false;">¡Haz clic aquí!</a> (Número de clics : <span id="nbr_clics"> <?php $str = @file_get_contents('compteur/clickcount.data'); if($str !== FALSE) echo unserialize($str); else echo 0; ?></span>) </p> </body> </html> 

    2) /compteur/clickcount.data

     0
    0
  6. letocest Mensajes publicados 34 Estado Miembro
     

    3) /contador/contador.php5

     <?php sleep(1); $nbr = 1; $str = @file_get_contents('clickcount.data'); if($str !== FALSE) $nbr = unserialize($str)+1; header("Expires: Mon, 26 Jul 1997 05:00:00 GMT"); header("Last-Modified: " . gmdate("D, d M Y H:i:s") . " GMT"); header("Cache-Control: no-store, no-cache, must-revalidate"); header("Cache-Control: post-check=0, pre-check=0", false); header("Pragma: no-cache"); echo $nbr; file_put_contents('clickcount.data', serialize($nbr)); ?>

    4) /js/contador-click.js

     var http; // Nuestro objeto XMLHttpRequest function createRequestObject() { var http; if(window.XMLHttpRequest) { // Mozilla, Safari, ... http = new XMLHttpRequest(); } else if(window.ActiveXObject) { // Internet Explorer http = new ActiveXObject("Microsoft.XMLHTTP"); } return http; } function gestionClic() { document.getElementById('nbr_clics').innerHTML = '<em>Cargando...</em>'; http = createRequestObject(); http.open('get', '.contador/contador.php5', true); http.onreadystatechange = handleAJAXReturn; http.send(null); } function handleAJAXReturn() { if(http.readyState == 4) { if(http.status == 200) { document.getElementById('nbr_clics').innerHTML = http.responseText; } else { document.getElementById('nbr_clics').innerHTML = "<strong>N/D</strong>"; } } }
    0
  7. letocest Mensajes publicados 34 Estado Miembro
     

    Tengo varios problemas:
    aunque los archivos PHP5 y clickcount.data se incrementan, el resultado es N/A.
    He visto la línea de código en el archivo contador-click.js

    Extractos:
    (...)

    function handleAJAXReturn() { if(http.readyState == 4) { if(http.status == 200) { document.getElementById('nbr_clics').innerHTML = http.responseText; } else { document.getElementById('nbr_clics').innerHTML = "<strong>N/A</strong>"; } } (...)

    (...)
    no sé qué está mal y qué debo cambiar.

    Además, quise, con Kompozer, modificar el texto, la capitalización de los caracteres, etc. en la página principal (index), y todo desapareció. Lo cual es un problema porque, por supuesto, quiero insertar este contador en un rincón de la página principal con un texto que lo anuncie y lo acompañe.

    Asimismo, al actualizar index, con fileZilla, parece que la incrementación no continúa la del día anterior, lo cual es, para el caso, un gran gran problema, ya que quiero modificar regularmente la página principal (index) y mantener la incrementación.

    Esto es en lo que estoy. Está avanzando... (lo hice en varios mensajes porque completo no pasaba)

    0
  8. jordane45 Mensajes publicados 30426 Fecha de registro   Estado Moderador Última intervención   4 830
     

    Comienza por renombrar tu archivo compteur.php5 a compteur.php

    Luego, reemplaza tu código JS por este

    var http; // Nuestro objeto XMLHttpRequest var urlAjax = './compteur/compteur.php'; function createRequestObject() { if(window.XMLHttpRequest) { // Mozilla, Safari, ... http = new XMLHttpRequest(); } else if(window.ActiveXObject){ // Internet Explorer http = new ActiveXObject("Microsoft.XMLHTTP"); } return http; } function gestionClic() { document.getElementById('nbr_clics').innerHTML = '<em>Cargando...</em>'; http = createRequestObject(); http.open('get', urlAjax, true); http.onreadystatechange = handleAJAXReturn; // Manejo de Errores: http.onerror = function(error){ console.error( 'Error AJAX', error ); } http.send(null); } function handleAJAXReturn() { if(http.readyState == 4) { if(http.status == 200){ document.getElementById('nbr_clics').innerHTML = http.responseText; } else { document.getElementById('nbr_clics').innerHTML = "<strong>N/A</strong>"; console.error( 'Error AJAX', http.status, http.responseText ); } } } 

    Y recuerda mirar en la consola de tu navegador lo que se muestra cuando haces clic en tu botón..

    0
  9. letocest Mensajes publicados 34 Estado Miembro
     

    ¡Formidable! ¡Funciona! ¿Y va a permanecer así aunque modifique el índice? Por lo demás, haré pruebas, y si tienes algunas ideas... ¡Muchas gracias!

    0
    1. jordane45 Mensajes publicados 30426 Fecha de registro   Estado Moderador Última intervención   4 830
       

      eso permanecerá mientras mantengas el archivo generado por el script.

      en cuanto al "resto", no sé de qué hablas...

      Pero de todos modos, habrá que crear una nueva discusión para cada pregunta/problema.

      y recuerda marcar este como resuelto.

      0
  10. letocest Mensajes publicados 34 Estado Miembro
     

    El problema que me queda es la modificación del formato (tamaño del texto, posiblemente del botón, etc.) para insertar este contador en una esquina de la página principal con un texto que lo anuncie y lo acompañe. Con Kompozer, cambié el texto y todo desapareció en línea. Raro...

    0
  11. letocest Mensajes publicados 34 Estado Miembro
     

    Acabo de regresar al sitio y el número de clics no se muestra. Solo se muestra si hago clic en el botón (con +1). Es molesto porque me gustaría que el número (de participantes) siempre se mostrara. Es importante.

    0
    1. jordane45 Mensajes publicados 30426 Fecha de registro   Estado Moderador Última intervención   4 830
       

      modifica la línea de código

       $str = @file_get_contents('compteur/clickcount.data');

      por

       $str = file_get_contents('./compteur/clickcount.data');
      0
  12. letocest Mensajes publicados 34 Estado Miembro
     

    La frase es

     $str = @file_get_contents('clickcount.data');

    (sin contador/) que he reemplazado por

     $str = file_get_contents('./clickcount.data');

    (sin @) pero no ha cambiado nada

    0
    1. letocest Mensajes publicados 34 Estado Miembro
       

      Además, encontré este trozo de código que podría remediar la visualización permanente del número de clics

       <body onload="gestionClic(nbr_clics);"> <!-- ...... -->

      pero habría que adaptarlo (?) y no sé dónde habría que insertarlo...

      0
      1. letocest Mensajes publicados 34 Estado Miembro > letocest Mensajes publicados 34 Estado Miembro
         

        Hello,

        en lo que respecta a la ubicación del contador en la página, está resuelto. Solo me queda el problema de la permanencia del número de participantes...

        0
  13. jordane45 Mensajes publicados 30426 Fecha de registro   Estado Moderador Última intervención   4 830
     

    ¿Estás seguro del camino?

    ¿Puedes modificar el código así?

    <?php $cmptFile = __DIR__ . '/clickcount.data'; if(!file_exists($cmptFile)){ echo "Error .. Archivo " . $cmptFile . "faltante o no encontrado..."; } else { $str = file_get_contents($cmptFile); var_dump($str); // el tiempo de las pruebas para ver qué contiene tu variable if($str !== FALSE) { echo unserialize($str); } else { echo 0; } } ?>
    0
    1. letocest Mensajes publicados 34 Estado Miembro
       

      No estoy seguro de nada (¿camino?) Reemplacé el php por tu código, el resultado es bastante curioso... (ver la imagen)

      0
    2. letocest Mensajes publicados 34 Estado Miembro
       

      No estoy seguro de nada (¿camino?) He reemplazado el php por tu código, el resultado es bastante curioso, y desaparece cuando se recarga la página.

      Esto da:

      Somos: cadena(5) "i:13;" 13

      (la cursiva soy yo)

      0
      1. jordane45 Mensajes publicados 30426 Fecha de registro   Estado Moderador Última intervención   4 830 > letocest Mensajes publicados 34 Estado Miembro
         

        Entonces encuentra bien el archivo y logra extraer el número de clics..

        Sin embargo, si desaparece (lo cual no es normal...) es porque intentaste poner tu llamada al script js en el onload del body.. (lo cual no se debía hacer...)

        0
      2. letocest Mensajes publicados 34 Estado Miembro > jordane45 Mensajes publicados 30426 Fecha de registro   Estado Moderador Última intervención  
         

        He reinstalado el php anterior que funcionaba muy bien (Estamos: 14), pero que desaparece a cada carga de la página.

        Sin embargo, no entiendo mucho tu comentario. No estoy intentando gran cosa, solo estoy tomando trozos de código aquí y allá... No he insertado el trozo de código

         <body onload="gestionClic(nbr_clics);"> <!-- ...... -->

        porque no sabría dónde ponerlo.

        0
      3. jordane45 Mensajes publicados 30426 Fecha de registro   Estado Moderador Última intervención   4 830 > letocest Mensajes publicados 34 Estado Miembro
         

        Es necesario que nos muestres la totalidad de tu código en su estado actual.

        No olvides especificar el nombre de cada archivo y su ubicación en tu sitio.

        0
  14. letocest Mensajes publicados 34 Estado Miembro
     

    Gracias por tu respuesta. De hecho, los archivos no son muy diferentes a los primeros que mostré (con tus modificaciones).

    Hay 4 archivos (quizás los ponga en varias veces);

    1) index.html

    2) /compteur/compteur.php

    3) /compteur/clickcount.data

    4) /js/compteur-click.js

    y primero...

    1) index.html (el paso del contador)

    (...)

     </div> <div>&nbsp; <script type="text/javascript" src=""></script> <p style="text-align: center;"><a href="" onclick="gestionClic(); return false"><img style="border: medium none ;" src=""></a> <br> </p> <p style="text-align: center;"><big><big>(Estamos: <span id="nbr_clics"> <?php $str = @file_get_contents('compteur/clickcount.data'); if($str !== FALSE) echo unserialize($str); else echo 0; ?></span>)

    (...) es extraño que la dirección de la fuente src (una imagen) haya desaparecido del código aquí.

    2) /compteur/compteur.php

     <?php sleep(1); $nbr = 1; //$str = @file_get_contents('clickcount.data'); $str = file_get_contents('./clickcount.data'); if($str !== FALSE) $nbr = unserialize($str)+1; header("Expires: Mon, 26 Jul 1997 05:00:00 GMT"); header("Last-Modified: " . gmdate("D, d M Y H:i:s") . " GMT"); header("Cache-Control: no-store, no-cache, must-revalidate"); header("Cache-Control: post-check=0, pre-check=0", false); header("Pragma: no-cache"); echo $nbr; //file_put_contents('clickcount.data', serialize($nbr)); file_put_contents('./clickcount.data', serialize($nbr)); ?>
    0
    1. letocest Mensajes publicados 34 Estado Miembro
       

      3) /contador/clickcount.data

       0

      4) /js/contador-click.js

       var http; // Nuestro objeto XMLHttpRequest var urlAjax = './contador/contador.php'; function createRequestObject() { if(window.XMLHttpRequest) { // Mozilla, Safari, ... http = new XMLHttpRequest(); } else if(window.ActiveXObject){ // Internet Explorer http = new ActiveXObject("Microsoft.XMLHTTP"); } return http; } function gestionClic() { document.getElementById('nbr_clics').innerHTML = '<em>Cargando...</em>'; http = createRequestObject(); http.open('get', urlAjax, true); http.onreadystatechange = handleAJAXReturn; // Manejo de Errores: http.onerror = function(error){ console.error( 'Error AJAX', error ); } http.send(null); } function handleAJAXReturn() { if(http.readyState == 4) { if(http.status == 200){ document.getElementById('nbr_clics').innerHTML = http.responseText; } else { document.getElementById('nbr_clics').innerHTML = "<strong>N/A</strong>"; console.error( 'Error AJAX', http.status, http.responseText ); } } }

      El contador funciona muy bien, se incrementa y todo. El único problema (molesto) es que desaparece en cada carga de la página.

      0
  15. jordane45 Mensajes publicados 30426 Fecha de registro   Estado Moderador Última intervención   4 830
     

    ¿Tu archivo se llama index.html ?

    Es sorprendente... es raro que la configuración del servidor permita la ejecución de código PHP en un archivo .html.

    Renómbralo como index.php ... debería funcionar mejor.

    Si sigue sin funcionar, publícanos el código COMPLETO de tu archivo index.php así como el código fuente generado de este. (para obtener el código fuente generado, debes mostrar la página en tu navegador y luego usar el atajo de teclado CTRL+u, copiarlo y pegarnos aquí)


    .
    Atentamente,
    Jordane

    0
  16. letocest Mensajes publicados 34 Estado Miembro
     

    No funciona más... Estoy perdido en todos mis archivos. Los he intentado todos y, (creo) los que he puesto de ayer, cuando hago clic en la imagen del contador, la página sube arriba.

    No puedo poner el enlace del sitio, pero haciendo el listo:

    letaucestnous punto lescigales punto org (por ahora con index.html ya que funcionaba) para que lo veas por ti mismo si es posible

    0
    1. letocest Mensajes publicados 34 Estado Miembro
       

      He vuelto a poner el contador base sin formateo y funciona, excepto por la permanencia del conteo. Voy a reformatear suavemente y debería regresar a donde estaba, es decir, volver al problema de la permanencia...

      0
  17. letocest Mensajes publicados 34 Estado Miembro
     

    Acabo de darme cuenta de que hay un lío en los mensajes, porque escribía mensajes que no aparecían, pero que de hecho aparecieron más tarde. Y como lo intenté varias veces... Con respecto a HTML o PHP, el contador funciona para ambos, pero la codificación de la página para PHP es un poco enredada. Estoy dispuesto a poner la página entera del índice y su código fuente, no sabía que diferían.

    Además, intenté reemplazar una imagen en lugar de "clic aquí", había logrado hacerlo y ya no puedo (el contador ya no funciona - de hecho funcionaba, debe ser la suerte del principiante).

    Así que, empecemos de nuevo:

    1) index.html

     <!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01//EN" "http://www.w3.org/TR/html4/strict.dtd"> <html><head> <meta content="text/html; charset=ISO-8859-1" http-equiv="content-type"> <title>Índice maqueta</title> </head><body style="width: 94px;"> <div style="position: absolute; left: 36px; top: 356px; height: 68px; width: 587px;"><big><big style="font-weight: bold;">Capa 1 ¿Qué es esto?</big></big><br> </div> <div style="position: absolute; left: 228px; top: 303px; height: 46px; width: 137px; z-index: 1;"><big>Capa 4</big><br> </div> <div style="position: absolute; left: 744px; top: 362px;"><big><big style="font-weight: bold;">Capa 2 Artículos</big></big><br> </div> <div style="position: absolute; left: 644px; top: 275px; height: 51px; width: 185px;"><big>&nbsp;&nbsp; <big style="font-weight: bold;">Capa 7</big></big><br> </div> <div style="position: absolute; left: 374px; top: 7px;"><big>&nbsp; <img style="width: 250px; height: 250px;" alt="" src=""></big><br> </div> <big>&nbsp;&nbsp; <br> </big> <div style="position: absolute; left: 115px; top: 113px;"><big style="font-weight: bold; font-family: Curlz MT;"><big><big>Sitio en construcción....</big></big></big><br> </div> <big><br> </big> <div style="position: absolute; left: 552px; top: 504px; height: 262px; width: 318px;"> <div style="text-align: center;"><big>&nbsp;&nbsp; <big style="font-weight: bold;">¡Contemos!</big></big><br> <big><big style="font-weight: bold;">Si desea manifestar su participación en <span style="font-style: italic;"><br> el lazo somos nosotros</span>, </big></big><br> </div> <div>&nbsp; <script type="text/javascript" src=""></script> </head> <body> <p> <a href="" onclick="gestionClic(); return false;">¡Haga clic aquí!</a> (Estamos: <span id="nbr_clics"> <?php $str = @file_get_contents('compteur/clickcount.data'); if($str !== FALSE) echo unserialize($str); else echo 0; ?></span>) </big></big></p> ;</div> <br> </div> <div style="position: absolute; left: 417px; top: 309px;"><big>&nbsp;&nbsp; Capa 6</big><br> </div> <div style="position: absolute; left: 56px; top: 315px; width: 135px; text-align: center;"><big><big>&nbsp;Capa 5</big></big><br> </div> <div style="position: absolute; left: 746px; top: 423px;"><big><big>Capa 3 Sitios</big></big><br> </div> </body></html>

    2) código fuente index.html

     <!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01//EN" "http://www.w3.org/TR/html4/strict.dtd"> <html><head> <meta content="text/html; charset=ISO-8859-1" http-equiv="content-type"> <title>Índice maqueta</title> </head><body style="width: 94px;"> <div style="position: absolute; left: 36px; top: 356px; height: 68px; width: 587px;"><big><big style="font-weight: bold;">Capa 1 ¿Qué es esto?</big></big><br> </div> <div style="position: absolute; left: 228px; top: 303px; height: 46px; width: 137px; z-index: 1;"><big>Capa 4</big><br> </div> <div style="position: absolute; left: 744px; top: 362px;"><big><big style="font-weight: bold;">Capa 2 Artículos</big></big><br> </div> <div style="position: absolute; left: 644px; top: 275px; height: 51px; width: 185px;"><big>&nbsp;&nbsp; <big style="font-weight: bold;">Capa 7</big></big><br> </div> <div style="position: absolute; left: 374px; top: 7px;"><big>&nbsp; <img style="width: 250px; height: 250px;" alt="" src=""></big><br> </div> <big>&nbsp;&nbsp; <br> </big> <div style="position: absolute; left: 115px; top: 113px;"><big style="font-weight: bold; font-family: Curlz MT;"><big><big>Sitio en construcción....</big></big></big><br> </div> <big><br> </big> <div style="position: absolute; left: 552px; top: 504px; height: 262px; width: 318px;"> <div style="text-align: center;"><big>&nbsp;&nbsp; <big style="font-weight: bold;">¡Contemos!</big></big><br> <big><big style="font-weight: bold;">Si desea manifestar su participación en <span style="font-style: italic;"><br> el lazo somos nosotros</span>, </big></big><br> </div> <div>&nbsp; <script type="text/javascript" src=""></script> </head> <body> <p> <a href="" onclick="gestionClic(); return false;">¡Haga clic aquí!</a> (Estamos: <span id="nbr_clics"> <?php $str = @file_get_contents('compteur/clickcount.data'); if($str !== FALSE) echo unserialize($str); else echo 0; ?></span>) </big></big></p> ;</div> <br> </div> <div style="position: absolute; left: 417px; top: 309px;"><big>&nbsp;&nbsp; Capa 6</big><br> </div> <div style="position: absolute; left: 56px; top: 315px; width: 135px; text-align: center;"><big><big>&nbsp;Capa 5</big></big><br> </div> <div style="position: absolute; left: 746px; top: 423px;"><big><big>Capa 3 Sitios</big></big><br> </div> </body></html>

    Todo esto es bastante complicado, disculpa.

    Hasta pronto,

    0
    1. jordane45 Mensajes publicados 30426 Fecha de registro   Estado Moderador Última intervención   4 830
       

      Uhhh...

      Para empezar... tienes varias etiquetas <head> </head> en tu código... ¡no es posible!

      Y en las etiquetas <head>... no deberías tener código html... solo las etiquetas meta, el título de tu página y, eventualmente, la carga de tus scripts JS

      Script JS, por cierto... que no se carga ya que su etiqueta src está vacía!

      0
      1. letocest Mensajes publicados 34 Estado Miembro > jordane45 Mensajes publicados 30426 Fecha de registro   Estado Moderador Última intervención  
         

        Gracias. Por el head, hay uno de más. Pero para el script, la etiqueta puede estar vacía, pero funciona... ¿Qué me aconsejas?

        0
  18. jordane45 Mensajes publicados 30426 Fecha de registro   Estado Moderador Última intervención   4 830
     

    Confirmo .. el hecho de que tu archivo sea index.html y no .php .. el código php no se interpreta ....

    Es por eso que el contador no se muestra.

    ¿Puedes, además de tu index.html .. crear en la misma carpeta un archivo index.php y avisarme cuando esté hecho?

    Hay que ir a ver en la url: https://letaucestnous.lescigales.org/index.php si funciona.

    Si realmente no puedes modificar tu archivo a .php ... en ese caso no tendrás más remedio que hacer un ajax para leer la información y mostrarla en tu página. ( Podrás basarte fuertemente en el script que utilizaste para incrementar el número de clics .. )

    En tu js, hacer una función getclic

    var http; // Nuestro objeto XMLHttpRequest var urlAjax = './compteur/compteur.php'; var urlAjax2 = './compteur/compteur2.php'; function createRequestObject() { if(window.XMLHttpRequest) { // Mozilla, Safari, ... http = new XMLHttpRequest(); } else if(window.ActiveXObject){ // Internet Explorer http = new ActiveXObject("Microsoft.XMLHTTP"); } return http; } function gestionClic() { document.getElementById('nbr_clics').innerHTML = '<em>Cargando...</em>'; http = createRequestObject(); http.open('get', urlAjax, true); http.onreadystatechange = handleAJAXReturn; // Manejo de errores: http.onerror = function(error){ console.error( 'Error AJAX', error ); } http.send(null); } function getClic() { document.getElementById('nbr_clics').innerHTML = '<em>Cargando...</em>'; http = createRequestObject(); http.open('get', urlAjax2, true); http.onreadystatechange = handleAJAXReturn; // Manejo de errores: http.onerror = function(error){ console.error( 'Error AJAX', error ); } http.send(null); } function handleAJAXReturn() { if(http.readyState == 4) { if(http.status == 200){ document.getElementById('nbr_clics').innerHTML = http.responseText; } else { document.getElementById('nbr_clics').innerHTML = "<strong>N/A</strong>"; console.error( 'Error AJAX', http.status, http.responseText ); } } }

    Y crear un segundo archivo php

    <?php // './compteur/compteur2.php'; sleep(1); $nbr = 0; //$str = @file_get_contents('clickcount.data'); $str = file_get_contents('./clickcount.data'); if($str !== FALSE) { $nbr = unserialize($str); } header("Expires: Mon, 26 Jul 1997 05:00:00 GMT"); header("Last-Modified: " . gmdate("D, d M Y H:i:s") . " GMT"); header("Cache-Control: no-store, no-cache, must-revalidate"); header("Cache-Control: post-check=0, pre-check=0", false); header("Pragma: no-cache"); echo $nbr; ?>

    Y en tu archivo index.html, hacer llamada a la función getClic cuando la página haya terminado de cargar

    document.addEventListener("DOMContentLoaded", function() { getClic(); // llamamos a la función getClic una vez que la página ha cargado });
    0
    1. letocest Mensajes publicados 34 Estado Miembro
       

      ¡Victoria! Con index.php, el resultado permanece en la página. La codificación es extraña. ¿Cómo es en tu caso? He puesto western iso 8854 etc. y se muestra correctamente.

      0
    2. letocest Mensajes publicados 34 Estado Miembro > letocest Mensajes publicados 34 Estado Miembro
       

      Vas a decir que exagero, pero ¿cómo hago para poner una imagen en lugar de "haz clic aquí"? Lo había conseguido, pero ya no funciona... Esta es mi última pregunta, lo juro.

      Es un poco aburrido esto del código de la página. Abrí una nueva pestaña para mostrar de nuevo el sitio, y los signos cabalísticos en lugar de las letras acentuadas han vuelto a aparecer...

      0
    3. jordane45 Mensajes publicados 30426 Fecha de registro   Estado Moderador Última intervención   4 830 > letocest Mensajes publicados 34 Estado Miembro
       

      Para la codificación, hay que usar utf8

      ver aquí :

      https://forums.commentcamarche.net/forum/affich-37584944-php-html-caracteres-accentues-et-l-utf8

      Luego, para tu imagen, debes ponerla en tu etiqueta <a>

      <a href="" onclick="gestionClic(); return false;"> <img src="" alt="¡Haz clic aquí!"/> </a> (Estamos: <span id="nbr_clics"> <?php $str = @file_get_contents('compteur/clickcount.data'); if($str !== FALSE) echo unserialize($str); else echo 0; ?></span>)
      0
    4. jordane45 Mensajes publicados 30426 Fecha de registro   Estado Moderador Última intervención   4 830 > jordane45 Mensajes publicados 30426 Fecha de registro   Estado Moderador Última intervención  
       

      En la etiqueta src de la imagen.. hay que poner la ruta hacia tu imagen, por supuesto..

      hay un error en el foro que vacía las etiquetas src

      0
    5. letocest Mensajes publicados 34 Estado Miembro > jordane45 Mensajes publicados 30426 Fecha de registro   Estado Moderador Última intervención  
       

      Lo hice, pero no funcionó. O más bien, funcionó una vez y luego ya no... No entiendo por qué. ¿No me quieres dar la frase? Para ver si lo hice correctamente.

      0