php程序设计简明教程(DOC格式)-第6部分
按键盘上方向键 ← 或 → 可快速上下翻页,按键盘上的 Enter 键可回到本书目录页,按键盘上方向键 ↑ 可回到本页顶部!
————未阅读完?加入书签已便下次继续阅读!
PHP 讲义 第 20 页 共 90 页
…………………………………………………………Page 21……………………………………………………………
〃Y 动态
它可以直接对用户的输入做出响应,无须经过Web 服务程序。它对用户的响应,是采用以事件驱动的方式进行
的。事件(Event)可分为两类,一是用户对浏览器进行的某种操作,比如按下鼠标、移动窗口、选择菜单等,可
以视为用户事件;二是系统事件,如时间的时刻变化等。当事件发生后,会向浏览器发送相应的消息(用户消息
或系统消息),根据消息,浏览器可能会做出相应的响应,这种响应称为事件驱动,也叫消息驱动。
〃Y 跨平台
JavaScript 代码由浏览器解释执行,与操作环境无关,只要能运行浏览器的计算机,并支持JavaScript 的浏览器
就可正确执行,从而实现了“编写一次,走遍天下”的梦想。
实际上 JavaScript 最杰出之处在于可以用很小的程序做大量的事。无须有高性能的电脑,软件仅需一个字处理
软件及一浏览器,无须WEB 服务器通道,通过自己的电脑即可完成所有的事情。
JavaScript 和 Java 很类似,但并不一样。Java 是一种比JavaScript 更复杂许多的程序语言,而 JavaScript 则
是相当容易了解的语言。许多 Java 的特性在 Java Script 中并不支持。
(3)JavaScript 的工作原理
1)JavaScript 的工作原理
JavaScript 编程可以完成诸如构造动画,动态菜单等使页面更加生动、活泼的任务(实例见洪恩在线:
http://hongen。/pc/homepage/javascript/index1。htm ),还可以对客户机文件系统、注册表等进行操作,
如对文件夹、文件的建立,复制,删除,修改注册表,锁定注册表,锁定浏览器等等,有许多随着网页打开而运
行的病毒就是含在网页中的JavaScript 程序在作怪。由此可见,JavaScript 是控制客户机的精灵。
在 B/S 程序中,为了均衡负载,减轻服务器的计算负担,凡是不需要服务器程序做的工作,可尽量交给客户端
程序(如JavaScript 程序)去做。我们用HTML 标记构造出用户界面,用户通过界面输入数据,向浏览器请求
数据等操作。在用户输入数据,或者是输入完毕,将数据向服务器提交的时候,对数据的检验等任务完全可交给
JavaScript 程序来完成。本课程主要介绍此类任务的JavaScript 编程技术。
通过JavaScript 脚本检验FORM 数据
JavaScript 的工作原理,就是以基于对象和一些面向对象的特征:
〃Y JavaScript 通过控制客户机上各种对象的方式,控制客户机,对客户机进行操作。
〃Y 根据用户或系统事件,做出相应的响应。
第二节 Web 客户端基本技术
1。数据传递
(1)客户端向服务器传递数据的方法:POST 和GET
浏览器向服务器进行数据传送,若使用FORM,常用的传送数据的方法是GET 和POST。
①GET 方法通过URL 请求来传递用户的输入,形式:URL?var_name1=value1&var_name2=value2,即将表单
内各字段名称与其内容,以成对的字符串连接,置于表单 ACTION 属性所指的 URL 后,如
http://211。64。32。2/login。php?name=abc&password=123,数据都会直接显示在 URL 上,就像用户点击一个链
接一样;POST 方法通过 HTTP POST 机制,将表单内各字段名称与其内容放置在 HTML 表头(header) 内一
PHP 讲义 第 21 页 共 90 页
…………………………………………………………Page 22……………………………………………………………
起传送给服务器端交由 ACTION 属性能所指的程序处理,该程序会通过标准输入(stdin)方式,将表单的数据读
出并加以处理。
②通过 GET 方法提交数据,可能会带来安全性的问题。比如一个登陆页面,当通过 GET 方法提交数据时,用
户名和密码将出现在URL 上。如果登陆页面可以被浏览器缓存或其他人可以访问客户的这台机器。那么,别人
就可以从浏览器的历史记录中,读取到此客户的账号和密码。所以,在某些情况下,GET 方法会带来严重的安
全性问题。
③GET 方式传输的数据量非常小,一般限制在 2 KB 左右,但是执行效率却比 POST 方法好;而POST 方式
传递的数据量相对较大,它是等待服务器来读取数据,不过也有字节限制,这是为了避免对服务器用大量数据进
行恶意攻击。使用PHP,默认的POST_MAX_SIZE 是2M (通过配置php。ini 实现),如果你想利用POST 方式
上传软件,就需要更改这个值了(我设置为20M 仍然能够正确上传文件),但是倘若试图使用GET 方式,就没
有可能实现这种功能。
建议在FORM 中,使用POST 方法。
下列情况表明传递数据使用的是GET 方法:
〃Y 在地址栏中进行GET 请求
在地址栏中使用请求形式:URL?var_name1=value1&var_name2=value2……。
如http://nc。dzu。edu。cn/article/show。php?id=139 (其中URL 为http://nc。dzu。edu。cn/article/show。php),
作用:向 URL 所指向的程序文件show。php 传递一个变量,变量名为 id,变量值为139,该程序将从数据库
中取出有关id 为139 的那条新闻的信息,表示成HTML 代码后返回给请求者的浏览器。
在地址栏中进行GET 请求的情况
〃Y 单击了一个链接。
【例2…4 】通过链接传递数据的HTML 标记
2…4。htm 源代码:
ASP;PHP;JSP 之比较
〃Y 对FORM 的METHOD 属性,使用GET 属性值
(2 )小结
从PHP 的角度看,浏览器向服务器传递数据:
使用表单对象时,表单对象名=表单变量。
使用URL?参数名=参数值时,参数名=查询字符串(querystring )变量。
如【例2…3 】中,用户在文本字段textfield 中输入的数据,发送到FORM 的ACTION 指向的服务器程序2…3。php
后,2…3。php 将接收到表单变量textfield 和该变量内的值。
当在超链接地址或地址栏采用 URL?var_name1=value1&var_name2=value2 ……形式时,var_name1 、
PHP 讲义 第 22 页 共 90 页
…………………………………………………………Page 23……………………………………………………………
var_name2 等是查询字符串变量。
另外,一个服务器程序,也称页,对接收到的表单变量或查询字符串变量,都作为页内局部变量处理,本页程序
执行完毕,这些变量统统自动释放,所以不能将这些变量传递到另外一个PHP 程序中去,即不能跨页传递。就
像接力棒比赛中,不能跨人传棒。
既然默认情况下,不能将x。php 中的a 传到y。php,要想将x。php 中的局部变量a 传到程序y。php ,可借助于隐
藏域:在x。php 中用表单中的隐藏域,临时存储a 的值,然后提交表单到y。php ,即可实现向y。php 发送数据的
目的。
具体做法一般是这样:
x。php:
…