搜尋
首頁後端開發php教程用php实现广告轮播_PHP

网路广告,变成了 Internet 上的热门学问。而 468x60 更变成了广告人员绞尽脑汁的尺寸。
  在处理广告时,若能直接使用浏览器将广告的 468x60 图档送到处理广告的伺服器中,相信是件很舒服的事,不用再开 FTP 程式,搞大半天只为了 upload。

  这个问题,是所有 Web CGI 程式的痛,包括 ASP、Prel....等等,都需要再经过系统元件的增加才能达成。号称最强的 Web CGI 程式: PHP,在这方面的表现没有令人失望,甚至傲视其它的 CGI 工具。

  File Upload 功能在 RFC 1867 文件有有详细的说明,是利用特殊的文件格式 (content-type) multipart/form-data。值得注意的是浏览器一定要用 Netscape 3.0 以上或 MS Internet Explorer 4.0 以上的版本才能将档案上传。

  先看下面的 HTML 原始码



您的大名:
档案名称:



  在 form 的标签中,要加入 enctype="multipart/form-data" 的字串,表示使用者输入的资料上有档案上传,同时 method 一定要用 POST 而不能用 GET。

  在上面的码中,若使用者姓名填入 Wilson Peng,并选 c:\myphoto.gif 的档案,在使用者按下送出键后,浏览器则传送出下面的 POST 资料。


Content-type: multipart/form-data, boundary=AaB03x

--AaB03x
content-disposition: form-data; name="user"

Wilson Peng
--AaB03x
content-disposition: form-data; name="myfile"
Content-type: multipart/mixed, boundary=BbC04y

--BbC04y
Content-disposition: attachment; filename="myphoto.gif"
Content-type: image/gif
Content-Transfer-Encoding: binary

...myphoto.gif 内容略...
--BbC04y--
--AaB03x--


  看到上面的资料中,boundary=AaB03x 即为分开不同栏位资料的讯息,其中的 AaB03x 编码方法,视浏览器的版本不同而异,通常是浏览器杂凑产生的。之后就可以看到用 --AaB03x 来隔开不同的栏位。
  以上面为例,处理 form 的 action 程式 next.php,会主动产生四个变数,见下表

变数名 说明
$myfile 即上传的档案内容
$myfile_name 上传档案在使用者端的名称
$myfile_size 上传档案的大小
$myfile_type 上传档案的格式,如 "image/gif"


  在 next.php 程式要做的最重要动作,就是好好的使用这四个变数,否则程式一结束,使用者上传的档案就消失了。因此,要先将 $myfile 复制到存放广告图的目录中

copy($banner,"/home1/biglobe3/ad/".$banner_name);

  这行程式就是将档案存在 /home/htdocs/ad 的目录中,就上面的例子而言,就将档案存到 /home/htdocs/ad/myphoto.gif。重要的是,存放的目录不能是 Web Server 无法读到的目录,而应放在网站的 Homepage 所在目录中,才可以在网路上看到。

  或许程式要更细部的处理,例如比对取得的档案大小与系统回报的是否相同....等等,就可以用 $myfile_size 变数了。

  若在 form 中设定 input file 的名称改掉,则在 Upload 的变数也一起改,如



  则变数就改成 $upfile、$upfile_name、$upfile_size、与 $upfile_type。


  因此,下面的例子就利用 File Upload 及 Oracle 7.x 后端资料库,将档案放在 Web Homepage 目录中,相关资讯则存在 Oracle 中。当然,加上使用者认证,让有帐号的使用者才能上传图片,可避免刽客 (cracker) 等将不雅或不适当的广告上传。例中有关资料库的设定和 5.4 留言版的设定相同。




