Php与Web交互

简单是可靠的先决条件
——Edsger Dijkstra

本篇文章主要知识点

  • Php与Web交互基本
  • 文件上传
  • 表单验证

交互基本

1.变量

为什么提到变量,这个变量可不是简单的自定义变量,他是Php里获取服务器信息,请求信息的方法,通常把这些信息称为EGPCS(environment ,get , post , cookies,server)
这些变量不仅在函数定义中是可见的,而且是全局的

2.服务器信息

$_SRVER[]数组包含大量跟服务器有关的信息,不过在这里介绍不完全部的,所以写一段代码,简单概括几种常用的

echo "当前服务器IP地址:".$_SERVER['SERVER_ADDR']."
"; echo "当前主机名:".$_SERVER['SERVER_NAME']."
"; echo "客户端IP地址:".$_SERVER['REMOTE_ADDR']."
"; echo "客户端端口:".$_SERVER['REMOTE_PORT']."
"; echo "服务器目录:".$_SERVER['DOCUMENT_ROOT']."
";

运行结果

Php与Web交互_第1张图片
运行结果.PNG
3.表单处理

客户端可以使用两种方法向服务器传表单数据:GET和POST,采用哪种方法是由表单标签

中的method属性所指定的

一个GET请求,需要把表单参数编码成URL,成为查询字符串
而一个POST请求,则通过请求HTTP主体来传递表单参数,不需要考虑URL

HTTP规范指出,GET请求是幂等的,也就是说,一个对于特定URL的GET请求,与对应于这一特定URL的两个或者多个GET请求是一样的,因此Web浏览器可以把GET请求响应的页面缓存起来,因为这个页面不管响应多少次,响应页面是不变的,而POST请求不具有幂等性,他们无法被缓存,每次刷新都要重新发送表单数据

4.自处理页面

所谓自处理页面,就是一个Php页面能同时用来生成表单和处理表单,实现这个功能能有两种方法

第一种:判断method方法,如果是POST获取处理表单,如果GET直接输出
第二种:通过isset()函数判断指定的参数是否被创建,如果存在则执行处理,否则生成

文件上传

在Php中上传文件最大的问题是对超大文件的处理,对此,Php有两种方法避免此种情况,软性限制和硬性限制
在Php.ini文件中可以对上传文件进行限制,包括是否支持上传,上传文件默认目录,上传文件大小,指令执行时间,指令分配的内存空间

修改后需要重新启动Apache服务器,才能生效

在表单中,在文件域之前添加一个名称为MAX_FILE_SIZE的隐藏域,通过他的值来实现软限制

Php使用is_uploaded_file()来判断文件是否是通过HTTP POST上传的,如果是就返回true,可以继续上传,否则就不能继续

下面来实现一个文件上传的功能

文件上传测试 0){ echo "上传错误"; //1,2,3,4都是固定值,每一个值代表一个错误 switch ($_FILES['text']['error']){ case 1:echo "文件大小超出配置文件限制值";break; case 2:echo "文件大小超出表单限制值";reak; case 3:echo"文件不全";break; case 4:echo"没有文件";break; } }else{ if(is_uploaded_file($file['tmp_name'])){ $flotime = time(); $str = substr($file['name'],-4,4); $path = "iamges/".$flotime.$str; if(move_uploaded_file($file['tmp_name'],$path)){ echo "上传成功:".$flotime.$str; } } } } ?>

表单验证

表单验证用来检测表单信息是否填写正确

alert('用户名不能为空'); window.location.herf = 'Input.php';

你可能感兴趣的:(Php与Web交互)