用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********************

  <? 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数据库的东西,在这就不列出来了。上面的程式还有改进空间,还有好多功能没实现,如果你愿意你也可以修改。不过修改后最好给一份给我:[email protected]

  有问题请和我联系:oicq:18680986