// adadd.php
if (($banner=="") and ($url=="")) {
? >
新增广告


加权值数字愈大,图片出现的机率就愈高,内定值为 1。


广告 Banner:
广告网址 URL:
辅助字串 ALT:
广告说明:
显示加权:



} else {
if (file_exists("/home/htdocs/ad/".$banner_name)) {
CommonHeader("档案 ".$banner_name." 已存在");
echo "广告档案已经存在\n";
exit;
};

copy($banner,"/home1/biglobe3/ad/".$banner_name);

putenv("ORACLE_SID=WWW");
putenv("NLS_LANG=american_taiwan.zht16big5");
putenv("ORACLE_HOME=/home/oracle/product/7.3.2");
putenv("LD_LIBRARY_PATH=/home/oracle/product/7.3.2/lib");
putenv("ORA_NLS=/home/oracle/product/7.3.2/ocommon/nls/admin/data");
putenv("ORA_NLS32=/home/oracle/product/7.3.2/ocommon/nls/admin/data");

$handle=ora_logon("user38@WWW","iam3849") or die;
$cursor=ora_open($handle);
ora_commitoff($handle);

$query="insert into ad(url, banner, alt, descript, priority) values('$url', '$banner_name', '$alt', '$descript', $priority)";
ora_parse($cursor, $query) or die;
ora_exec($cursor);
ora_close($cursor);
ora_logoff($handle);

echo "广告新增完成";
echo "";
echo "";
echo "";
echo "";
echo "广告网址: ".$url;
echo "辅助字串: ".$alt;
echo "广告说明: ".$descript;
echo "显示加权: ".$priority;
echo "";
}

? >




  当然要使用上面的程式之前别忘了先增加 ad 资料表,SQL 及栏位如下


CREATE TABLE ad (
url varchar2(1024) not null,
banner varchar2(1024) not null,
alt varchar2(255) null,
descript varchar2(255) null,
priority number(4) not null default 1
);

  序号 栏位 名称 资料形态 资料长度 栏位说明
  0 广告网址 url varchar2 1024
  1 图片路径 banner varchar2 1024
  2 字串显示 alt varchar2 255
  3 广告说明 descript varchar2 255
  4 显示加权 priority number 4 1 为内定值,0 表停用


  值得一提的是在这加入了加权的功能,若一个广告要提升曝光率,则可以将显示加权的栏位数字加大,例如 5,它的出现机率就会比只设为 1 的高五倍。


// ad.php
putenv("ORACLE_SID=WWW");
putenv("NLS_LANG=american_taiwan.zht16big5");
putenv("ORACLE_HOME=/home/oracle/product/7.3.2");
putenv("LD_LIBRARY_PATH=/home/oracle/product/7.3.2/lib");
putenv("ORA_NLS=/home/oracle/product/7.3.2/ocommon/nls/admin/data");
putenv("ORA_NLS32=/home/oracle/product/7.3.2/ocommon/nls/admin/data");

$handle=ora_logon("user38@WWW","iam3849") or die;
$cursor=ora_open($handle);
ora_commitoff($handle);

$query="SELECT url, banner, alt, priority FROM ad where priority > 0";
ora_parse($cursor, $query) or die;
ora_exec($cursor);
$i=$pricount=0;
while(ora_fetch($cursor)) {
$ad[$i][0] = ora_getcolumn($cursor,0);
$ad[$i][1] = ora_getcolumn($cursor,1);
$ad[$i][2] = ora_getcolumn($cursor,2);
$ad[$i][3] = ora_getcolumn($cursor,3);
$pricount += $ad[$i][3];
$i++;
};

ora_close($cursor);
ora_logoff($handle);

srand((double)microtime()*1000000);
$pri = rand(1,$pricount);
$pricount=0;
for($i=0; $i$pricount += $ad[$i][3];
if ($pri $ad1[]="";
}
}
echo $ad1[0];

? >


  上面的程式为公用的广告显示程式,其中的 $pricount 变数为所有广告 priority 加起来的和。程式先将所有的广告资讯读到阵列变数 $ad 中,随即关上资料库。再依时间取乱数种子,之后再从 1 到 $pricount 间随机取一个数字。

  网页中要用广告程式,只要在需要广告的地方加上 就可以了,当然 Include 的路径 (在 httpd.conf 中) 要先设好才行。

  上面的程式还有改进空间,可以加入广告的 Click Log 功能,或是显示的 Log 功能,改动显示加权的程式....等等,就不做范例了,毕竟在这儿是要介绍 PHP 的实际应用及程式开发,而不是套件开发。真的需要现成的广告套件,不妨到 http://www.phpwizard.net/phpAds,这是一套用 PHP 开发出来的广告程式

