阿七
级别: 未验证会员
精华:
0
发帖: 909
威望: 0 点
金钱: 2161 RMB
贡献值: 0 点
在线时间:512(小时)
注册时间:2006-03-29
最后登录:2008-08-07
|
PHP/MySQL三日通-第三天(一)
一、基本函数 kZ3w 2=x3v }0?\H)/edP 欢迎来到本教程的第三课,也是最后一课。如果您已经学过第一课和第二课,那么您已经掌握了MySQL和PHP的安装及编程的基本知识。下面我们要介绍PHP的一些其他函数,这些函数可能会对您有用,使您的开发过程更加简单。首先我们来看看头文件。 o `N /w ^z\*;
f 大家应该知道头文件的一些基本概念吧?头文件是一个外部文件,它的内容被包含到主程序中。方法也十分简单:在程序文件中引用头文件名,这个头文件就会包含进来了。在PHP中使用头文件,会涉及两个函数:include()和require()。这两个函数差别很小,却很重要,所以我们要认真研究一下。require()函数工作方式与XSSI相类似;不管在程序的哪个部分使用了这个函数,只有程序一开始运行,头文件的内容就被作为程序本身的一部分来处理。因此,如果您在一个条件判定语句中使用了require()函数,那么即使这个条件即使不为真,头文件也会被包含进来。 "iY=1F"\R ~kW[d1'c 而include()函数只是在执行到这一条语句时才会把头文件内容包含进来。如果程序没运行到这里,那PHP是不会管它的。这就意味着,您在条件判定部分使用include时,它会完全按照您希望的那样工作。 wA;C
j 9k[>(LC 还有,如果您用了require()函数,而您指定的头文件并不存在,那么程序将会停止运行并产生错误。如果您用了include(),程序会产生一个警告信息,但是会继续运行。您可以亲自试一下,运行下面的程序,然后把include()换成require(),再比较两个程序运行的结果。 D!d1%hac t\%gP@? $#@60;html$#@62; "`4V^1 \ tx4bV# $#@60;body$#@62; eAD uk!Iq @?r[
$Ea1M <|MF
\D' aEW sru $#@60;?php $06[D91' A\v(!yg include("emptyfile.inc"); swh8-_[c/ H<`<5M 8 echo "Hello World"; J@vL,C)E6 R# x~f ?$#@62; "$Mz>]3&q U$,W/G}m ]'iOV-2^' y]e[fZ`L $#@60;/body$#@62; WQ1~9# Oe/\@f0bLT $#@60;/html$#@62; Gjh8>( #oX8EMqs< `,lry7] 我喜欢把头文件的后缀名起成.inc,这样就可以把头文件和一般的程序区分开来。如果您也这么做,那么请您修改Web服务器软件的配置文件,使它能够把.inc文件也当作PHP文件来处理。否则,黑客们也许会猜到您的头文件名,然后用浏览器把头文件内容以纯文本格式显示出来。此时如果您的头文件中有些机密信息(如数据库口令等)那就糟糕了。 < hE|W%~Jx UTLuzm 那么,您用头文件来做什么呢?很简单!把对所有程序都通用的那些内容放到头文件里。象HTML文件头啦,脚注啦,数据库连接代码啦,还有您自己定义的一些函数什么的。把下面的文字拷贝到一个文件中,保存为header.inc。 cfP9b8J
G JE<w7:R& $#@60;?php 1R+/T qLYz-P'ik $db = mysql_connect("localhost", "root"); j
LS<S_` 2]}4)_&d<e mysql_select_db("mydb",$db); D02(
6| 9{KL^O?g ?$#@62; CVt:t
V z*FCd6X $#@60;html$#@62; a7@':Rb n w5+H9R6 $#@60;head$#@62; lPyY x=M%QFe $#@60;title$#@62; Ht9QINo b
px
^
$#@60;?php echo $title ?$#@62; dtT:,& h0O t>e" $#@60;/title$#@62; E#!tXO&, -Lhq.Q*a $#@60;/head$#@62; [p+-]V NHL9qL"qk $#@60;body$#@62; /wI"oHZd OAauD$Hh $#@60;center$#@62;$#@60;h2$#@62;$#@60;?php echo $title ?$#@62;$#@60;/h2$#@62;$#@60;/center$#@62; SNJSRqWL/ bQ3txuha F1)5"7f :o 8XG 然后再创建另外一个文件,名字是footer.txt,该文件可以包含一些程序结束时用到的一些文字和标记。 TtQ'I}7q g&*,j+$ } 现在,我们再来创建一个文件,这个文件里面是真正的PHP程序代码。试一下下面的代码,当然,您要确认MySQL数据库服务器正在运行。 =%ok:+D] b}
0G~oLP $#@60;?php V1&qgAy~ GoLK
95"]
$title = "Hello World"; Rb!y(&>v
CkV5PU include("header.inc"); 3_ly"\I\
,v%'2[} $result = mysql_query("SELECT * FROM employees",$db); KdBpfPny@ Q+oV?
S3{ echo "$#@60;table border=1$#@62;\n"; k2@]nW"S |A/H*J, ]rG/?1'^i echo "$#@60;tr$#@62;$#@60;td$#@62;名字$#@60;/td$#@62;$#@60;td$#@62;职位$#@60;/tr$#@62;\n"; +CM>]Ze .ht-* while ($myrow = mysql_fetch_row($result)) { f"*k>=ETI vc :% printf("$#@60;tr$#@62;$#@60;td$#@62;%s %s$#@60;/td$#@62;$#@60;td$#@62;%s$#@60;/tr$#@62;\n", $myrow[1], $myrow[2], $myrow[3]); ?P}bl_ T]JmnCX>: } 6O<UW. f14^VTzP/# echo "$#@60;/table$#@62;\n"; }T0O~c{$i Khb Ku0Z include("footer.inc"); j
U $G<G _jc_(;KPF ?$#@62; +fvD1xHI m):*>o55 看到发生了什么事了吗?头文件里的内容被合并到程序中,PHP把所有的代码都执行了一遍。注意在包含header.inc头文件之前$title是如何定义的。在header.inc中的代码可以访问到它的值。这样,网页的标题就被改掉了。现在,您可以在任何程序中使用header.inc头文件了,您所要做的不过是在每个主程序中为$title变量取一个合适的值。 S=0DQ19 lLp,sNAj 头文件、HTML、条件判定语句,还有循环语句,这些东西加在一些,您就可以用最简练的代码,写出功能各异的各种复杂程序来。在与函数同时使用时,头文件更能发挥它的效力,我们后面就会看到。 `%
QvCAR P}]o$nWT 接下去,我们会介绍精彩的部分:数据校验。 cGiL9|k 6Cz
O
ztn 二、 数据校验 o K>(yC[ oNtoqYwH 想象一下这样的情形:我们把数据库都设计妥当了,现在请用户输入信息来写到数据库中去。假设您有一个字段是要求数字类型的信息,比如价格;而某个可爱的用户,却在这一栏里输入了文字信息,使得您的应用程序的执行过程出现了故障。对您在SQL语句中提供的文字类型的数据,MySQL数据库拒不接受,并向您提出了“严正抗议”。 .[}G{%M~[ P`ou:M{8 怎么办呢?您要用数据校验来防止以上状况发生。 ~_-]>
SI ;F#(:-: 简单地讲,数据校验是指我们对数据(通常是用户经由HTML表格传过来的)进行检查,看看它是否遵从一定的规则。规则可以是多种多样的,比如某一数据元素不能为空,或者要求某一数据项的内容必须满足一定的要求(例如前面的例子中要求必须是数字而不是文字,或者要求电子邮件地址中一定要包含一个“@”字等等)。 1_<x%>zG vjq2
(I)u 数据校验既可以在服务器一端作,也可以在客户端来作。PHP是用来作服务器一端的数据校验的,而JavaScript/" target="_blank">JavaScript或其他客户端脚本编程语言则能够提供客户端的数据校验功能。本文说的是PHP,所以我们在这里着重介绍服务器端的校验。如果您想找一些现成的、在客户端运行的数据较验程序,那您可以去网猴程序库看看。 o]~\u{o#. %rMCiz 暂时把数据库放在一边不谈,我们先来说说PHP的数据校验方法。如果您愿意(或者说,您想记录我们要校验的那些数据的话),您可以在前面所建的员工数据库的里加入其他字段,很简单,用MySQL的ALTER 语句就行了。 +4.s4&f) {BmqUoZrC 有好几个PHP功能都可以用来作数据校验的工作,有些很简单,有些则复杂一些。其中strlen()是比较简单的一个函数,它能够告诉我们一个变量的长度。 z7ik/>d? Bl*}*S PU 更复杂一点儿的是ereg(),这个函数可以处理完整的常规表达式来进行复杂的校验。我不想就常规表达式讲得太深,因为许多书都是专门写这个问题的。不过我会在下一页中给出一些简单的例子。 %\v8FCb &yvvea] 我们先从一个简单的例子开始吧。下面这个程序要检查一个变量是否存在。
|
|
|
|
[楼 主]
|
Posted: 2006-04-04 14:09 |
| |