|
马上注册,结交更多好友,享用更多功能,让你轻松玩转社区。
您需要 登录 才可以下载或查看,没有帐号?立即注册
x
没有人会喜欢和见异思迁的人交朋友,因为这种人太不安分,太不可靠,因此,你必须要强迫自己完成自己的目标,哪怕可能会很难受,也得坚持,毅力就是这么锻炼出来的。 1、根基函数
接待离开本教程的第三课,也是最初一课。假如您已学过第一课和第二课,那末您已把握了MySQL和PHP的装置及编程的根基常识。上面咱们要引见PHP的一些其他函数,这些函数能够会对您有效,使您的开辟进程加倍复杂。起首咱们来看看头文件。
人人应当晓得头文件的一些根基概念吧?头文件是一个内部文件,它的内容被包括到主法式中。办法也非常复杂:在法式文件中援用头文件名,这个头文件就会包括出去了。在PHP中利用头文件,会触及两个函数:include()和require()。这两个函数不同很小,却很主要,所以咱们要仔细研讨一下。require()函数任务体例与XSSI相相似;不论在法式的哪一个局部利用了这个函数,只要法式一入手下手运转,头文件的内容就被作为法式自己的一局部来处置。因而,假如您在一个前提剖断语句中利用了require()函数,那末即便这个前提即便不为真,头文件也会被包括出去。
而include()函数只是在履行到这一条语句时才会把头文件内容包括出去。假如法式没运转到这里,那PHP是不会管它的。这就意味着,您在前提剖断局部利用include时,它会完整依照您但愿的那样任务。
还有,假如您用了require()函数,而您指定的头文件其实不存在,那末法式将会中断运转并发生毛病。假如您用了include(),法式会发生一个正告信息,然而会持续运转。您可以亲身试一下,运转上面的法式,然后把include()换成require(),再对照两个法式运转的了局。
$#@60;html$#@62;
$#@60;body$#@62;
$#@60;?php
include("emptyfile.inc");
echo "Hello World";
?$#@62;
$#@60;/body$#@62;
$#@60;/html$#@62;
<p> 我喜好把头文件的后缀名起成.inc,如许就能够把头文件和普通的法式辨别开来。假如您也这么做,那末请您修正Web办事器软件的设置装备摆设文件,使它可以把.inc文件也看成PHP文件来处置。不然,黑客们或许会猜到您的头文件名,然后用阅读器把头文件内容以纯文本格局显示出来。此时假如您的头文件中有些秘密信息(如数据库口令等)那就糟了。 < 那末,您用头文件来做甚么呢?很复杂!把对一切法式都通用的那些内容放到头文件里。象HTML文件头啦,脚注啦,数据库毗连代码啦,还有您本人界说的一些函数甚么的。把上面的文字拷贝到一个文件中,保留为header.inc。
$#@60;?php
$db = mysql_connect("localhost", "root");
mysql_select_db("mydb",$db);
?$#@62;
$#@60;html$#@62;
$#@60;head$#@62;
$#@60;title$#@62;
$#@60;?php echo $title ?$#@62;
$#@60;/title$#@62;
$#@60;/head$#@62;
$#@60;body$#@62;
$#@60;center$#@62;$#@60;h2$#@62;$#@60;?php echo $title ?$#@62;$#@60;/h2$#@62;$#@60;/center$#@62;
然后再创立别的一个文件,名字是footer.txt,该文件可以包括一些法式停止时用到的一些文字和标志。
如今,咱们再来创立一个文件,这个文件外面是真实的PHP法式代码。试一下上面的代码,固然,您要确认MySQL数据库办事器正在运转。
$#@60;?php
$title = "Hello World";
include("header.inc");
$result = mysql_query("SELECT * FROM employees",$db);
echo "$#@60;table border=1$#@62;\n";
echo "$#@60;tr$#@62;$#@60;td$#@62;名字$#@60;/td$#@62;$#@60;td$#@62;职位$#@60;/tr$#@62;\n";
while ($myrow = mysql_fetch_row($result)) {
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]);
}
echo "$#@60;/table$#@62;\n";
include("footer.inc");
?$#@62; 看到产生了甚么事了吗?头文件里的内容被兼并到法式中,PHP把一切的代码都履行了一遍。注重在包括header.inc头文件之前$title是若何界说的。在header.inc中的代码可以会见到它的值。如许,网页的题目就被改失落了。如今,您可以在任何法式中利用header.inc头文件了,您所要做的不外是在每一个主法式中为$title变量取一个适合的值。
头文件、HTML、前提剖断语句,还有轮回语句,这些器材加在一些,您就能够用最简洁的代码,写出功效各别的各类庞杂法式来。在与函数同时利用时,头文件更能发扬它的效率,咱们前面就会看到。
接下去,咱们会引见出色的局部:数据校验。
2、 数据校验
想象一下如许的情况:咱们把数据库都设计妥善了,如今请用户输出信息来写到数据库中去。假定您有一个字段是请求数字类型的信息,好比价钱;而某个心爱的用户,却在这一栏里输出了文字信息,使得您的使用法式的履行进程呈现了毛病。对您在SQL语句中供应的文字类型的数据,MySQL数据库拒不承受,并向您提出了“严明抗议”。
怎样办呢?您要用数据校验来避免以上情况产生。
复杂地讲,数据校验是指咱们对数据(凡是是用户经过HTML表格传过去的)停止反省,看看它是不是服从必定的划定规矩。划定规矩可所以多种多样的,好比某一数据元素不克不及为空,或请求某一数据项的内容必需知足必定的请求(例如后面的例子中请求必需是数字而不是文字,或请求电子邮件地址中必定要包括一个“@”字等等)。
数据校验既可以在办事器一端作,也能够在客户端来作。PHP是用来作办事器一真个数据校验的,而JavaScript/" target="_blank">JavaScript或其他客户端剧本编程言语则可以供应客户真个数据校验功效。本文说的是PHP,所以咱们在这里侧重引见办事器真个校验。假如您想找一些现成的、在客户端运转的数据较验法式,那您可以去网猴法式库看看。
临时把数据库放在一边不谈,咱们先来讲说PHP的数据校验办法。假如您情愿(或说,您想纪录咱们要校验的那些数据的话),您可以在后面所建的员工数据库的里到场其他字段,很复杂,用MySQL的ALTER 语句就好了。
有好几个PHP功效都可以用来作数据校验的任务,有些很复杂,有些则庞杂一些。个中strlen()是对照复杂的一个函数,它可以告知咱们一个变量的长度。
更庞杂一点儿的是ereg(),这个函数可以处置完全的惯例表达式来停止庞杂的校验。我不想就惯例表达式讲得太深,由于很多书都是专门写这个成绩的。不外我会鄙人一页中给出一些复杂的例子。
咱们先从一个复杂的例子入手下手吧。上面这个法式要反省一个变量是不是存在。
$#@60;html$#@62;
$#@60;body$#@62;
$#@60;?php
if ($submit) {
if (!$first || !$last) {
$error = "对不起,您必需填写一切的栏目!";
} else {
// 处置表格输出内容
echo "感谢!";
}
}
if (!$submit || $error) {
echo $error;
?$#@62;
$#@60;P$#@62;
$#@60;form method="post" action="$#@60;?php echo $PHP_SELF ?$#@62;"$#@62;
第一栏: $#@60;input type="text" name="名" value="$#@60;?php echo $first ?$#@62;"$#@62;$#@60;br$#@62;
第二栏: $#@60;input type="text" name="姓" value="$#@60;?php echo $last ?$#@62;"$#@62;$#@60;br$#@62;
$#@60;input type="Submit" name="submit" value="输出信息"$#@62;
$#@60;/form$#@62;
$#@60;?php
} // if停止
?$#@62;
$#@60;/body$#@62;
$#@60;/html$#@62;
这段法式中关头的中央是嵌套的前提剖断语句。第一层反省用户是不是按了发送数据的按钮。假如是,法式接着反省$first和$last两个变量是不是都存在。谁人 || 符号暗示“或”,而 ! 符号暗示“非”。那一句法式用普通言语描写就是“假如$first不存在或$last不存在,那末就把 $error变量置成上面的值。”
接上去,咱们再进一步,反省一段文字的长度。这对用户口令的反省是很有需要的,由于您不想让某些怠惰的用户输出只要1、两个字的口令,能够会请求他们输出六位长的口令。
咱们已讲到strlen()这个函数了。它只是复杂地前往一个数字,该数字等于被测变量中所包括的字符个数。这里,我修正一下下面的法式,反省一下$first与$last的长度。
$#@60;html$#@62;
$#@60;body$#@62;
$#@60;?php
if ($submit) {
if (strlen($first) $#@60; 6 || strlen($last) $#@60; 6) {
$error = "对不起,您必需填写一切栏目!";
} else {
// 处置表格输出内容
echo "感谢!";
}
}
if (!$submit || $error) {
echo $error;
?$#@62;
$#@60;P$#@62;
$#@60;form method="post" action="$#@60;?php echo $PHP_SELF ?$#@62;"$#@62;
第一栏: $#@60;input type="text" name="名" value="$#@60;?php echo $first ?$#@62;"$#@62;$#@60;br$#@62;
第二栏: $#@60;input type="text" name="姓" value="$#@60;?php echo $last ?$#@62;"$#@62;$#@60;br$#@62;
$#@60;input type="Submit" name="submit" value="输出信息"$#@62;
$#@60;/form$#@62;
$#@60;?php
} // if停止
?$#@62;
$#@60;/body$#@62;
$#@60;/html$#@62;
您可以履行一下这段法式,输出六个字或少于六个字的内容。这类校验很复杂,但很无效。
也许您在学习PHP的时候只想尽快的开发一个网站,也就会想我做网站,干嘛要学什么网页这些小儿科?不难看出,眼高手低的新手不在少数,这种思想无疑于建造空中楼阁,你不建地基,何来的房顶呢? |
|