电脑技术学习

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

dn001
今天做照着例子做,发现其中有很多错误的地方,为了让广大菜鸟兄弟更好的理解,我把修改后的文件给大家看看。
数据结构如下:

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;;

标签: