用PHP+MySQL 实现小型站点广告管理

mysql|广告|站点

图片链接广告大概是最为常用的网络广告模式,但是多条广告的动态随机显示可不是那么简单的事情。PHP的文件上传函数提供了在这块468x60像素的区域(网页广告的标准尺寸)实现能够根据权值大小而随机显示广告的解决方案,从而避免了开发FTP程序或是ASP和Perl CAI中需要外挂扩展才能实现此项功能的弊端。
  
  本例在PHP4+MySQL+Apache for Win9x/2000下调试通过,共包括两部分:用来增加新广告的程序AddNewAd.php3以及显示广告的程序ShowAd.php3,都存放在服务器PHP文件目录下的“test/guanggao/”目录中。在guanggao目录中建立一个存放广告链接图片的子目录“adbanner/”。下面我们按步骤进行分析。
  
  1.首先,建立MySQL数据库:guanggao
  在Windows环境下,建立一个MySQL空数据库很简单,因为每个数据库都是存在于mysql/data/目录下的一个子目录,所以只要在该目录下新建子目录guanggao就可以了,这时数据库内还没有任何表和数据。
  
  2.建立新增广告程序:AddNewAd.php3
  设计思路:其中先用表单得到用户的新广告信息;然后用PHP函数copy()将链接图片(banner)文件上传到服务器adbanner目录下;最后将图片文件名、广告网址、说明、加权信息等写入建立的MySQL数据表ad中。该程序代码如下:
  
  # AddNewAd.php3——增添新的广告 #
  <center><h1>增添新广告</h1></center>
  //表单用来输入新增广告信息,并交给下面的PHP程序处理;
  //其中,加权值priority数字愈大,载入页面图片出现的机率就愈高,默认为1。
  <FORM ENCTYPE="multipart/form-data" ACTION="AddNewAd.php3" METHOD=POST>
  广告 Banner: <input name=banner TYPE="file"><br>
  广告网址URL: <input name=url type=text size=30><br>
  图片链接说明ALT: <input name=alt type=text size=30><br>
  显示加权: <input name=priority type=text size=5 value=1><br>
  <input type="submit" VALUE="提交">
  </FORM>
  //处理表单数据的PHP程序;
  <?php
  //图片banner名和链接地址不能为空;
  if (( banner!="") & ( url!="")) {
  //若广告链接和图片名已被使用,必须另选;
  if (file_exists("adbanner/". banner_name)) {
  echo "广告图片. banner_name.已被使用,请另选!";
  exit;
  };
  //上传链接图片文件名到adbanner目录;
  copy( banner,"adbanner/". banner_name);
  //连接MySQL数据库;
  connection = mysql_connect();
  //选择数据源guanggao,执行查询;;
  mysql_select_db("guanggao", );
  query="SELECT * FROM ad";
  result=mysql_query( query);
  //如果数据表ad不存在,则按以下结构创建新数据表ad;
  if(!result){
  mysql_query("
  create table ad(
  url varchar(100) not null,
  banner varchar(150) not null,
  alt varchar(100) null,
  priority tinyint(4) default 1 not null
  )") or die(mysql_error());
  }
  //向数据表ad中插入来自于表单的新数据;
  query="insert into ad(url, banner, alt, priority) values( url, banner_name,
  alt, priority)";
  //插入成功则显示以下信息;
  try=mysql_query( query);
  if( try){
  echo "一条广告新增完成,详细信息:
  ";
  echo "<a href=" url"><img src="adbanner/ banner_name" alt=". alt." border=0></a><br>";
  echo "广告网址: url<br>广告链接说明: alt<br>显示加权: priority ";
  }
  }
  ?>
  
  3.建立显示广告程序:ShowAd.php3
  设计思路:得到数据库表中所有各列信息分别存到相应的一维数组中,将所有广告的权值相加得到一个最大随机数,每次载入页面用srand() 产生一个随机树种子,再用rand()函数产生一个从1到最大随机数之间的一个随机数,然后按照一定的规则随机显示不同广告条,权值越大被显示的机会越大。
  
  # ShowAd.php3——随机显示广告 #
  <?php
  //连接选择数据库;
  connection = mysql_connect();
  mysql_select_db("guanggao", connection);
  //执行查询得到广告条数;
  query="SELECT url, banner, alt, priority FROM ad where priority > 0";
  result=mysql_db_query("guanggao", 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-1; i++) {
  pricount += adpriority[ i];
  if ( pri <= pricount) {
  ad[]="<a href=" adurl[ i]" target=new></a>";
  }
  }
  //显示广告,权值越大,显示机会越大;
  echo ad[0];
  ?>

