Scripts
counter voor links i.c.m. bbclone
Stel je hebt een aantal download-links of plaatjes op je website staan en je wilt weten hoe vaak deze worden aangeklikt. Zelf gebruik ik al een hele tijd bbclone (ff googlen) om pagina statistieken bi te houden. 'Nu heb ik een include gemaakt (bbclone.inc.php) om heel makkelijk pagina bezoeken te registreren (Naam wordt de naam van de file zonder de extensie). Tevens volgens Ajax-methodiek via een on-click event laat ik deze include nogmaals aanroepen plus de naam in de post gegevens. Je moet natuurlijk wel eerst bbclone installeren. Je ziet hier en daar wat uitgecommenteerde regels die ik gebruik heb om te testen.
html_gedeelte.txt
<script type="text/javascript">
<!-- Begin
var xmlHttp;
function createXMLHttpRequest () {
if (window.ActiveXObject) {xmlHttp = new ActiveXObject("Microsoft.XMLHTTP");}
else if(window.XMLHttpRequest) {xmlHttp = new XMLHttpRequest();}
} // End of function createXMLHttpRequest ()
function handleStateChange() {
//alert ("Readystate moet 4 zijn = " + xmlHttp.readyState);
//alert ("status moet 200 zijn = " + xmlHttp.status);
if (xmlHttp.readyState == 4) {
if (xmlHttp.status == 200) {
//alert(xmlHttp.responseText); // De uitvoer van bbclone.inc.php zou hier moeten verschijnen.
document.getElementById("linkname").innerHTML = xmlHttp.responseText;
}
}
} // End of function handleStateChange()
function count(file) {
// alert("Count wordt uitgevoerd.");
var queryString = "file=" + file;
var url = "bbclone.inc.php?timeStamp=" + new Date().getTime();
//url = url + queryString ;
//alert(queryString);
createXMLHttpRequest ();
xmlHttp.open("POST", url, true);
xmlHttp.onreadystatechange = handleStateChange;
xmlHttp.setRequestHeader("Content-Type", "application/x-www-form-urlencoded;");
xmlHttp.send(queryString);
} // End of function doRequestUsingPOST()
// End -->
</script>
Downloads:
<ul>
<li><a href="linkname.zip" onclick="return count('linkname');">linkname.zip</a><br />
<span id="linkname">
<?php require("bbclone/var/access.php"); echo $access["page"]["linkname"]["count"]; ?>
</span>x gedownload</li>
</ul>
bbclone.inc.php
<?php
$scriptfile=end(explode("/",$_SERVER['SCRIPT_NAME']));
$scriptfilename=reset(explode(".",$scriptfile));
$scriptfilename=ucfirst($scriptfilename); //Capitalize first letter
$downloadfile=$_REQUEST["file"];
if ($downloadfile != "") {$scriptfilename =$downloadfile;}
//------ Counter -----------------------------------
define("_BBC_PAGE_NAME", $scriptfilename);
define("_BBCLONE_DIR", "bbclone/");
define("COUNTER", _BBCLONE_DIR."mark_page.php");
if (is_readable(COUNTER)) include_once(COUNTER);
if ($downloadfile != "") {
header("Cache-Control: no-cache, must-revalidate"); // HTTP/1.1
#header("Expires: Mon, 26 Jul 1997 05:00:00 GMT"); // Datum in het verleden
header('Content-type: text/html');
//-------Display page downloads of file -----------
require("bbclone/var/access.php");
// number of hits by title
echo $access["page"][$downloadfile]["count"];
}
?>
Reacties
0