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
Post a Comment