`
sony-soft
  • 浏览: 1105470 次
文章分类
社区版块
存档分类
最新评论

PHPCMS模块分析之广告模块详解----北冥神功破解法(一)

 
阅读更多
逍遥派的顶级武功之一,与天山六阳掌、天山折梅手和小无相功齐名,可以吸取他人的内力以供己用,是迅速提升功力的捷径,内力既厚,天下武功无不为我所用,犹如北冥,大舟小舟无不载,大鱼小鱼无不容。“北冥有鱼,其名为鲲,鲲之大,不知其几千里也……”,能够容纳几千里的大鱼必定是非常广阔的海洋,因而北冥神功正是寓含了广大恢宏之意,也体现了神功的威力。

<?php //====================================ad.php========================================



//定义使用js显示

define('SHOWJS', 1);

//引入需要用的的文件

require './include/common.inc.php';

require MOD_ROOT.'/include/global.func.php';



//将id转为Int形式

$placeid = intval($id);



//定义查询语句

$query ="SELECT * FROM ".TABLE_ADS." AS a LEFT JOIN ".TABLE_ADS_PLACE." AS p ON (a.placeid=p.placeid) WHERE a.placeid=".$placeid." AND a.fromdate<=UNIX_TIMESTAMP() AND a.todate>=UNIX_TIMESTAMP() AND p.passed=1 AND a.passed=1 AND a.checked=1 ORDER BY a.addtime";

//进行数据库查询,使用缓存,大小为10240

$ads = $db->get_one($query, "CAHCE", 10240);

//如果没有相应的广告,则退出,添加内容为空

if(!$ads) exit('document.write("")');



//如果存在该广告,则对其进行更新

$db->query("UPDATE ".TABLE_ADS." SET views=views+1 WHERE adsid=".$ads['adsid']);



//模块的全局定义函数,将广告内容转换为html格式的代码,该函数位置为:../global.func.php

$content = ads_content($ads);

//确定模板文件的名字

$templateid = $ads['templateid'] ? $ads['templateid'] : 'ads';

//加载模板文件,并将其显示

include template('ads', $templateid);

//将文件内容从缓存中输出

phpcache();

?>





<?php  //==========================================add.php========================================



/**

 * 增加广告的php代码文件

 */

//引入所需文件

require './include/common.inc.php';



//检查用户是否已经登录,如果没有登录则将其重定向到相应的页面

//showmessage()函数所在位置:/include/global.func.php

if(!$_userid) showmessage($LANG['please_login_or_register'], $MODULE['member']['linkurl'].'login.php?forward='.urlencode($PHP_URL));



//取得用户名

$ads['username'] = $_username;

//取得广告id

$ads['placeid'] = intval($ads['placeid']);

//如果id为空,显示非法参数,并将其返回到上一页

if(!$ads['placeid']) showmessage($LANG['invalid_parameters']);



//从数据库中选择第一条匹配的广告

$sql = "select * from ".TABLE_ADS_PLACE." where placeid={$ads['placeid']} limit 1";

$result = $db->get_one($sql);

//如果没有要选择的广告,显示:操作失败!意外错误,请确认存在此广告位。

if(empty($result))

{

	showmessage($LANG['opration_failure_or_advertisement _not_exists']);

}

//如果存在此广告,则将其重新赋给变量$place

$place = $result;



//如果现金不足,显示:您的资金不足!请补充预留款!

if($_money<($place['price']*$ads['longtime'])) showmessage($LANG['not_enough_balance_please_charge'],PHPCMS_PATH."pay/");



//添加广告,如果已经提交

if($submit)

{

	//验证广告的名字是否合法

	if(strlen($ads['adsname'])<2 || strlen($ads['adsname'])>30)

	{

		showmessage($LANG['invalid_name']);

	}

	//读取广告信息,并将其转义

	$ads['adsname'] = str_safe($ads['adsname']);

	$ads['introduce'] = str_safe($ads['introduce']);

	$ads['alt'] = str_safe($ads['alt']);

	$ads['linkurl'] = linkurl($ads['linkurl']);

	$ads['text'] = str_safe($ads['text']);

	$ads['code'] = str_safe($ads['code']);



	//验证是否有广告发布日期

	if(!$ads['fromdate'])

	{

		showmessage($LANG['please_input_the_advertising_day']);

	}



	//验证广告期限是否合法

	if(!is_numeric($ads['longtime']) && !($ads['longtime'])>0)

	{

		showmessage($LANG['invalid_advertising_time']);

	}

	else

	{

		include_once(PHPCMS_ROOT."/include/date.class.php");

		$date = new phpcms_date();

		$date->set_date($ads['fromdate']);

		$date->monthadd($ads['longtime']);

		$ads['todate'] =  $date->get_date();

	}



	/*

	根据广告的类型不同,将其添加到数据库

	*/



	if($ads['type']=="image") {

		if(!strlen($imageurl)) showmessage($LANG['input_advertising_images_url']);

		$type_sql = ",type='{$ads['type']}',alt='{$ads['alt']}',linkurl='{$ads['linkurl']}',imageurl='{$imageurl}'";

	}



	if($ads['type']=="flash")

	{

		if(!$flashurl) showmessage($LANG['please_input_the_flash_url']);

		$type_sql = ",type='{$ads['type']}',flashurl='{$flashurl}',wmode='".($ads['wmode']=="transparent"?"transparent":"")."'";

	}



	if($ads['type']=="text")

	{

		if(!$ads['text']) showmessage($LANG['please_input_the_advertising_content']);

		$type_sql = ",type='{$ads['type']}',text='{$ads['text']}'";

	}



	if($ads['type']=="code")

	{

		if(!$ads['code']) showmessage($LANG['please_input_the_advertising_code']);

		$type_sql = ",type='{$ads['type']}',code='{$ads['code']}'";

	}



	$sql = "INSERT INTO ".TABLE_ADS." SET adsname='{$ads['adsname']}',introduce='{$ads['introduce']}',addtime='".time()."',placeid='{$ads['placeid']}',username='{$ads['username']}',checked=0,fromdate=".strtotime($ads['fromdate']).",todate=".strtotime($ads['todate']).$type_sql;



	$result=$db->query($sql);

	//判断数据是否已经被添加

	if($db->affected_rows()>0)

	{

		showmessage($LANG['opration_success_waiting_for_check'], $MOD['linkurl']);

	}

	else

	{

		showmessage($LANG['opration_failure_make_sure_enter_the_correct_content']);

	}

}

showmessage($LANG['please_input_content'], $referer);

?>





<?php  //=======================================admin.inc.php=============================================



//检查用户权限

//定义常量,指向模块根目录

//引入模块全局函数文件

defined('IN_PHPCMS') or exit('Access Denied');

define('MOD_ROOT', PHPCMS_ROOT.'/'.$mod);



require MOD_ROOT.'/include/global.func.php';



//变量$mod在include中定义为"ads"

$module  = $mod;

//定义菜单数组

$submenu = array(

				array('<font color="red">'.$LANG['add_advertisement'].'</font>','?mod='.$mod.'&file=adsplace&action=add&catid='.$catid),

				array($LANG['manage_advertisement'],'?mod='.$mod.'&file=adsplace&action=manage'),

				array($LANG['manage_the_order_of_advertisement'],'?mod='.$mod.'&file=ads&action=manage'),

				array($LANG['update_html_and_js'],'?mod='.$mod.'&file=createhtml'),

	       );

//将子菜单添加到主菜单中

$menu = adminmenu($LANG['advertising_management'],$submenu);

if(!@include_once(MOD_ROOT.'/admin/'.$file.'.inc.php')) showmessage($LANG['illegal_operation']);

?>







<?php //===============================================ads.php====================================



//很有趣的引入,引入ad.php文件

require './ad.php';

?>





<?php  //==============================================clickads.php==================================



//引入文件

require './include/common.inc.php';

//将id转换为十进制数字

$id = intval($id);

//按id查找广告

$ads = $db->get_one("SELECT adsid,linkurl FROM ".TABLE_ADS." WHERE adsid=$id","CACHE",10240);



//如果广告存在,取出他的链接地址

if($ads)

{

	$db->query("UPDATE ".TABLE_ADS." SET hits=hits+1 WHERE adsid=".$ads['adsid']);

	$url = $ads['linkurl'];

}

?>



//将文件重定向到广告的地址

<SCRIPT LANGUAGE="JavaScript">

<!--

location.href = "<?=$url?>";

//-->

</SCRIPT>





<?php //==============================================./index.php===========================================



//引入所需文件

require './include/common.inc.php';



//确定分页标签

$page = isset($page) ? intval($page) : 1;

$offset = ($page-1)*$PHPCMS['pagesize'];

$r = $db->get_one("SELECT count(*) as num FROM ".TABLE_ADS_PLACE);

$pages = phppages($r['num'], $page, $PHPCMS['pagesize']);



//初始化

$places = array();

//分页查询数据从数据表中

$query ="SELECT *  ".

"FROM ".TABLE_ADS_PLACE." as p ".

"order by placeid ".

"limit $offset,$PHPCMS[pagesize] ";

$result = $db->query($query);

//将查询结果保存到$places数组中

while($r = $db->fetch_array($result))

{

	$places[] = $r;

}



//查询广告的详细信息

foreach ($places as $key=>$place)

{

	$placeid = $place['placeid'];

	$query ="SELECT count(*) as users,max(todate),a.* ".

	"FROM ".TABLE_ADS." as a left join ".TABLE_ADS_PLACE." as p on (a.placeid=p.placeid) ".

	"where a.placeid=".$placeid." and a.todate>UNIX_TIMESTAMP() and p.passed=1 and a.passed=1 GROUP BY p.placeid";

	$ads = $db->get_one($query);

	//如果广告不存在

	if(empty($ads))

	{

		$ads['todate'] = "-";

		$ads['users'] = "-";

		$places[$key]['status'] = "<font color='red'>".$LANG['no_sign']."</font>";

		$places[$key]['bgcolor'] = "#FFCC00";

	}

	else

	{

		$ads['todate'] = date("Y-m-d", $ads['todate']);

		$places[$key]['status'] = $LANG['yes_sign'];

		$places[$key]['bgcolor'] = "#efefef";

	}

	//将广告的信息存入$places数组

	$places[$key]['ads'] = $ads;

}

//加载模板,显示广告列表

include template($mod, 'placelists');

?>







<?php  //=====================================================sign.php======================================



//引入所需文件

require './include/common.inc.php';



//检查用户是否已经登录系统,否则显示错误信息,并将其转向到注册页面

if(!$_userid) showmessage($LANG['please_login_or_register'] , $MODULE['member']['linkurl'].'login.php?forward='.urlencode($PHP_URL));

//广告id

$placeid = intval($placeid);



//查询广告信息

$query ="SELECT max(todate) as todate,p.* ".

"FROM ".TABLE_ADS." as a right join ".TABLE_ADS_PLACE." as p on (a.placeid=p.placeid) ".

"where p.placeid=".$placeid." and p.passed=1 GROUP BY p.placeid";



$result = $db->get_one($query);

//如果不存在查询的广告

if (empty($result))

{

	showmessage($LANG['opration_failure_or_advertisement _not_exists']);

}

//将广告的查询结果返回赋值给$place变量

$place = $result;

//显示广告时间

$fromdate = ($place['todate'] && $PHP_TIME < $place['todate']) ? date('Y-m-d', $place['todate']) : date('Y-m-d');

$_month = "<SELECT NAME='ads[longtime]'>";

//列出时间列表

for ($i=1;$i<=12;$i++)

{

	$_month .= "<option value='$i'>$i {$LANG['month']}</option>";

}

$_month .= "</SELECT>";

//加载模板,显示标签页面

include template($mod, 'sign');

?>
分享到:
评论

相关推荐

    phpcms v9的问答模块插件

    **phpcms v9问答模块插件详解** `phpcms v9`是一款流行的开源内容管理系统,以其强大的功能和灵活的扩展性受到许多网站开发者青睐。其中的问答模块是系统的一个重要组成部分,它允许用户提出问题并邀请其他用户进行...

    phpcmsv9黄页模块

    在phpcms的核心框架上,黄页模块提供了一系列功能,包括但不限于以下几点: 1. **企业信息管理**:用户可以注册并创建自己的企业资料,包括公司名称、地址、联系方式、简介等,方便其他用户搜索和联系。管理员则...

    phpcms模块开发手册

    phpcms模块开发帮助手册,二次开发必读。前提是要有PHP基础

    PHPCMS商城模块_购物车+订单模块

    "PHPCMS商城模块_购物车+订单模块"是专为电商网站设计的一个功能组件,旨在提供一个完整的在线购物解决方案。这个模块包含了商品展示、购物车管理和订单处理的关键功能,使网站能够实现用户选购商品、结算并进行支付...

    phpcms模块开发文档

    《phpcms模块开发文档》是针对phpcms内容管理系统进行模块扩展和定制的综合指南,它收集了phpcms官方网站http://dev.phpcms.cn/上的相关开发文章,为开发者提供了一个离线阅读的便捷资源。这份文档涵盖了从基础概念...

    phpcms企业招聘模块

    【phpcms企业招聘模块】是基于PHP开发的一款用于企业在线招聘功能的模块,它能够帮助企业高效地管理和展示职位信息,并方便求职者进行在线应聘。这一模块的实施,旨在提升企业的招聘效率,降低招聘成本,同时也为...

    phpcms2008模块制作教程

    本教程聚焦于“phpcms2008模块制作”,这是一份面向那些想要深入理解phpcms2008系统结构、进行二次开发的初学者的指南。下面,我们将详细探讨phpcms2008模块制作的相关知识点。 1. **模块概念**:在phpcms2008中,...

    phpcms数据导入导出模块

    【phpcms数据导入导出模块】是针对phpcms V9内容管理系统的一个功能扩展,主要用于方便网站管理员进行数据的批量处理。这个模块的核心在于提供了一种高效、灵活的方式来管理和迁移数据,尤其是在大型网站或者需要...

    phpcms框架订单模块安装完全版

    **phpcms框架订单模块安装完全版** 在PHP开发领域,phpcms是一款广泛应用的内容管理系统框架,以其灵活、可扩展性著称。本教程将详细介绍如何在phpcms框架中安装并配置订单模块,以便实现商品订单的显示功能。 ...

    phpcms二次开发之添加模块

    在提供的“phpcms二次开发之添加模块.doc”文档中,你将找到详细的步骤指南和实例代码,通过学习和实践,你将能够掌握PHPCMS二次开发的核心技巧,实现个性化模块的创建。记住,实践是检验真理的唯一标准,理论知识...

    phpcms模块开发.chm

    作者名单 Phpcms开发手册由Phpcms团队负责撰写和维护,网址是:http://dev.phpcms.cn/参与Phpcms2007开发的有:技术架构:钟胜辉程序开发:刘年华、李进斌、王参加、吴刚强模板设计:康凯军

    PHPCMS_v9.模块【标签】参考手册.(第一版)

    ### PHPCMS_v9 模块标签参考手册详解 #### 前言 在深入探讨PHPCMS_v9模块标签的使用与功能之前,我们首先理解其重要性。PHPCMS_v9是一款广泛应用于网站建设和内容管理的强大工具,它不仅提供了丰富的功能,还通过...

    phpcms留言板模块

    【phpcms留言板模块】是PHPCMS内容管理系统中的一个重要组件,它主要用于网站与访客之间的互动交流。PHPCMS是一款基于PHP和MySQL技术的开源、免费的内容管理系统,它提供了丰富的功能,包括文章发布、图片管理、广告...

    phpcmsv9 点卡模块

    phpcmsv9 点卡模块 在后台模块安装里安装‘点卡’模块后 在member/left.html模版中查找 &lt;li{if ROUTE_A=="change_credit"} class="on"{/if}&gt;&lt;a href="index....

    phpcms v9 购物车+商品模块+订单 最新V9商城插件

    《phpcms v9 购物车+商品模块+订单 最新V9商城插件详解》 在电子商务领域,一个完善的在线购物系统是至关重要的,它涵盖了从商品展示到交易完成的全过程。phpcms v9作为一款强大的内容管理系统,其最新的V9商城插件...

    PHPCMS 企业黄页模块 v9 UTF-8 正式版.zip

    PHPCMS V9采用OOP(面向对象)方式进行基础运行框架搭建。模块化开发方式做为功能开发形式。框架易于功能扩展,代码维护,优秀的二次开发能力,可满足所有网站的应用需求。 PHPCMS V9企业黄页主要特色 1、模型...

    phpcms精简版-去掉phpsso_server模块和视频模块.rar

    phpcms是基于php+mysql开发的内容管理...phpcms6.3精简版-去掉phpsso_server模块和去掉视频模块。 下载程序解压后:将install_package文件夹里的程序传到网站根目录。 访问这个安装地址:http://www.xxx.com/install/

    phpcms 定时任务模块

    phpcms 的定时任务模块就是为了解决这一需求而设计的,尤其对于那些需要定期更新内容、发送邮件、清理缓存或者执行数据分析的网站来说,它提供了极大的便利。 phpcms 的定时任务模块摆脱了对 Windows 任务调度器的...

    PHPCms2008数据库设计结构文档详解

    PHPCms2008是一款基于PHP开发的内容管理系统,其数据库设计是系统核心部分,用于存储和管理网站的各种数据。本文将深入解析其中涉及到的主要六个表:`_admin`(管理员)、`_ads`(广告)、`_ads_place`(广告位)、`...

    如何设置PhpCms广告模块管理 PhpCms广告模块管理图文教程

    **PhpCms广告模块管理详解** PhpCms是一款流行的开源内容管理系统,其强大的广告模块管理功能使得网站运营者能够方便地管理和展示各种广告,包括图片、FLASH、文本和文字链等不同类型的广告形式。本教程将详细介绍...

Global site tag (gtag.js) - Google Analytics