时间: 2025-01-19 02:10:59

用PHP+MySQL 实现小型站点广告管理的相关文章

用PHP实现小型站点广告管理

广告|站点 图片链接广告大概是最为常用的网络广告模式,但是多条广告的动态随机显示可不是那么简单的事情.PHP的文件上传函数提供了在这块468x60像素的区域(网页广告的标准尺寸)实现能够根据权值大小而随机显示广告的解决方案,从而避免了开发FTP程序或是ASP和Perl CAI中需要外挂扩展才能实现此项功能的弊端. 本例在PHP4+MySQL+Apache for Win9x/2000下调试通过,共包括两部分:用来增加新广告的程序AddNewAd.php3以及显示广告的程序ShowAd.php3,

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

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

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

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

用PHP实现小型站点广告管理_php基础

图片链接广告大概是最为常用的网络广告模式,但是多条广告的动态随机显示可不是那么简单的事情.PHP的文件上传函数提供了在这块468x60像素的区域(网页广告的标准尺寸)实现能够根据权值大小而随机显示广告的解决方案,从而避免了开发FTP程序或是ASP和Perl CAI中需要外挂扩展才能实现此项功能的弊端. 本例在PHP4+MySQL+Apache for Win9x/2000下调试通过,共包括两部分:用来增加新广告的程序AddNewAd.php3以及显示广告的程序ShowAd.php3,都存放在服务

解读大型站点和小型站点的seo区别

解读大型站点和小型站点的seo区别 为什么企业站的SEO优化策略,到了大型网站身上就用不上了呢?请看seo优化资讯,最重要的一点就是整体流量来路构成发生了很大的变化. 企业站,一般都是靠首页seo来量,也就是说靠首页Title布局的一些关键词的排名来的流量.所以,我们做SEO优化工作,就是把自己能获取到的资源,都放在首页放在这几个关键词上即可,通常也就是外链,内链,整站内容相关性,内容时效性等等一些比较基础的工作,或者其他比较偏门的手法.我们只需要给它单独的去做优化工作,基本不用担心这个首页这个

PHP MYSQL简易交互式站点开发

目的:使用PHP和MYSQL模拟权限管理系统的实现 general用户只能查看其他用户信息,不能进行修改,添加,和删除操作,root用户可以完成以上三种操作. 实现思路 1.在MySQL数据库中建立两张数据表.一张数据表保存用户名和密码,用于登陆验证,另一张保存用户权限等基本信息. 2.提交表单登陆时,先在数据库中查找该用户存不存在,若不存在,报错,存在,则验证密码,密码错误则报错,若密码正确,登陆显示所有存储在数据库中的用户信息和当前登陆用户名. 3.在用户进行添加,删除操作时,先判断权限是否

小型Drupal数据库备份以及大型站点MySQL备份策略分享_Mysql

中小站点简单备份策略 基于drupal的中小行网站,我们可以使用backup_migrate模块,该模块提供了定期备份的功能,备份的时间.保留多少个备份等等设置,设置好之后,定期执行cron即可备份成功. 一般的Drupal小站,我们只需使用svn即可,在服务器端,我们把备份好的数据提交到svn,就可以达到备份的目的.由于Drupal的备份模块可以设置备份保留的文件份数,因此不会造成太多的备份文件,从而导致svn很大. 下面是一个简单的备份脚本,放置到站点根目录,然后加到crontab每天执行即

图形化管理MySQL更轻松

MySQL是一个真正的多用户.多线程SQL数据库服务器,是目前最流行的开放源码数据库服务器之一.来自MySQL项目的数据显示,目前MySQL用户已经达到400万个.大家熟知的.使用MySQL的Web站点包括Yahoo.Finance.MP3.com.Motorola.NASA.Silicon Graphics和Texas Instruments等. 一般来说,用户以命令行的方式来使用MySQL.很多用户在Windows环境中一直使用图形用户界面(GUI)来操作和管理数据库,对命令行方式可能不习惯

获得和安装MYSQL软件

mysql   此附录介绍怎样获得和安装运行MySQL所需的软件和本书中介绍的第三方软件,如Perl DBI 和CGI.pm 支持环境.PHP.Apache 等.此附录中还说明了怎样获得与本书所用的samp_db 数据库样例有关的文件.    本章的目的是将所有程序包的安装说明汇集在一起,但不取代各程序包附带的安装说明.事实上,我们鼓励阅读随程序包附带的说明.此附录提供了能满足多数情况的说明,但每个软件分发包还含有在独立的安装过程失败时,怎样排除故障的说明.例如, MySQL手册中有相当多的章节