用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 文件缓存函数
Oct 08 PHP
基于PHP字符串的比较函数strcmp()与strcasecmp()的使用详解
May 15 PHP
PHP文件锁定写入实例解析
Jul 14 PHP
PHP简单实现“相关文章推荐”功能的方法
Jul 19 PHP
php中in_array函数用法分析
Nov 15 PHP
学习php开源项目的源码指南
Dec 21 PHP
PHP获取数组最后一个值的2种方法
Jan 21 PHP
PHP连接Nginx服务器并解析Nginx日志的方法
Aug 16 PHP
yii gridview实现时间段筛选功能
Aug 15 PHP
浅析PHP中的闭包和匿名函数
Dec 25 PHP
PHP让数组中有相同值的组成新的数组实例
Dec 31 PHP
thinkphp5框架结合mysql实现微信登录和自定义分享链接与图文功能示例
Aug 13 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
Thinkphp模板中使用自定义函数的方法
2012/09/23 PHP
php foreach如何跳出两层循环(详解)
2016/11/05 PHP
thinkphp5修改view到根目录实例方法
2019/07/02 PHP
Web性能优化系列 10个提升JavaScript性能的技巧
2016/09/27 Javascript
javascript ASCII和Hex互转的实现方法
2016/12/27 Javascript
jquery表单验证插件validation使用方法详解
2017/01/20 Javascript
微信小程序 开发之顶部导航栏实例代码
2017/02/23 Javascript
详解Vue基于 Nuxt.js 实现服务端渲染(SSR)
2018/04/05 Javascript
angular1.x ui-route传参的三种写法小结
2018/08/31 Javascript
JS中注入eval, Function等系统函数截获动态代码
2019/04/03 Javascript
Vue 自定义指令实现一键 Copy功能
2019/09/16 Javascript
js表达式与运算符简单操作示例
2020/02/15 Javascript
js实现的订阅发布者模式简单示例
2020/03/14 Javascript
解决Echarts2竖直datazoom滑动后显示数据不全的问题
2020/07/20 Javascript
用Python实现一个简单的能够发送带附件的邮件程序的教程
2015/04/08 Python
python实现合并两个数组的方法
2015/05/16 Python
Python实现二叉堆
2016/02/03 Python
Python中list初始化方法示例
2016/09/18 Python
Python装饰器知识点补充
2018/05/28 Python
对numpy中shape的深入理解
2018/06/15 Python
python range()函数取反序遍历sequence的方法
2018/06/25 Python
一行Python代码制作动态二维码的实现
2019/09/09 Python
Python pip使用超时问题解决方案
2020/08/03 Python
Python延迟绑定问题原理及解决方案
2020/08/04 Python
Python APScheduler执行使用方法详解
2020/12/10 Python
西班牙最好的在线购买葡萄酒的商店:Vinoseleccion
2019/10/30 全球购物
室内设计专业个人的自我评价
2013/10/19 职场文书
大学生开西餐厅创业计划书
2014/02/01 职场文书
小学端午节活动方案
2014/03/13 职场文书
先进员工事迹材料
2014/12/20 职场文书
2019最新校园运动会广播稿!
2019/06/28 职场文书
python中sys模块的介绍与实例
2021/04/17 Python
win10+anaconda安装yolov5的方法及问题解决方案
2021/04/29 Python
一文读懂navicat for mysql基础知识
2021/05/31 MySQL
OpenCV-Python实现图像平滑处理操作
2021/06/08 Python
nginx七层负载均衡配置详解
2022/07/15 Servers