陳述
本文內容由網友自願投稿,版權歸原作者所有。本站不承擔相應的法律責任。如發現涉嫌抄襲或侵權的內容,請聯絡admin@php.cn
360浏览器推荐的广告如何关闭?如何关闭电脑360浏览器推荐的广告?360浏览器推荐的广告如何关闭?如何关闭电脑360浏览器推荐的广告?Mar 14, 2024 am 09:16 AM

  360浏览器推荐的广告如何关闭?相信很多的用户们都在使用360浏览器,不过这款浏览器有时候会弹出广告,这就使得很多的用户们都十分的苦恼,下面就让本站来为用户们来仔细的介绍一下如何关闭电脑360浏览器推荐的广告吧。  如何关闭电脑360浏览器推荐的广告?  方法一:  1、打开360安全浏览器。  2、找到右上角“三横杠”标志,点击【设置】。  3、在弹出的界面左侧任务栏中找到【实验室】,勾选【启用“360热点资讯”功能】即可。  方法二:  1、首先双击

朋友圈广告怎么彻底关掉朋友圈广告怎么彻底关掉Mar 03, 2024 pm 12:31 PM

用户在刷朋友圈的时候会遇到很多的广告,那么广告怎么彻底关掉呢?用户们需要在我的里点击设置,然后找到个人信息与权限,然后点击个性化广告管理,将广告个性化关闭就行。这篇朋友圈广告彻底关掉方法介绍就能告诉大家具体的操作方法,赶紧看看吧!微信使用教程朋友圈广告怎么彻底关掉答:无法彻底关掉,只能关掉个性化推荐具体方法:1、首先点击我,然后找到里面的设置。2、找到个人信息与权限选项。3、点击里面的个性化广告管理功能。4、点击广告个性化右侧的开关,关闭就可以了。怎么关闭广告:1、找到朋友圈里的广告。2、点击右

如何在 Windows 11 上停止弹出窗口如何在 Windows 11 上停止弹出窗口May 29, 2023 am 11:24 AM

在您工作或尝试专注于某段内容时,弹出窗口和中断可能会很烦人。虽然移动设备只有一个DND切换开关,但Windows呢?您可以在Windows11上停止弹出窗口吗?让我们来了解一下!您可以在Windows11上停止弹出窗口吗?是的,没有。您可以摆脱Windows11中的大多数弹出窗口,但是,无法绕过某些确认弹出窗口和安全通知。此外,没有一种可靠的方法可以通过单击摆脱所有弹出窗口。您需要关闭个别类型的弹出窗口才能在Windows11上消除它们。幸运的是,我们编制了一份列表,列出您需要

微软 Word 中缺少校对工具 [已解决]微软 Word 中缺少校对工具 [已解决]Apr 18, 2023 pm 11:46 PM

当您打开应用程序进行编辑时,“缺少校对工具”是否出现在MicrosoftWord中?当Word无法检测到Word中的校对工具时,将显示此消息。通常,Word数据文件中的损坏会导致此问题。因此,如果您想知道如何解决此问题,那么您刚刚降落在正确的位置。修复1–下载工具从错误提示符直接下载Word中指定的校对工具。1.退出单词(如果您已经打开了它)。2.现在,再次打开Word。3.等到它加载到您的计算机上。当Word完全加载时,单击功能区上显示的“下载”。这将在后台从Office服

关闭电脑游戏广告弹出窗口的方法关闭电脑游戏广告弹出窗口的方法Jul 07, 2023 pm 08:57 PM

很多网友在玩win10电脑时,相信都会遇到一些广告弹窗的骚扰,有时在玩游戏时可能会出现游戏广告弹窗导致体验不佳。那么win10电脑右下角闪烁游戏广告怎么办?如何关闭电脑游戏广告弹窗?以下小编就教你如何关闭电脑的游戏广告弹窗。关闭电脑游戏广告弹出窗口的方法。第一步:找到闪烁的弹出窗口进程名称一、闪烁弹窗出现时,先不要关闭,右键打开电脑底部的任务栏设置。2.在任务栏下找到通知区域,点击在任务栏上显示选择哪些图标。3.这里列出的图标曾经出现在你的任务栏上,所以即使你关闭了弹出窗口,这里还是有记录的。你

