用PHP实现小型站点广告管理(修正版)


Posted in PHP onOctober 09, 2006

今天做照着例子做,发现其中有很多错误的地方,为了让广大菜鸟兄弟更好的理解,我把修改后的文件给大家看看。
数据结构如下:

CREATE TABLE ad (
url varchar(100) NOT NULL,
banner varchar(150) NOT NULL,
alt varchar(100),
priority int(4) DEFAULT '1' NOT NULL,
)  

增加广告的文件
***************putad.php********************

<? if($submit){
    //处理表单数据的PHP程序;
         //图片banner名和链接地址不能为空;
    if (( banner!="") & ( url!="")) {
    //若广告链接和图片名已被使用,必须另选;
    if (file_exists("adbanner/". $banner_name)) {
    echo "广告图片. banner_name.已被使用,请另选!";
    exit;
    };
    //上传链接图片文件名到adbanner目录;
    copy( $banner,"adbanner/". $banner_name);
   //连接MySQL数据库;
    include("config.inc");
   //向数据表ad中插入来自于表单的新数据;
    $query="insert into ad (url, alt, priority, banner) values('$url','$alt','$priority','$banner_name')";
   //插入成功则显示以下信息;
    $try=mysql_query($query);
   if($try){
   echo "一条广告新增完成,详细信息:";
   echo "";
   echo "广告网址:  $url
广告链接说明: $alt
显示加权:  $priority ";
    }else{echo "出错";}
    }
    }else{
    ?>
<html>
<head>
        <title>Untitled</title>
</head>

<body bgcolor="#ffffff">
<p>广告交换表</p>

<form method="post" action="putad.php" enctype="multipart/form-data">
  <p>图 片 URL:
    <input type="file" name="banner">
  </p>
  <p>连接 URL:
    <input type="text" name="url">
</p>
  <p>显示权数:
    <input type="text" name="priority"></p>
<p>连接说明:
    <input type="text" name="alt">

  </p>

<p>
    <input type="submit" name="submit" value="确定">
    <input type="reset" name="concel" value="重填">
  </p>
</form>
</body>
</html> <?}?>

***************showad.php********************

<?
     include("config.inc");
     $query="SELECT url, banner, alt, priority from ad";
     $result=mysql_query($query);
     $numrows=mysql_num_rows($result);
   //使用mysql_fetch_object()函数获取有用的列信息并存到相应数组中;
    while($row = mysql_fetch_object($result)) {
     $adurl[]=$row->url;
     $adbanner[]=$row->banner;
     $adalt[]=$row->alt;
     $adpriority[]=$row->priority;
    }
    //初始化中间变量;
     $numcheck=$numrows;
     $i=$pricount=0;
    //得到最大随机数;
    while($numcheck) {
     $pricount+=$adpriority[$i];
     $i++; $numcheck--;
   }
   //程序执行时的百万分之一秒产生随机数种子;
   srand((double)microtime()*1000000);
   //得到1到最大随机数之间的一个随机数;
    $pri= rand(1,$pricount);
   //中间变量清零;
     $pricount=0;
    //按加权值不同,产生用来显示广告的、元素为字串的数组;
    for($i=0;$i<$numrows;$i++) {
     $pricount+=$adpriority[$i];
    if ($pri<=$pricount) {
     $ad[]="<a href=$adurl[$i]><img src=adbanner\$adbanner[$i] alt=$adalt[$i] border=0></a>";
    }
    }
    //显示广告,权值越大,显示机会越大;
    echo  $ad[0];
    ?>

注释:其中config.inc里面就是连接mysql数据库的东西,在这就不列出来了。上面的程式还有改进空间,还有好多功能没实现,如果你愿意你也可以修改。不过修改后最好给一份给我:terence611005@sina.com
有问题请和我联系:oicq:18680986  

