Search code examples
phpajaxtextechofwrite

Display value from text file on website


I am using AJAX to track the number of clicks of a button on my site and I would like to display that value on the page as well. Currently the tracking is working great and the number of clicks is being printed to a document called clicks.txt and I was wondering how I could go about reading the value from that text file and printing it to the page.

I tried searching SO and Google for an answer, but I guess I can't think of how to word it properly because the answers I have found so far have been unrelated to what I'm trying to do.

Here is the AJAX included in index.php

<script type="text/javascript">
            function getXMLHttp()
            {
              var xmlHttp
              try
              {
                xmlHttp = new XMLHttpRequest();
              }
              catch(e)
              {
                try
                {
                  xmlHttp = new ActiveXObject("Msxml2.XMLHTTP");
                }
                catch(e)
                {
                  try
                  {
                    xmlHttp = new ActiveXObject("Microsoft.XMLHTTP");
                  }
                  catch(e)
                  {
                    return false;
                  }
                }
              }
              return xmlHttp;
            }

            function MakeRequest()
            {
              var xmlHttp = getXMLHttp();
              xmlHttp.onreadystatechange = function()
              {
                if(xmlHttp.readyState == 4)
                {
                  HandleResponse(xmlHttp.responseText);
                }
              }
              xmlHttp.open("GET", "counter.php", true); 
              xmlHttp.send(null);
            }

            function HandleResponse(response)
            {
              document.getElementById('ResponseDiv').innerHTML = response;
            }
        </script>

Here is the external PHP(counter.php) I am using to track the button clicks:

<?php

    $clicks = file_get_contents("clicks.txt");
    $clicks++;

    $fp = fopen("clicks.txt", "w+");

    while ( !flock($fp, LOCK_EX) ) {    
        usleep(500000); // Delay half a second
    }

    fwrite($fp, $clicks);
    fclose($fp);
    flock($fp, LOCK_UN);

?>

Thanks in advance!


Solution

  • $clicks = file_get_contents("clicks.txt");
    echo $clicks;