拼多多广告怎么屏蔽 屏蔽广告的方法拼多多广告怎么屏蔽 屏蔽广告的方法Mar 13, 2024 pm 07:58 PM

  拼多多app软件内提供的商品好物非常多,而且每一件商品的价格标签一清二楚,想买的都可以第一时间找到,自由添加多个配送地址,整体的网购服务更加直接。件件商品都是正品,每天还有非常多优惠的购物折扣,在搜索栏输入关键词,都能第一时间找到,数十个购物红包免费领取,根据个人的购物清单选购商品,而且还能邀请好友拼单,价格更便宜,不同品类的商品购物板块都是开放的,下单成功实时查看最新的物流动态,人手必备的购物神器,现在小编在线详细为拼多多用户们带来屏蔽广告的方法。1、首先进入拼多多个人中心,点击进入设置。

微软:Windows 11 中的文件资源管理器广告是个意外……有点像微软:Windows 11 中的文件资源管理器广告是个意外……有点像Apr 28, 2023 pm 02:34 PM

微软已经开始在Windows11的Insider版本中的文件资源管理器中展示自己的服务的广告。这些广告并没有向所有人展示,这让许多人相信微软是在全面推出之前对其集成进行A/B测试。这显然也引起了Neowin评论区的很多愤怒。现在,微软对有争议的举动提供了一些澄清。不是真正的截图(还)微软注意到在文件资源管理器中发布广告是无意的。Windows高级项目经理BrandonLeBlanc发表了以下简短声明:这是一个实验性横幅,不打算在外部发布并已关闭。不过,该声明有点令人担忧,因

如何在Windows 11中通过5个简单步骤拒绝广告如何在Windows 11中通过5个简单步骤拒绝广告Apr 22, 2023 pm 07:16 PM

我们都知道广告有时会很烦人。广告如何在最不受欢迎的时候弹出;他们如何将您引导至不需要的平台;最糟糕的是,已知某些广告会构成恶意软件威胁。因此,如果您一直想知道如何摆脱不断的Windows11广告但不知道如何,这是您一直在等待的帮助。在本文中为什么我在Windows11中会收到广告?尽管迫切需要摆脱Windows11广告,但我们认为值得了解触发这些广告的原因以及您获得它们的原因:从最近的Windows更新中添加的功能-新闻和兴趣等功能可能会使在不发送通知的情况下难以使用你的电脑。此

See all articles

熱AI工具

Undresser.AI Undress

Undresser.AI Undress

人工智慧驅動的應用程序,用於創建逼真的裸體照片

AI Clothes Remover

AI Clothes Remover

用於從照片中去除衣服的線上人工智慧工具。

Undress AI Tool

Undress AI Tool

免費脫衣圖片

Clothoff.io

Clothoff.io

AI脫衣器

AI Hentai Generator

AI Hentai Generator

免費產生 AI 無盡。

熱門文章

R.E.P.O.能量晶體解釋及其做什麼(黃色晶體)
2 週前By尊渡假赌尊渡假赌尊渡假赌
倉庫:如何復興隊友
4 週前By尊渡假赌尊渡假赌尊渡假赌
Hello Kitty Island冒險:如何獲得巨型種子
4 週前By尊渡假赌尊渡假赌尊渡假赌

熱工具

MantisBT

MantisBT

Mantis是一個易於部署的基於Web的缺陷追蹤工具,用於幫助產品缺陷追蹤。它需要PHP、MySQL和一個Web伺服器。請查看我們的演示和託管服務。

DVWA

DVWA

Damn Vulnerable Web App (DVWA) 是一個PHP/MySQL的Web應用程序,非常容易受到攻擊。它的主要目標是成為安全專業人員在合法環境中測試自己的技能和工具的輔助工具,幫助Web開發人員更好地理解保護網路應用程式的過程,並幫助教師/學生在課堂環境中教授/學習Web應用程式安全性。 DVWA的目標是透過簡單直接的介面練習一些最常見的Web漏洞,難度各不相同。請注意,該軟體中

SublimeText3 英文版

SublimeText3 英文版

推薦:為Win版本,支援程式碼提示!

SAP NetWeaver Server Adapter for Eclipse

SAP NetWeaver Server Adapter for Eclipse

將Eclipse與SAP NetWeaver應用伺服器整合。

Dreamweaver Mac版

Dreamweaver Mac版

視覺化網頁開發工具