当前位置: 代码迷 >> Web前端 >> 第二节 Web客户端根本技术
  详细解决方案

第二节 Web客户端根本技术

热度:110   发布时间:2012-11-23 00:03:29.0
第二节 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)内一起传送给服务器端交由ACTION 属性能所指的程序处理,该程序会通过标准输入(stdin)方式,将表单的数据读出并加以处理。

②通过GET方法提交数据,可能会带来安全性的问题。比如一个登陆页面,当通过GET方法提交数据时,用户名和密码将出现在URL上。如果登陆页面可以被浏览器缓存或其他人可以访问客户的这台机器。那么,别人就可以从浏览器的历史记录中,读取到此客户的账号和密码。所以,在某些情况下,GET方法会带来严重的安全性问题。

③GET方式传输的数据量非常小,一般限制在 2 KB 左右,但是执行效率却比 POST 方法好;而POST 方式传递的数据量相对较大,它是等待服务器来读取数据,不过也有字节限制,这是为了避免对服务器用大量数据进行恶意攻击。使用PHP,默认的POST_MAX_SIZE是2M(通过配置php.ini实现),如果你想利用POST方式上传软件,就需要更改这个值了(我设置为20M仍然能够正确上传文件),但是倘若试图使用GET方式,就没有可能实现这种功能。

建议在FORM中,使用POST方法。

下列情况表明传递数据使用的是GET方法:

?    在地址栏中进行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请求的情况

?    单击了一个链接。

  【例2-4】通过链接传递数据的HTML标记

2-4.htm源代码:

<A  href="http://nc.dzu.edu.cn/article/show.php?id=139" >ASP,PHP,JSP之比较</A>

?    对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、var_name2等是查询字符串变量。

另外,一个服务器程序,也称页,对接收到的表单变量或查询字符串变量,都作为页内局部变量处理,本页程序执行完毕,这些变量统统自动释放,所以不能将这些变量传递到另外一个PHP程序中去,即不能跨页传递。就像接力棒比赛中,不能跨人传棒。

既然默认情况下,不能将x.php中的$a传到y.php,要想将x.php中的局部变量$a传到程序y.php,可借助于隐藏域:在x.php中用表单中的隐藏域,临时存储$a的值,然后提交表单到y.php,即可实现向y.php发送数据的目的。

具体做法一般是这样:

x.php:



<form action=”y.php” method=”post”>

<input type=”hidden” name=”a” value=”<? echo $a;?>”>

<input type=”submit” value=”提交”>

<input type=”reset” value=”重置”>

</form>



这时,从请求服务的角度来看,x.php就是客户端程序,y.php就是服务器程序了。

2.JavaScript嵌入HTML的方式

与C语言非常相似,但去掉了C语言中有关指针等容易产生的错误,并提供了功能强大的类库。对于已经具备C语言的人来说,学习JavaScript脚本语言是一件非常轻松愉快的事。

JavaScript的脚本包括在HTML中,它成为HTML文档的一部分。与HTML标识相结合,构成了一个功能强大的Internet网上编程语言。

(1)JavaScript嵌入HTML的方法

1)块嵌入:显式的JavaScript脚本块嵌入的方法

JavaScript块:

<Script Language ="JavaScript">

JavaScript语句1;

JavaScript语句2;

……

</Script>

说明: 通过脚本语言开始标记<Script>和脚本语言结束标记</Script>指明JavaScript脚本源代码块。

     通过属性Language ="JavaScript"说明标记中是使用的何种语言,这里是JavaScript语言, 表示在JavaScript中使用的语言。

嵌入的地方:

?    嵌入<head>…</Head>中:在主页和其余部分代码之前装载,从而可使代码的功能更强大;

?    嵌入<Body>…</Body>中:以实现某些部分动态地创建文档。

下面是将JavaScript脚本块加入Web文档中的例子:

【例2-5】将JavaScript脚本块加入Web文档

2-5.htm源代码:

<HTML>

<Head>

<Script Language ="JavaScript">

document.write("hello,world");

//document.close();注释方式同C和PHP

</Script>

</Head>

</HTML>

在浏览器的窗口中调用2-5.htm,则显示“hello,world”字串。见图所示。

传智播客php培训,提供相关php教程
  相关解决方案