php - page counter on different pages of website -


<?php ob_start(); session_start(); $counter_name = "index.txt"; // check if text file exists. if not create 1 , initialize zero. if (!file_exists($counter_name)) {   $f = fopen($counter_name, "w");   fwrite($f,"0");   fclose($f); } // read current value of our counter file $f = fopen($counter_name,"r"); $counterval = fread($f, filesize($counter_name)); fclose($f); // has visitor been counted in session? // if not, increase counter value 1 if(!isset($_session['hasvisited'])){   $_session['hasvisited']="yes";   $counterval++`enter code here`;   $f = fopen($counter_name, "w");   fwrite($f, $counterval);   fclose($f);  } ?> 

i using code count number of visitors on 1 page using sessions. want keep page counter on other pages well. when copy , paste code other pages value not incremented. gets incremented on first page not on other page visit. possible solution?

i on website storing information in database. it's more secure using txt file, should consider doing that. , can use ip along session more thorough record keeping. make traffic logging file include in header file use request uri, ip, session id/user id.

by using request uri can put 1 single traffic logging script on pages handle different web pages want track. can add code examples if want.

hope helps out!

*/  define variables want store..in case preparing timestamp, page (i.e. $_server['request_uri']), , ip /*  $time = time(); $page = $_server['request_uri'];  //this used sort out correct ip address store //  $client  = @$_server['http_client_ip']; $forward = @$_server['http_x_forwarded_for']; $remote  = $_server['remote_addr'];      if(filter_var($client, filter_validate_ip)) {         $ip = $client;     } elseif(filter_var($forward, filter_validate_ip)) {         $ip = $forward;     } else {         $ip = $remote;     }  //use if want see if data exists already, store traffic make sure people aren't fishy//    $stmt = $database->prepare("select id traffic ip = :ip , page = :page"); $stmt->bindparam(':ip', $ip); $stmt->bindparam(':page', $page); $stmt->execute(); $result = $stmt->fetchall(pdo::fetch_assoc);  if (!isset($result)) {      $sql = "insert traffic (time,ip,page) values (:time, :ip, :page)";      $params = array(              ':time' => $time,              ':ip' => $ip,              ':page' => $page,          );      $stmt = $database->prepare($sql);      $stmt->execute($params); } 

Comments

Popular posts from this blog

javascript - Create a stacked percentage column -

Optimising Firebase database by automatically overwriting data -

javascript - Angular UI-Grid customTemplate directive causing rows to load slowly/? -