mozilla
Your Search Results

    2 Displaying DNT status with caching

    While useful for testing, you probably do not want to pop up alerts when DNT is detected. You might want to show a graphic, however, to assure visitors that DNT is being honored. We do something along those lines at http://dnt.mozilla.org.

    Structurally, this is very similar to detecting a DNT header and displaying an alert. The main difference is that images get cached. If you have a graphic to show DNT status, you will want to ensure you do not cache it, so that you do not display an out-of-date image.

    We used one PHP file, one HTML file, and two image files. The main file:

    <?php
    // Save as: dnt_status.php
    
    // dnt detection script
    // Grabs the HTTP request (i.e., cookies and DNT header and referrer)
    // then serves an appropriate image back.
    
    $dnt = isset($_SERVER[‘HTTP_DNT’]) and $_SERVER[‘HTTP_DNT’] == 1;
    
    // Force no-caching
    header(“Expires: Thu, 19 Nov 1981 08:52:00 GMT”); // use any old date
    header(“Cache-Control: no-store, no-cache, must-revalidate,
    postcheck=0, pre-check=0”);
    header(“Pragma: no-cache”);
    
    // serve the appropriate image.
    header(“Content-Type: image/png”);
    if($dnt) {
      readfile(“images/DNT-indicator-on.png”);
    } else {
      readfile(“images/DNT-indicator-off.png”);
    }
    ?>

    This returns either the image file for users with DNT on, or the image file for users with DNT off, which we stored in images/DNT-indicator-on.png and images/DNTindicator-off.png, respectively. (You will need to create image files for your site, perhaps something as simple as a checkmark and an X while you test.)
    And we invoke the dnt_status code from a third file, in our case index.html:

    <html>
      <head>
        <title>Do Not Track graphics</tile>  
      </head>
      <body>
        <img style=”border:1px solid blue;”
          src=”/dnt_status.php”
          alt=”Do Not Track Indicator”
          title=”Do Not Track Indicator.”/>  
      </body>
    </html>
    

    Up: Tutorials

    Previous: 1 Reading the DNT header

    Next: 3 Collecting aggregate data based on DNT

    Document Tags and Contributors

    Tags: 
    Contributors to this page: Sheppy, jswisher, trevorh
    Last updated by: Sheppy,