第一节PHP与Web页面交互
PHP与Web页面交互是实现PHP网站与用户交互的重要手段。
在PHP中提供了两种与Web页面交互的方法,一种是通过Web表单提交数据,另一种是直接通过URL参数传递数据。
Web表单提交数据有两种方式:GET方法和POST方法。
POST方法不依赖于URL,不会将传递的参数值显示在地址栏中,而是将参数值放置在是HTTP包的包体中,这样可以传输更多的内容,传输方法也更加安全,所以POST方法通常用于上传信息。
PHPGET方法完全依赖于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-文件处理系统「程序员培养之路第三十七天」