若天明 发表于 2015-2-4 00:08:50

PHP网站制作之PHP/MySQL三日通-第三天(一)

没有人会喜欢和见异思迁的人交朋友,因为这种人太不安分,太不可靠,因此,你必须要强迫自己完成自己的目标,哪怕可能会很难受,也得坚持,毅力就是这么锻炼出来的。   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, $myrow, $myrow);

}

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的时候只想尽快的开发一个网站,也就会想我做网站,干嘛要学什么网页这些小儿科?不难看出,眼高手低的新手不在少数,这种思想无疑于建造空中楼阁,你不建地基,何来的房顶呢?

海妖 发表于 2015-2-4 09:23:50

作为一个合格的coder 编码的规范是必须,命名方面我推崇“驼峰法”,另外就是自己写的代码最好要带注释,不然时间长了,就算是自己的代码估计看起来都费事,更不用说别人拉。

谁可相欹 发表于 2015-2-6 15:44:47

个人呢觉得,配wamp 最容易漏的一步就是忘了把$PHP$目录下的libmysql.dll拷贝到windows系统目录的system32目录下,还有重启apache。

只想知道 发表于 2015-2-16 15:05:23

首推的搜索引擎当然是Google大神,其次我比较喜欢 百度知道。不过搜出来的结果往往都是 大家copy来copy去的,运气的的概率很大。

柔情似水 发表于 2015-2-24 19:57:10

爱上php,他也会爱上你。

再现理想 发表于 2015-3-7 13:04:21

本人接触php时间不长,算是phper中的小菜鸟一只吧。由于刚开始学的时候没有名师指,碰过不少疙瘩,呗很多小问题卡过很久,白白浪费不少宝贵的时间,在次分享一些子的学习的心得。

小女巫 发表于 2015-3-8 16:13:03

在学习的过程中不能怕麻烦,不能有懒惰的思想。学习php首先应该搭建一个lamp环境或者是wamp环境。这是学习php开发的根本。虽然网络上有很多集成的环境,安装很方便,使用起来也很稳定、

金色的骷髅 发表于 2015-3-16 04:09:49

说点我烦的低级错误吧,曾经有次插入mysql的时间 弄了300年结果老报错,其实mysql的时间是有限制的,大概是到203X年具体的记不清啦,囧。

仓酷云 发表于 2015-3-22 20:08:09

首先声明:我是一个菜鸟,是一个初学者。学习了一段php后总是感觉自己没有提高,无奈。经过反思我认为我学习过程中存在很多问题,我改变了学习方法后自我感觉有了明显的进步。

蒙在股里 发表于 2015-3-22 20:08:10

如果你已经到这种程度了,那么你已经可以做我的老师了。其实php也分很多的区域,

灵魂腐蚀 发表于 2015-3-27 08:04:32

在学习的过程中不能怕麻烦,不能有懒惰的思想。学习php首先应该搭建一个lamp环境或者是wamp环境。这是学习php开发的根本。虽然网络上有很多集成的环境,安装很方便,使用起来也很稳定、

再见西城 发表于 2015-3-27 08:09:11

最后祝愿,php会给你带来快乐的同时 你也会给他带来快乐。

小妖女 发表于 2015-3-27 17:08:57

本人接触php时间不长,算是phper中的小菜鸟一只吧。由于刚开始学的时候没有名师指,碰过不少疙瘩,呗很多小问题卡过很久,白白浪费不少宝贵的时间,在次分享一些子的学习的心得。

精灵巫婆 发表于 2015-3-31 10:09:22

小鸟是第一次发帖(我习惯潜水的(*^__^*) 嘻嘻……),有错误之处还请大家批评指正,另外,前些日子听人说有高手能用php写驱动程序,真是学无止境,人外有人,天外有天。

分手快乐 发表于 2015-4-3 05:02:54

多看优秀程序员编写的代码,仔细理解他们解决问题的方法,对自身有很大的帮助。

莫相离 发表于 2015-4-12 06:20:31

说php的话,首先得提一下数组,开始的时候我是最烦数组的,总是被弄的晕头转向,不过后来呢,我觉得数组里php里最强大的存储方法,所以建议新手们要学好数组。

愤怒的大鸟 发表于 2015-4-29 14:27:44

本人接触php时间不长,算是phper中的小菜鸟一只吧。由于刚开始学的时候没有名师指,碰过不少疙瘩,呗很多小问题卡过很久,白白浪费不少宝贵的时间,在次分享一些子的学习的心得。

变相怪杰 发表于 2015-4-30 01:33:42

因为blog这样的可以让你接触更多要学的知识,可以接触用到类,模板,js ,ajax

若天明 发表于 2015-7-4 20:57:38

首先声明:我是一个菜鸟,是一个初学者。学习了一段php后总是感觉自己没有提高,无奈。经过反思我认为我学习过程中存在很多问题,我改变了学习方法后自我感觉有了明显的进步。

第二个灵魂 发表于 2015-7-7 21:01:06

微软最近出的新字体“微软雅黑”,虽然是挺漂亮的,不过firefox支持的不是很好,所以能少用还是少用的好。
页: [1]
查看完整版本: PHP网站制作之PHP/MySQL三日通-第三天(一)