文章詳情頁
用PHP實現小型站點廣告管理(修正版)
瀏覽:3日期:2024-01-06 13:25:25
今天做照著例子做,發現其中有很多錯誤的地方,為了讓廣大菜鳥兄弟更好的理解,我把修改后的文件給大家看看。 數據結構如下: 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
排行榜