来源: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传递参数。
|