仓酷云

 找回密码
 立即注册
搜索
热搜: 活动 交友 discuz
查看: 2213|回复: 18
打印 上一主题 下一主题

[学习教程] PHP网页编程之用PHP完成小型站点告白办理

[复制链接]
冷月葬花魂 该用户已被删除
跳转到指定楼层
楼主
发表于 2015-2-16 00:27:42 | 显示全部楼层 回帖奖励 |倒序浏览 |阅读模式

马上注册,结交更多好友,享用更多功能,让你轻松玩转社区。

您需要 登录 才可以下载或查看,没有帐号?立即注册

x
说说这一个月左右的学习情况和心得吧!我个人认为,既然决定了去做一件事,那就要以认真的态度去对待!既然决定来学习了,那不管当初是抱着怎样的心态来到这个培训班的,都要让自己认真的投入到学习中。告白|站点   图片链接告白也许是最为经常使用的收集告白形式,然而多条告白的静态随机显示可不是那末复杂的工作。PHP的文件上传函数供应了在这块468x60像素的区域(网页告白的尺度尺寸)完成可以依据权值巨细而随机显示告白的处理计划,从而防止了开辟FTP法式或是ASP和Perl CAI中需求外挂扩大才干完成此项功效的坏处。

  本例在PHP4+MySQL+Apache for Win9x/2000下调试经由过程,共包含两局部:用来增添新告白的法式AddNewAd.php3和显示告白的法式ShowAd.php3,都寄存在办事器PHP文件目次下的“test/guanggao/”目次中。在guanggao目次中创立一个寄存告白链接图片的子目次“adbanner/”。上面咱们按步调停止剖析。

1.起首,创立MySQL数据库:guanggao

  在Windows情况下,创立一个MySQL空数据库很复杂,由于每一个数据库都是存在于mysql/data/目次下的一个子目次,所以只需在该目次下新建子目次guanggao就能够了,这时候数据库内还没有任何表和数据。

2.创立新增告白法式:AddNewAd.php3

  设计思绪:个中先用表单失掉用户的新告白信息;然后用PHP函数copy()将链接图片(banner)文件上传到办事器adbanner目次下;最初将图片文件名、告白网址、申明、加权信息等写入创立的MySQL数据表ad中。该法式代码以下:

  # AddNewAd.php3――增加新的告白 #
<center><h1>增加新告白</h1></center>
//表单用来输出新增告白信息,并交给上面的PHP法式处置;
//个中,加权值priority数字愈大,载入页面图片呈现的机率就愈高,默许为1。
<FORM ENCTYPE="multipart/form-data" ACTION="AddNewAd.php3" METHOD=POST>
告白 Banner: <input name=banner TYPE="file"><br>
告白网址URL: <input name=url type=text size=30><br>
图片链接申明ALT: <input name=alt type=text size=30><br>
显示加权: <input name=priority type=text size=5 value=1><br>
<input type="submit" VALUE="提交">
</FORM>
//处置表双数据的PHP法式;
<?php
//图片banner名和链接地址不克不及为空;
if (( banner!="") & ( url!="")) {
//若告白链接和图片名已被利用,必需另选;
if (file_exists("adbanner/". banner_name)) {
echo "告白图片. banner_name.已被利用,请另选!";
exit;
};
//上传链接图片文件名到adbanner目次;
copy( banner,"adbanner/". banner_name);
//毗连MySQL数据库;
connection = mysql_connect();
//选择数据源guanggao,履行查询;;
mysql_select_db("guanggao", );
query="SELECT * FROM ad";
result=mysql_query( query);
//假如数据表ad不存在,则按以下布局创立新数据表ad;
if(!result){
mysql_query("
create table ad(
url varchar(100) not null,
banner varchar(150) not null,
alt varchar(100) null,
priority tinyint(4) default 1 not null
)") or die(mysql_error());
}
//向数据表ad中拔出来自于表单的新数据;
query="insert into ad(url, banner, alt, priority) values( url, banner_name,
alt, priority)";
//拔出胜利则显示以下信息;
try=mysql_query( query);
if( try){
echo "一条告白新增完成,具体信息:
";
echo "<a href=" url"><img src="adbanner/ banner_name" alt=". alt." border=0></a><br>";
echo "告白网址: url<br>告白链接申明: alt<br>显示加权: priority ";
}
}
?>

3.创立显示告白法式:ShowAd.php3

  设计思绪:失掉数据库表中一切各列信息分离存到响应的一维数组中,将一切告白的权值相加失掉一个最大随机数,每次载入页面用srand() 发生一个随机树种子,再用rand()函数发生一个从1到最大随机数之间的一个随机数,然后依照必定的划定规矩随机显示分歧告白条,权值越大被显示的时机越大。

# ShowAd.php3――随机显示告白 #
<?php
//毗连选择数据库;
connection = mysql_connect();
mysql_select_db("guanggao", connection);
//履行查询失掉告白条数;
query="SELECT url, banner, alt, priority FROM ad where priority > 0";
result=mysql_db_query("guanggao", 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-1; i++) {
pricount += adpriority[ i];
if ( pri <= pricount) {
ad[]="<a href=" adurl[ i]" target=new></a>";
}
}
//显示告白,权值越大,显示时机越大;
echo ad[0];
?>



  我想在讲述自己的学习方式前,对那些期望能从我的文章中获得有用信息的人说一句心里话:
冷月葬花魂 该用户已被删除
沙发
 楼主| 发表于 2015-4-17 14:40:49 | 显示全部楼层
为了以后维护的方便最好是代码上都加上注释,“予人方便,自己方便”。此外开发文档什么的最好都弄齐全。我觉得这是程序员必备的素质。虽然会消耗点很多的时间。但是确实是非常有必要的。
您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

QQ|Archiver|手机版|仓酷云 鄂ICP备14007578号-2

GMT+8, 2024-5-12 04:48

Powered by Discuz! X3.2

© 2001-2013 Comsenz Inc.

快速回复 返回顶部 返回列表