用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 相关文章推荐
使用Apache的rewrite技术
Jun 22 PHP
PHP5在Apache下的两种模式的安装
Sep 05 PHP
支持中文字母数字、自定义字体php验证码代码
Feb 27 PHP
php从memcache读取数据再批量写入mysql的方法
Dec 29 PHP
PHP中__autoload和Smarty冲突的简单解决方法
Apr 08 PHP
php 实现301重定向跳转实例代码
Jul 18 PHP
laravel-admin的图片删除实例
Sep 30 PHP
PHP 代码简洁之道(小结)
Oct 16 PHP
Laravel 之url参数,获取路由参数的例子
Oct 21 PHP
laravel解决迁移文件一次删除创建字段报错的问题
Oct 24 PHP
tp5框架前台无限极导航菜单类实现方法分析
Mar 29 PHP
PHP7 windows支持
Mar 09 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
综合图片计数器
2006/10/09 PHP
PHP中session变量的销毁
2014/02/27 PHP
Zend Framework教程之MVC框架的Controller用法分析
2016/03/07 PHP
PHP框架实现WebSocket在线聊天通讯系统
2019/11/21 PHP
PHP Ajax跨域问题解决方案代码实例
2020/08/01 PHP
JXTree对象,读取外部xml文件数据,生成树的函数
2007/04/02 Javascript
通过Mootools 1.2来操纵HTML DOM元素
2009/09/15 Javascript
jQuery 名称冲突的解决方法
2011/04/08 Javascript
js中使用DOM复制(克隆)指定节点名数据到新的XML文件中的代码
2011/07/27 Javascript
JavaScript中的稀疏数组与密集数组[译]
2012/09/17 Javascript
鼠标放在图片上显示大图的JS代码
2013/03/26 Javascript
JS点击链接后慢慢展开隐藏着图片的方法
2015/02/17 Javascript
在JavaScript中如何解决用execCommand(
2015/10/19 Javascript
js实现的下拉框二级联动效果
2016/04/30 Javascript
Google 地图类型详解及示例代码
2016/08/06 Javascript
原生js实现鼠标跟随效果
2017/02/28 Javascript
JavaScript简单拖拽效果(1)
2017/05/17 Javascript
vue2.0.js的多级联动选择器实现方法
2018/02/09 Javascript
React Native 自定义下拉刷新上拉加载的列表的示例
2018/03/01 Javascript
JS中利用FileReader实现上传图片前本地预览功能
2018/03/02 Javascript
React SSR样式及SEO的实践
2018/10/22 Javascript
Vue实现数据请求拦截
2019/10/23 Javascript
如何在vue中使用百度地图添加自定义覆盖物(水波纹)
2020/11/03 Javascript
关于你不想知道的所有Python3 unicode特性
2014/11/28 Python
使用Python对Excel进行读写操作
2017/03/30 Python
解决PySide+Python子线程更新UI线程的问题
2019/01/11 Python
Python 存储字符串时节省空间的方法
2019/04/23 Python
python实现月食效果实例代码
2019/06/18 Python
Python实现图片识别加翻译功能
2019/12/26 Python
利用Python自动化操作AutoCAD的实现
2020/04/01 Python
猫途鹰英国网站:TripAdvisor英国(旅游社区和旅游评论)
2016/08/30 全球购物
TCP/IP的分层模型
2013/10/27 面试题
高中生的自我评价
2014/03/04 职场文书
创先争优活动承诺书
2014/08/30 职场文书
村党组织公开承诺书
2015/04/30 职场文书
Go缓冲channel和非缓冲channel的区别说明
2021/04/25 Golang