赏月人 發表於 2023-7-21 00:00:00

帝国CMS7.0实现记录所有浏览访问的会员的方法

<p>
本文以新闻系统数据表为例,讲述帝国CMS7.0实现记录所有浏览访问的会员入数据库的方法。具体步骤如下:</p>
<p>
一、新闻系统数据表中字段管理中<strong>添加“visituserid”字段</strong>,字段类型为“CHAR ”。<br>
 <br>
二、在需要统计的<strong>页面的&lt;head&gt;&lt;/head&gt;中添加如下代码</strong>:<br>
 <br>
 </p>
<div>

代码如下:</div>
<div id="phpcode3">
&lt;script src="[!--news.url--]/ly/jquery.js" type="text/javascript"&gt;&lt;/script&gt;<br>
&lt;script&gt;<br>
//信息ID<br>
var id = [!--id--];<br>
//登陆用户<br>
var userid = &lt;?=$lguserid=intval(getcvar('mluserid'))?&gt;;<br>
$(function(){<br>
if(userid)<br>
{<br>
$.post(<br>
'/ly/recorduser/index.php',<br>
{userid:userid,id:id}, <br>
"html"<br>
);<br>
}<br>
})<br>
&lt;/script&gt;</div>
<br><span> </span><br><span>三、</span><strong>添加数据代码</strong><br><span> </span><br><span>可以下载压缩包,将其中的文件夹ly解压后放在根目录中,可以本站</span>下载<br><span> </span><br><span>文件路径 根目录/ly/recorduser/index.php</span><br><span>index.php文件代码:</span>
<p>
 </p>
<p>
 </p>
<div>

代码如下:</div>
<div id="phpcode4">
&lt;?php<br>
require('../../e/class/connect.php'); //引入数据库配置文件和公共函数文件<br>
require('../../e/class/db_sql.php'); //引入数据库操作文件<br>
include('../../e/class/functions.php');<br>
$link=db_connect(); //连接MYSQL<br>
$empire=new mysqlquery(); //声明数据库操作类<br>
if(!$_POST['userid'])<br>
{<br>
exit; <br>
}<br>
/*<br>
userid<br>
visituserid<br>
/<br>
表名称:<br>
栏目ID<br>
信息ID<br>
表名称@@@栏目ID@@@信息ID::::::<br>
/<br>
*/ <br>
//查询是否已有userid<br>
if($user=$empire-&gt;fetch1("select * from {$dbtbpre}ecms_news where id = {$_POST['id']}"))<br>
{<br>
//格式化字符串<br>
$visituserid="{$_POST['userid']}"; <br>
//信息分隔符<br>
$dot='';<br>
//判断是否已有记录数<br>
if(strstr($user['visituserid'],$visituserid))<br>
{<br>
//已有记录返回空<br>
die; <br>
}<br>
if($user['visituserid']!='')<br>
{<br>
$dot=',';<br>
}<br><br>
//大于1000调记录数去掉最后的一条信息<br>
if($user['visituserid'] &amp;&amp; substr_count($user['visituserid'],$dot)&gt;=999)<br>
{<br>
//去除最后一条记录数<br>
$arr=explode(',',$user['visituserid']);<br>
$arrvisituserid='';<br>
$dot1=$dot;<br>
for($i=0;$i&lt;count($arr);$i++)<br>
{<br>
if($i!=(count($arr)-1))<br>
{<br>
if($i==(count($arr)-2))<br>
{<br>
$dot1=''; <br>
}<br>
$arrvisituserid.=$arr[$i].$dot1;<br>
}<br>
}<br>
$visituserid.=$dot.$arrvisituserid;<br>
}<br>
else<br>
{<br>
$visituserid.=$dot.$user['visituserid'];<br>
}<br>
//不存在的记录数、更新表<br>
$empire-&gt;query("update {$dbtbpre}ecms_news set `visituserid` = '{$visituserid}' where id = {$_POST['id']}");<br>
}<br>
//没有记录数插入一条<br>
else<br>
{<br>
$visituserid="{$_POST['userid']}"; <br>
$sql=$empire-&gt;query(" INSERT INTO `{$dbtbpre}ecms_news` `visituserid` VALUES '{$visituserid}' ");<br>
}<br>
?&gt;</div>
<br><span> </span><br><span>四、</span><strong>调用已阅人员列表</strong><br><span> </span><br><span>在需要调用的地方添加代码如下:</span>
<p>
 </p>
<p>
 </p>
<div>

代码如下:</div>
<div id="phpcode5">
&lt;div&gt;&lt;li&gt;&lt;b&gt;已阅人:&lt;/b&gt;&lt;/li&gt;<br>
&lt;!--判断visituserid是否为空--&gt;<br>
&lt;?php<br>
if($navinfor)<br>
{<br>
?&gt;<br>
&lt;!--visituserid不为空时显示开始--&gt;<br>
&lt;?php<br>
$record=$empire-&gt;fetch1("select * from {$dbtbpre}ecms_news where id = $navinfor");<br>
if($record)<br>
{<br>
$info=explode(",",$record['visituserid']);<br>
$visituserid='';<br>
foreach($info as $v)<br>
{<br>
$arr=explode($v);<br>
$sql=$empire-&gt;fetch1("select * from {$dbtbpre}enewsmember where userid = $v ");<br>
$visituserid.="&lt;li&gt;&lt;a href='/e/space/?userid=$v' /&gt;
<span> </span><br><span>这样就可以了。</span>
</div>
頁: [1]
查看完整版本: 帝国CMS7.0实现记录所有浏览访问的会员的方法