电脑爱好者,提供IT资讯信息及各类编程知识文章介绍,欢迎大家来本站学习电脑知识。 最近更新 | 联系我们 RSS订阅本站最新文章
电脑爱好者
站内搜索: 
当前位置:首页>> PHP>>从一个较为经典的留言本程序看php、mysql编程(二):

从一个较为经典的留言本程序看php、mysql编程(二)

来源:www.cncfan.com | 2006-1-11 | (有2473人读过)

在看index.php之前,我们得先看看四个子程序
1、connect.inc.php
<?
$hostname = "your_hostname"; /*你的MySQL主机名*/
$username = "your_username"; /*你的MySQL用户名*/
$password = "your_password";/*你的MySQL密码*/
$userstable = "guestbook"; /*MySQL中的存储留言本信息的表名*/
$dbName = "your_dbname"; /*MySQL数据库名*/
$limit = 5; /*每一页显示多少条留言*/
$lang = "chinese"; /*你所使用的语种*/
$table_width = "450"; /*表的宽度*/
$sendmail = "yes"; /*有人留言时是否给你发Email*/
$mailadress = "yanshuaiyu@yahoo.com"; /*你的Email地址*/
MYSQL_CONNECT($hostname, $username, $password) OR DIE("不能连接数据库");
@mysql_select_db( "$dbName") or die( "不能选择相关数据库");
?>
在这个程序中首先定义了你的MySQL数据库中涉及的一些参数$hostname、$username、$password、$userstable、$dbName,这样做的意义不仅仅是节约了你编写源程序时的工作量,在你进行源程序的移植时,这种做法的优越性更能得到体现。例如我的网站,当初由于在OSO上没有MySQL空间,我一开始是做在f2s上面的,而当时我把该部分的程序散落在各个子程序中。于是在搬家的时候,我是在window内找出所有文件内容中包含mysql_connect的程序,然后再逐一修改,辛苦先不谈,一不小心,还很容易出错。
而$lang变量的定义也给了我们一个很好的思路,就是能想把你的网站做成一个多语言平台的版本时,这无疑是一种很好的解决方案。甚至你可以考虑把这个变量做到cookie中去,再让他永久有效,这样每个人上网的时候都能看到自己语言的版本。这个效果实现起来很酷吧,你不妨试试。
而“MYSQL_CONNECT($hostname, $username, $password) OR DIE("不能连接数据库");
@mysql_select_db( "$dbName") or die( "不能选择相关数据库"); ”这两句可以算是php中调用MySQL数据库的定式了,第一句连接数据库,第二句选择相应的数据。后面的die是前面的操作不成功时的错误提示。
2、chinese.inc.php
<?
$name1 = "姓名";
$hp1 = "主页";
$submit = "送出";
$no_entry = "还没有人写过留言板...";
$from_host = "from Host";
$am = "on";
$comment = "留言";
$hptitle = "主页主题";
$next_page = "下一页";
$prev_page = "上一页";
$total_entries = "总共留言数";
?>
3、chinese.lang.inc.php
<?
$name_tag[0] = "星期日";
$name_tag[1] = "星期一";
$name_tag[2] = "星期二";
$name_tag[3] = "星期三";
$name_tag[4] = "星期四";
$name_tag[5] = "星期五";
$name_tag[6] = "星期六";
$name_monat[1] = "一月";
$name_monat[2] = "二月";
$name_monat[3] = "三月";
$name_monat[4] = "四月";
$name_monat[5] = "五月";
$name_monat[6] = "六月";
$name_monat[7] = "七月";
$name_monat[8] = "八月";
$name_monat[9] = "九月";
$name_monat[10] = "十月";
$name_monat[11] = "十一月";
$name_monat[12] = "十二月";
$num_tag = date( "w");
$num_monat = date( "m");
$test = substr($num_monat,0,1);
if ($test == "0") {
$num = substr($num_monat,1,1);
$num_monat = $num;
}
$jahr = date( "Y");
$n = date( "d");
$tag = $name_tag[$num_tag];
$monat = $name_monat[$num_monat];
?>
在这段程序中我们多次应用到date()这个函数,date()函数的作用是将服务器的时间格式化。语法: string date(string format, int [timestamp]),date()函数返回一个字符串。第一个参数是返回值的字符串的配置格式。后一个参数可省,若有传入时间戳记值,则将时间戳记格式化返回;若无传入时间戳记值,则将目前服务器的时间格式化返回。在这里我们不妨再提醒大家在UNIX中,是用一个叫时间戳记的长整数来记录时间的。
在这个程序中我们用到的字符串格式选项如下:
d - 几日,二位数字,若不足二位则前面补零; 如: "01" 至 "31"
m - 月份,二位数字,若不足二位则在前面补零; 如: "01" 至 "12"
w - 数字型的星期几,如: "0" (星期日) 至 "6" (星期六)
Y - 年,四位数字; 如: "1999"
而$test = substr($num_monat,0,1);
if ($test == "0") {
$num = substr($num_monat,1,1);
$num_monat = $num;
}
这一段程序的意思就是判断date("d")返回的字符串是不是前面被添加了一个0,如有,就把他去掉,在这里应用的substr()函数的作用是取部份字符串。语法: string substr(string string, int start, int [length]),substr()函数返回一个字符串。若start和length均为正数,则返回字符串string从start位起长度为length的部分;若start为正数,length省略,则返回字符串string从start位起直到结尾的部分;若start为正数,length为负数,则返回字符串string从start位起直到倒数第length个字符前的部分;若start为负数,length为正数,则返回字符串string从倒数第start位起长度为length的部分;若start为负数,length省略,则返回字符串string从倒数第start位起直到结尾的部分;若start和length均为负数,则返回字符串string从倒数start位起直到倒数第length个字符前的部分;
从下面的测试程序的输出结果我们可以更清楚地看到substr()函数的作用:
$mystring="abcdefgh"
substr($mystring,3,4)="defg"
substr($mystring,3)="defgh"
substr($mystring,3,-2)="def"
substr($mystring,-3,2)="fg"
substr($mystring,-3)="fgh"
substr($mystring,-3,-2)="f"
4、form.inc.php
<?
$vor = $show + $limit;
$back = $show - $limit;
print "<br><center>";
if (($show + $limit) < $total){
print "<a href="$PHP_SELF?show=$vor">$next_page</a> ";}
if ($all_on = yes){
print "<a href="$PHP_SELF?show=all">显示全部</a> ";}
if (($show - $limit) >= 0){
print " <a href="$PHP_SELF?show=$back">$prev_page</a>";}
print "</center>";
?>
这个程序处理了有关“上一页”、“下一页”、“显示全部”这三个连接的显示,其中$show参数的意义是指本页中第一个留言的id。
在这个程序中,我们应该注意到两个方面的知识,一是$PHP_SELF的用法,$PHP_SELF是指目前执行PHP程序页面的文件名,这是一个系统自定义的全局变量。二是参数的传递,a href="$PHP_SELF?show=$back是参数传递的一种方法,在其连接所指向的页面中,“show=”后面所带的值将可以直接被$show调用。另外还有三种参数传递的方法,分别是利用表单传递参数;利用cookie传递参数;利用session传递参数。
PHP热门文章排行
网站赞助商
购买此位置

 

关于我们 | 网站地图 | 文档一览 | 友情链接| 联系我们

Copyright © 2003-2024 电脑爱好者 版权所有 备案号:鲁ICP备09059398号