用PHP實(shí)現(xiàn)小型站點(diǎn)廣告管理(修正版)
更新時(shí)間:2006年10月09日 00:00:00 作者:
今天做照著例子做,發(fā)現(xiàn)其中有很多錯(cuò)誤的地方,為了讓廣大菜鳥兄弟更好的理解,我把修改后的文件給大家看看。
數(shù)據(jù)結(jié)構(gòu)如下:
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){
//處理表單數(shù)據(jù)的PHP程序;
//圖片banner名和鏈接地址不能為空;
if (( banner!="") & ( url!="")) {
//若廣告鏈接和圖片名已被使用,必須另選;
if (file_exists("adbanner/". $banner_name)) {
echo "廣告圖片. banner_name.已被使用,請(qǐng)另選!";
exit;
};
//上傳鏈接圖片文件名到adbanner目錄;
copy( $banner,"adbanner/". $banner_name);
//連接MySQL數(shù)據(jù)庫(kù);
include("config.inc");
//向數(shù)據(jù)表ad中插入來自于表單的新數(shù)據(jù);
$query="insert into ad (url, alt, priority, banner) values('$url','$alt','$priority','$banner_name')";
//插入成功則顯示以下信息;
$try=mysql_query($query);
if($try){
echo "一條廣告新增完成,詳細(xì)信息:";
echo "";
echo "廣告網(wǎng)址: $url
廣告鏈接說明: $alt
顯示加權(quán): $priority ";
}else{echo "出錯(cuò)";}
}
}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>顯示權(quán)數(shù):
<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()函數(shù)獲取有用的列信息并存到相應(yīng)數(shù)組中;
while($row = mysql_fetch_object($result)) {
$adurl[]=$row->url;
$adbanner[]=$row->banner;
$adalt[]=$row->alt;
$adpriority[]=$row->priority;
}
//初始化中間變量;
$numcheck=$numrows;
$i=$pricount=0;
//得到最大隨機(jī)數(shù);
while($numcheck) {
$pricount+=$adpriority[$i];
$i++; $numcheck--;
}
//程序執(zhí)行時(shí)的百萬分之一秒產(chǎn)生隨機(jī)數(shù)種子;
srand((double)microtime()*1000000);
//得到1到最大隨機(jī)數(shù)之間的一個(gè)隨機(jī)數(shù);
$pri= rand(1,$pricount);
//中間變量清零;
$pricount=0;
//按加權(quán)值不同,產(chǎn)生用來顯示廣告的、元素為字串的數(shù)組;
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>";
}
}
//顯示廣告,權(quán)值越大,顯示機(jī)會(huì)越大;
echo $ad[0];
?>
注釋:其中config.inc里面就是連接mysql數(shù)據(jù)庫(kù)的東西,在這就不列出來了。上面的程式還有改進(jìn)空間,還有好多功能沒實(shí)現(xiàn),如果你愿意你也可以修改。不過修改后最好給一份給我:terence611005@sina.com
有問題請(qǐng)和我聯(lián)系:oicq:18680986
數(shù)據(jù)結(jié)構(gòu)如下:
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){
//處理表單數(shù)據(jù)的PHP程序;
//圖片banner名和鏈接地址不能為空;
if (( banner!="") & ( url!="")) {
//若廣告鏈接和圖片名已被使用,必須另選;
if (file_exists("adbanner/". $banner_name)) {
echo "廣告圖片. banner_name.已被使用,請(qǐng)另選!";
exit;
};
//上傳鏈接圖片文件名到adbanner目錄;
copy( $banner,"adbanner/". $banner_name);
//連接MySQL數(shù)據(jù)庫(kù);
include("config.inc");
//向數(shù)據(jù)表ad中插入來自于表單的新數(shù)據(jù);
$query="insert into ad (url, alt, priority, banner) values('$url','$alt','$priority','$banner_name')";
//插入成功則顯示以下信息;
$try=mysql_query($query);
if($try){
echo "一條廣告新增完成,詳細(xì)信息:";
echo "";
echo "廣告網(wǎng)址: $url
廣告鏈接說明: $alt
顯示加權(quán): $priority ";
}else{echo "出錯(cuò)";}
}
}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>顯示權(quán)數(shù):
<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()函數(shù)獲取有用的列信息并存到相應(yīng)數(shù)組中;
while($row = mysql_fetch_object($result)) {
$adurl[]=$row->url;
$adbanner[]=$row->banner;
$adalt[]=$row->alt;
$adpriority[]=$row->priority;
}
//初始化中間變量;
$numcheck=$numrows;
$i=$pricount=0;
//得到最大隨機(jī)數(shù);
while($numcheck) {
$pricount+=$adpriority[$i];
$i++; $numcheck--;
}
//程序執(zhí)行時(shí)的百萬分之一秒產(chǎn)生隨機(jī)數(shù)種子;
srand((double)microtime()*1000000);
//得到1到最大隨機(jī)數(shù)之間的一個(gè)隨機(jī)數(shù);
$pri= rand(1,$pricount);
//中間變量清零;
$pricount=0;
//按加權(quán)值不同,產(chǎn)生用來顯示廣告的、元素為字串的數(shù)組;
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>";
}
}
//顯示廣告,權(quán)值越大,顯示機(jī)會(huì)越大;
echo $ad[0];
?>
注釋:其中config.inc里面就是連接mysql數(shù)據(jù)庫(kù)的東西,在這就不列出來了。上面的程式還有改進(jìn)空間,還有好多功能沒實(shí)現(xiàn),如果你愿意你也可以修改。不過修改后最好給一份給我:terence611005@sina.com
有問題請(qǐng)和我聯(lián)系:oicq:18680986
您可能感興趣的文章:
- 強(qiáng)制PHP命令行腳本單進(jìn)程運(yùn)行的方法
- PHP運(yùn)行時(shí)強(qiáng)制顯示出錯(cuò)信息的代碼
- php廣告加載類用法實(shí)例
- 適用于抽獎(jiǎng)程序、隨機(jī)廣告的PHP概率算法實(shí)例
- php 廣告調(diào)用類代碼(支持Flash調(diào)用)
- php 隨機(jī)排序廣告的實(shí)現(xiàn)代碼
- 用PHP實(shí)現(xiàn)的隨機(jī)廣告顯示代碼
- 用PHP實(shí)現(xiàn)小型站點(diǎn)廣告管理
- 隨機(jī)廣告顯示(PHP函數(shù))
- php強(qiáng)制運(yùn)行廣告的方法
相關(guān)文章
用PHP實(shí)現(xiàn)登陸驗(yàn)證碼(類似條行碼狀)
用PHP實(shí)現(xiàn)登陸驗(yàn)證碼(類似條行碼狀)...2006-10-10PHP反轉(zhuǎn)字符串函數(shù)strrev()函數(shù)的用法
strrev()函數(shù)的用法,很好玩的函數(shù),主要功能就是把字符串進(jìn)行首尾顛倒并把顛倒后的結(jié)果返回2012-02-02第4章 數(shù)據(jù)處理-php正則表達(dá)式-鄭阿奇(續(xù))
第4章 數(shù)據(jù)處理-php正則表達(dá)式-鄭阿奇(續(xù)) ,學(xué)習(xí)php正則表達(dá)式的朋友可以參考下。php正則是比較不錯(cuò)應(yīng)用。2011-07-07PHP和Mysqlweb應(yīng)用開發(fā)核心技術(shù) 第1部分 Php基礎(chǔ)-1 開始了解php
PHP和Mysqlweb應(yīng)用開發(fā)核心技術(shù)-第1部分 Php基礎(chǔ)-1開始了解php,想學(xué)習(xí)php的朋友可以看下,比較基礎(chǔ)的知識(shí)。2011-07-07一個(gè)用于網(wǎng)絡(luò)的工具函數(shù)庫(kù)
一個(gè)用于網(wǎng)絡(luò)的工具函數(shù)庫(kù)...2006-10-10