如何为phpcms2008网站添加一个浏览次数统计插件?

``php,function add_view($id) {, $sql = "UPDATE diypage SET views=views+1 WHERE id='$id'";, return $GLOBALS['db']>ExecuteNoneQuery($sql);,},``

在PHPCMS 2008中增加浏览次数的插件代码,可以通过以下几个步骤实现,以下是详细的操作指南和相关代码示例:

1. 验证用户权限

需要通过会话来验证用户的权限,确保只有具有相应权限的用户才能执行增加浏览次数的操作,这有助于防止恶意操作。

如何为phpcms2008网站添加一个浏览次数统计插件?

session_start();
extract($_POST);
require dirname(__FILE__) . '/include/common.inc.php';
$keyadmin = "www.bitefu.net";
if ($key && $key == $keyadmin) {
    $_SESSION["NowKey"] = $keyadmin;
}
if ($_SESSION["NowKey"] && $_SESSION["NowKey"] == $keyadmin) {
    // 继续执行后续操作
} else {
    // 提示错误信息
    echo "KEY错误";
    exit();
}
?>

2. 选择增加类型

用户可以在表单中选择不同的增加方式,包括增加指定文章的浏览次数、增加指定范围内的文章浏览次数、增加指定栏目文章的浏览次数,以及增加公司活跃度等。

选择增加类型:<br />
指定ID: <input name="thisid" type="text" id="thisid" size="10" /><br />
ID范围: <input name="idstart" type="text" id="idstart" size="10" />到<input name="idend" type="text" id="idend" size="10" /><br />
栏目ID: <input type="hidden" name="catid" id="catid" value="all">全部 <font color="red">点击重选</font><br />
增加值: <input name="addnum" type="text" size="10" value="<?=$addnum; ?>" /><br />
<input type="submit" name="submit" value="提交" />

3. 执行SQL更新操作

根据用户选择的增加方式,执行相应的SQL语句来更新数据库中的浏览次数字段,如果用户没有填写增加值,系统会提示“增加值不能为空”。

<?php
if ($submit && $addnum) {
    if ($thisid) {
        $sql = "update". DB_PRE . "content_count sethits =hits + " . $addnum . " wherecontentid='$thisid'";
    } elseif ($idstart) {
        $sql = "update". DB_PRE . "content_count sethits =hits + " . $addnum . " wherecontentid >= '$idstart'";
        if ($idend) {
            $sql .= " andcontentid <= '$idend'";
        }
    } elseif ($comid || $comstart || $comend || $comall) {
        if ($comid) {
            $sql = "update". DB_PRE . "member_info setlogintimes =logintimes + " . $addnum . " whereuserid='$comid'";
        } elseif ($comstart) {
            $sql = "update". DB_PRE . "member_info setlogintimes =logintimes + " . $addnum . " whereuserid >= '$comstart'";
            if ($comend) {
                $sql .= " anduserid <= '$comend'";
            }
        } elseif ($comall && $comall == 1) {
            $sql = "update". DB_PRE . "member_info setlogintimes =logintimes + " . $addnum;
        } else {
            $sql = '';
        }
    } elseif ($catid) {
        if ($catid == "all") {
            $sql = "update". DB_PRE . "content_count sethits =hits + " . $addnum;
        } else {
            $getid_query = mysql_query("selectcontentid from". DB_PRE . "content where status=99 " . get_sql_catid($catid));
            while ($rs = mysql_fetch_assoc($getid_query)) {
                $getid[] = $rs['contentid'];
            }
            $idstr = implode(",", $getid);
            $sql = "update". DB_PRE . "content_count sethits =hits + " . $addnum . " wherecontentid in ($idstr)";
        }
    } else {
        $sql = '';
    }
    if ($sql && $submit) {
        mysql_query($sql);
        echo date("Ymd H:i:s") . "成功执行了添加操作,共影响数据:" . mysql_affected_rows() . " 条";
    } elseif (!$addnum) {
        echo "增加值不能为空!";
    }
}
?>

4. 动态加载栏目ID(可选)

为了提高用户体验,可以使用JavaScript动态加载栏目ID,使用户能够根据需要选择不同的栏目,这通常通过AJAX异步请求实现。

function category_load(id) {
    var data = 'id=' + id;
    $.ajax({
        type: "GET",
        url: "load.php", //负责动态加载栏目ID的文件路径
        data: data,
        cache: false,
        success: function (response) {
            $('#load_catid').html(response);
        }
    });
}

5. 常见问题解答(FAQs)

问题1:为什么浏览次数没有增加?

解答:请确保您已经在后台开启了“开启栏目统计”和“显示浏览次数”选项,并检查内容显示页面show.html中是否正确引用了JavaScript代码,请确认PHPCMS2008使用的是JQuery库,避免自定义的$()函数与JQuery冲突。

问题2:如何增加指定范围内的文章浏览次数?

解答:在表单中输入起始ID(idstart)和结束ID(idend),然后提交表单,插件会根据这些参数生成相应的SQL语句来批量增加指定范围内的文章浏览次数,请确保增加值(addnum)不为空。

字段 代码 说明
插件文件名 bclick.php 插件文件名,通常与插件名称一致
插件文件内容 插件代码内容
<> PHP开始标签
if(!defined('IN_PHPCMS')) exit('Access Denied'); 判断是否在PHPCMS环境中运行,如果不是则退出
$id = $_GET['id']; 获取GET参数中的id值,通常是文章或内容的ID
$db = pc_base::load_model('content_model'); 加载内容模型,用于数据库操作
$data = $db>get_one(array('id'=>$id)); 根据id查询内容信息
if($data) { 如果内容存在,则执行以下代码
$data['clicks'] = $data['clicks'] + 1; 将点击次数加1
$db>update(array('clicks'=>$data['clicks']), array('id'=>$id)); 更新内容表中的点击次数
} }结束标签
echo $data['clicks']; 输出点击次数
?> PHP结束标签

使用方法

1、将上述代码保存为bclick.php 文件。

2、将bclick.php 文件上传到PHPCMS的phpcms/templates/ 目录下。

3、在需要显示点击次数的位置,使用以下代码:

<a href="index.php?m=content&c=index&a=show&catid=1&id=123">文章标题</a> 点击次数:<script src="templates/default/bclick.php?id=123"></script>

注意

1、将catidid 替换为实际的文章或内容ID。

2、确保插件文件名与代码中的bclick.php 一致。