用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 XPath对XML文件查找及修改实现代码
Jul 27 PHP
简单的cookie计数器实现源码
Jun 07 PHP
基于PHP Socket配置以及实例的详细介绍
Jun 13 PHP
PHP中copy on write写时复制机制介绍
May 13 PHP
YII Framework框架教程之日志用法详解
Mar 14 PHP
Yii2实现ajax上传图片插件用法
Apr 28 PHP
PHP加密技术的简单实现
Sep 04 PHP
PHP文件上传处理案例分析
Oct 15 PHP
php中引用&amp;的用法分析【变量引用,函数引用,对象引用】
Dec 12 PHP
php+Memcached实现简单留言板功能示例
Feb 15 PHP
解决windows上php xdebug 无法调试的问题
Feb 19 PHP
php 文件上传至OSS及删除远程阿里云OSS文件
Jul 04 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
PHP入门
2006/10/09 PHP
让你同时上传 1000 个文件 (一)
2006/10/09 PHP
PHP+jQuery 注册模块开发详解
2014/10/14 PHP
Symfony生成二维码的方法
2016/02/04 PHP
轻松掌握php设计模式之访问者模式
2016/09/23 PHP
php获取微信共享收货地址的方法
2017/12/21 PHP
PHP如何使用array_unshift()在数组开头插入元素
2020/09/01 PHP
javascritp实现input输入框相关限制用法
2007/06/29 Javascript
jQuery+JSON+jPlayer实现QQ空间音乐查询功能示例
2013/06/17 Javascript
html向js方法传递参数具体实现
2013/08/08 Javascript
jquery的选择器的使用技巧之如何选择input框
2013/09/22 Javascript
提高jQuery性能优化的技巧
2015/08/03 Javascript
Javascript技术栈中的四种依赖注入小结
2016/02/27 Javascript
js的各种排序算法实现(总结)
2016/07/23 Javascript
prototype与__proto__区别详细介绍
2017/01/09 Javascript
Angularjs中使用layDate日期控件示例
2017/01/11 Javascript
JavaScript获取URL参数的方法之一
2017/03/24 Javascript
Vue 开发音乐播放器之歌手页右侧快速入口功能
2018/08/08 Javascript
jQuery实现点击滚动到指定元素上的方法分析
2020/03/19 jQuery
[50:12]EG vs Fnatic 2018国际邀请赛小组赛BO2 第二场 8.19
2018/08/21 DOTA
python开启多个子进程并行运行的方法
2015/04/18 Python
python实现list由于numpy array的转换
2018/04/04 Python
Python Sympy计算梯度、散度和旋度的实例
2019/12/06 Python
python字符串替换re.sub()实例解析
2020/02/09 Python
python数据分析:关键字提取方式
2020/02/24 Python
python数据类型可变不可变知识点总结
2020/03/06 Python
主管职责范文
2013/11/09 职场文书
物业管理员岗位职责范文
2013/11/25 职场文书
党员思想汇报范文
2013/12/30 职场文书
完美主义个人的自我评价
2014/02/17 职场文书
护士自荐信范文
2015/03/25 职场文书
《我是什么》教学反思
2016/02/16 职场文书
python实现网络五子棋
2021/04/11 Python
手把手教你怎么用Python实现zip文件密码的破解
2021/05/27 Python
刚学完怎么用Python实现定时任务,转头就跑去撩妹!
2021/06/05 Python
JavaScript中10个Reduce常用场景技巧
2022/06/21 Javascript