PHP 相关文章推荐
php中的MVC模式运用技巧
May 03 PHP
分页详解 从此分页无忧(PHP+mysql)
Nov 23 PHP
PHP分页函数代码(简单实用型)
Dec 02 PHP
php模拟socket一次连接,多次发送数据的实现代码
Jul 26 PHP
PHP用身份证号获取星座和生肖的方法
Nov 07 PHP
浅析PHP中Session可能会引起并发问题
Jul 23 PHP
PHP内核探索:哈希表碰撞攻击原理
Jul 31 PHP
PHP仿微信多图片预览上传实例代码
Sep 13 PHP
Zend Framework入门教程之Zend_Registry组件用法详解
Dec 09 PHP
如何利用预加载优化Laravel Model查询详解
Aug 11 PHP
ThinkPHP框架使用redirect实现页面重定向的方法实例分析
Apr 12 PHP
PHP实现常用排序算法的方法
Feb 05 PHP
BBS(php &amp; mysql)完整版(二)
Oct 09 #PHP
BBS(php &amp; mysql)完整版(三)
Oct 09 #PHP
将数字格式的计算结果转为汉字格式
Oct 09 #PHP
透析PHP的配置文件php.ini
Oct 09 #PHP
一个简单的自动发送邮件系统(三)
Oct 09 #PHP
一个简单的自动发送邮件系统(一)
Oct 09 #PHP
一个简单的自动发送邮件系统(二)
Oct 09 #PHP
You might like
解析coreseek for sphinx的使用
2013/06/21 PHP
php获取bing每日壁纸示例分享
2014/02/25 PHP
Laravel 5.1 on SAE环境开发教程【附项目demo源码】
2016/10/09 PHP
php微信公众号开发(4)php实现自定义关键字回复
2016/12/15 PHP
PHP使用反向Ajax技术实现在线客服系统详解
2019/07/01 PHP
Javascript模板技术
2007/04/27 Javascript
JavaScript Scoping and Hoisting 翻译
2012/07/03 Javascript
Js日期选择自动填充到输入框(界面漂亮兼容火狐)
2013/08/02 Javascript
js浮点数精确计算(加、减、乘、除)
2013/12/26 Javascript
javascript history对象(历史记录)使用方法(实现浏览器前进后退)
2014/01/07 Javascript
js中array的sort()方法使用介绍
2014/02/20 Javascript
jquery表单对象属性过滤选择器实例分析
2015/05/18 Javascript
JavaScript函数节流概念与用法实例详解
2016/06/20 Javascript
angular.js+node.js实现下载图片处理详解
2017/03/31 Javascript
详解从angular-cli:1.0.0-beta.28.3升级到@angular/cli:1.0.0
2017/05/22 Javascript
利用jsonp解决js读取本地json跨域的问题
2018/12/11 Javascript
mpvue全局引入sass文件的方法步骤
2019/03/06 Javascript
详解如何修改 node_modules 里的文件
2020/05/22 Javascript
[46:25]DOTA2上海特级锦标赛主赛事日 - 4 败者组第五轮 MVP.Phx VS EG第二局
2016/03/05 DOTA
django模型中的字段和model名显示为中文小技巧分享
2014/11/18 Python
Python使用面向对象方式创建线程实现12306售票系统
2015/12/24 Python
浅析使用Python操作文件
2017/07/31 Python
如何利用Anaconda配置简单的Python环境
2019/06/24 Python
python 实现的发送邮件模板【普通邮件、带附件、带图片邮件】
2019/07/06 Python
Python如何执行精确的浮点数运算
2020/07/31 Python
CSS3 实现弹幕的示例代码
2017/08/07 HTML / CSS
css3实现六边形边框的实例代码
2019/05/24 HTML / CSS
SKECHERS官方旗舰店:美国舒适运动休闲品牌
2017/12/22 全球购物
中国跨镜手机配件批发在线商店:TVC-Mall
2019/08/20 全球购物
美国浴缸、水槽和水龙头购物网站:Vintage Tub & Bath
2019/11/05 全球购物
资生堂英国官网:Shiseido英国
2020/12/30 全球购物
如何现实servlet的单线程模式
2014/08/05 面试题
教师党的群众路线学习心得体会
2014/11/04 职场文书
社区植树节活动总结
2015/02/06 职场文书
2015年世界急救日宣传活动方案
2015/05/06 职场文书
MySQL Shell import_table数据导入的实现
2021/08/07 MySQL