竹笋

首页 » 问答 » 环境 » PHPWEB交互程序员培养之路第四十
TUhjnbcbe - 2023/8/19 21:53:00

第一节PHP与Web页面交互

PHP与Web页面交互是实现PHP网站与用户交互的重要手段。

在PHP中提供了两种与Web页面交互的方法,一种是通过Web表单提交数据,另一种是直接通过URL参数传递数据。

Web表单提交数据有两种方式:GET方法和POST方法。

POST方法不依赖于URL,不会将传递的参数值显示在地址栏中,而是将参数值放置在是HTTP包的包体中,这样可以传输更多的内容,传输方法也更加安全,所以POST方法通常用于上传信息。

PHP

GET方法完全依赖于URL,参数值会附在URL之后,以?分割URL和传输数据,多个参数用连接,这样传输安全性很低,而且受到URL长度的限制,传输内容很小,所以GET方法通常用于获取信息。

Web表单用get方法提交数据,最终效果如同直接通过URL参数传递数据。

PHP针对这两种请求方法,提供了两个全局变量_GET[],分别用来获取POST请求和GET请求的参数值。

$_GET[]

建立一个get请求的表单页面名叫form_get.html:

!DOCTYPEhtmlhtmlheadmetacharset=UTF-8titleGET方式的表单/title/headbodyformaction=form_get.phpmethod=get账户:inputname=usernametype=text/br/密码:inputname=passwordtype=password/br/邮箱:inputname=emailtype=email/br/inputtype=submit//form/body/html

?phpechopre;var_dump($_GET);$username=$_GET[username];$password=$_GET[password];$email=$_GET[email];echobr/接收到的账户:.$username;echobr/接收到的密码:.$password;echobr/接收到的邮箱:.$email;?

$_POST[]

同formget.html,我们建立一个名叫formpost.html,内容仅仅把form元素的action和method修改一下:

!DOCTYPEhtmlhtmlheadmetacharset=UTF-8titlePOST方式的表单/title/headbodyformaction=form_post.phpmethod=post账户:inputname=usernametype=text/br/密码:inputname=passwordtype=password/br/邮箱:inputname=emailtype=email/br/inputtype=submit//form/body/html

运行界面除了地址栏和标题栏,其他内容完全和formget.html一致。这时候点击跳转到同目录下的formpost.php文件,文件内容为:

?phpechopre;var_dump($_POST);$username=$_POST[username];$password=$_POST[password];$email=$_POST[email];echobr/接收到的账户:.$username;echobr/接收到的密码:.$password;echobr/接收到的邮箱:.$email;?

第二节会话控制

会话控制是一种跟踪用户的通信方式

例如:当一个用户在请求一个页面后,再次请求这个页面,网站是无法知道这个用户刚才是否曾经来访问过。由此我们就会觉得奇怪,平时我们在电商网站购物时,只要我们在这个站点内,不论我们怎么跳转页面,网站总会记得我是谁,这是怎么做到的呢?这就是运用了HTTP会话控制。在网站中跟踪一个变量,通过对变量的跟踪,使多个请求事物之间建立联系,根据授权和用户身份显示不同的内容、不同页面。

cookie

cookie是在服务器端创建,并写回到客户端浏览器

浏览器接到指令则在本地临时文件夹中创建了一个cookie文件,其中保存了你的cookie内容

客户端浏览器每次访问网站时,都会检测是否有该网站的cookie信息,如果有的话,也会同时发送过去。

注意:

cookie内容的存储是键/值对的方式,键和值都只能是字符串。

定义cookie

setcookie(键,值,有效期(秒))setcookie(name,zhangsan,time()+);//如果不设置有效期,关闭浏览器就会消失setcookie(pwd,,time()+);

删除cookie(设定过期时间,使失效)

setcookie(name,,time()-1);setcookie(age,null,time()-1);setcookie(sex,,time()-1);

session

session与cookie相似,只是原来将信息存在客户端,现在保存到服务端

客户端第一次访问时将信息保存到服务器,同时分配给用户一个固定长度的字符串(sessionID),并以cookie方式保存在客户端

在php.ini配置文件中,可以指定这个sessionID的名称:

session.name=PHPSESSID

开启session要保证在它之前,没有向浏览器输出过任何内容,通常放在代码第一行

session_start();

往session中存储信息

$_SESSION[name]=张三;$_SESSION[sex]=男;$_SESSION[age]=18;

获取session信息

$name=$_SESSION[name];

销毁session中的信息

unset($_SESSION);

销毁session文件

session_destroy();

销毁客户端cookie信息

setcookie(PHPSESSID,,time()-1);

cookie与session的区别

建议将登陆信息等重要信息存放为session,其他信息如果需要保留,可以放在cookie中

PHP-GD库「程序员培养之路第三十九天」

PHP-文件上传和下载「程序员培养之路第三十八天」

PHP-文件处理系统「程序员培养之路第三十七天」

1
查看完整版本: PHPWEB交互程序员培养之路第四十