PHP记录点击数方法

1.第一种方法:

$id = $_GET['id']; //获取文章ID

$sql = "UPDATE base SET hits = hits+1 WHERE id = '$id'"; //数据库的执行语句

header("location: read.php?); //跳转语句

给你思路,语句自己写..

数据库里除了题目,发表时间,内容这些你已经有的字段外,增加一个click字段,是用来记录被点击了多少次..

文章题目连接到一个count.php文件,用ID值传递..

然后连接数据库,把click中的值加1再保存,

然后用header函数跳转到文章显示页面,也是用ID值传递..

为了不给人恶意刷新,可以在count.php这个页面中加一个cookie,多少时间内点击视为一个点击..

2.第二种方法:

<?php

error_reporting(E_ALL);

$ROOT_PATH = '../';

include_once($ROOT_PATH . "include/config.php");

$update_time = 1800; //多长时间更新一次,单位是秒

$article_id = (isset($_GET['article_id']) && is_numeric($_GET['article_id']) && $_GET['article_id'] > 0) ? intval($_GET['article_id']) : 0; //文章的ID

if ($article_id > 0) {

$filename = $ROOT_PATH . 'log/click_log.txt';

$s = '';

if (file_exists($filename)) {

$content = file_get_contents($filename);

$d_ary = array();

if ($content) {

$ary = explode("/n", $content);

foreach ($ary as $line) {

$data_ary = explode('|', $line);

if (is_numeric($data_ary[0]) && is_numeric($data_ary[1])) {

$d_ary[$data_ary[0]] = $data_ary[1];

}

}

} if (array_key_exists($article_id, $d_ary)) {

    $d_ary[$article_id] = $d_ary[$article_id] + 1; //将当前的文章的点击数加1

 

} else {

    $d_ary[$article_id] = 1;

 

}

   foreach ($d_ary as $key => $val) {

    $s .= $key . '|' . $val . "/n";

  

}

} else {

  $s .= $article_id . '|1' . "/n"; //这个是初始化记录文件

} //写记录文件

$fp = fopen($filename, "w"); //加入锁定

if (flock($fp, LOCK_EX)) {

  // 进行排它型锁定

  fwrite($fp , $s);

  flock($fp , LOCK_UN); // 释放锁定

} //fwrite($fp, $s); fclose($fp); @chmod($filename, 0777);

  $last_update = file_get_contents('../log/last_update.txt'); //取上一次更新的时间

  $last_update = intval($last_update);

    if (($last_update + $update_time) < time()) { //以下是数据库连接操作,我用的是ADODB,你可以改成你自己的

  require_once("adodb.inc.php");

  $db = NewADOConnection("$DB_TYPE");

  $db->debug = true;

  $ADODB_FETCH_MODE = ADODB_FETCH_ASSOC;

    if (!$db->Connect("$DB_HOST", "$DB_USER", "$DB_PASS", "$DB_DATABASE")) {

      exit('<a href = "/">服务器忙, 请稍候再访问</a>');

    }

    $content = file_get_contents($filename);

    $d_ary = array();

    if ($content) {

      $ary = explode("/n", $content);

        foreach ($ary as $line) {

          $data_ary = explode('|', $line);

            if (is_numeric($data_ary[0]) && is_numeric($data_ary[1])) {

              $sql = "UPDATE article SET hits=hits+" . $data_ary[1] . " WHERE ></script>

这种方法的页面,都很有效.

这个一般用于统计文章等内容的点击数的

一般静态页里,像上面这样用的(可以把我上面的程序存成click.php)

动态页里的话,可以把上面的代码做成一个包含文件,然后在你的文章中include进来,不过,要改一下这个PHP的代码,把article_id传进去.