多应用+插件架构,代码干净,二开方便,首家独创一键云编译技术,文档视频完善,免费商用码云13.8K 广告
[TOC] ## 表单提交get和post? get 请求一般用于向服务端获取数据,post 一般向服务端提交数据 get 传输的参数在 url 中,传递参数大小有限制,post 没有大小限制, get 不安全,post 安全性比get高 get请求在服务端用Request.queryString 接受 ,post 请求在服务端用Requset.form 接收。  ## echo(),print(),print_r()的区别 echo是PHP语句, print和print_r是函数,语句没有返回值,函数可以有返回值(即便没有用) print() 只能打印出简单类型变量的值(如int,string) print_r() 可以打印出复杂类型变量的值(如数组,对象) echo 输出一个或者多个字符串   **echo()** 可以一次输出多个值,多个值之间用逗号分隔。echo是语言结构(language construct),而并不是真正的函数,因此不能作为表达式的一部分使用。  **print()** 函数print()打印一个值(它的参数),如果字符串成功显示则返回true,否则返回false。  **print_r()** 可以把字符串和数字简单地打印出来,而数组则以括起来的键和值得列表形式显示,并以Array开头。但print\\\_r()输出布尔值和NULL的结果没有意义,因为都是打印"\\\\n"。因此用var\\\_dump()函数更适合调试。  **var_dump()** 判断一个变量的类型与长度,并输出变量的数值,如果变量有值输的是变量的值并回返数据类型。此函数显示关于一个或多个表达式的结构信息,包括表达式的类型与值。数组将递归展开值,通过缩进显示其结构。  ## 语句include和require? 1、加载失败的处理方式不同 include与require除了在处理引入文件的方式不同外,最大的区别就是: include在引入不存在的文件时,产生一个警告且脚本还会继续执行, require则会导致一个致命性错误且脚本停止执行。  2、include()是有条件包含函数,而 require()则是无条件包含函数。  `if(FALSE){` `include 'file.php'; //file.php不会被引入` `}`  `if(FALSE){` `require 'file.php'; //file.php将会被引入` `}`  3、文件引用方式  include有返回值,而require没有  `$retVal = include(’somefile.php’);` `if(!empty($retVal)){` `echo "文件包含成功";` `}else{` `echo "文件包含失败";` `}`  可以用include_once,require_once代替,表示文件只引入一次,引入之后则不在引入,作为优化点.  ## composer是什么?Composer和PHP有什么关系?  Composer是PHP的一个依赖(dependency)管理工具,在我们的项目中声明所依赖的外部工具库(libraries),Composer 可以帮助我们安装这些依赖的库文件。Composer可以全局安装也可以局部安装,默认不是全局安装的,是基于指定项目的某个目录进行安装的。  ## session与cookie的区别是什么? 1、保持状态:  cookie和session都是用来跟踪浏览器用户身份的会话方式。 2、使用方式: (1)cookie机制:如果不在浏览器中设置过期时间,cookie被保存在内存中,生命周期随浏览器的关闭而结束,这种cookie简称会话cookie。如果在浏览器中设置了cookie的过期时间,cookie被保存在硬盘中,关闭浏览器后,cookie数据仍然存在,直到过期时间结束才消失。  Cookie是服务器发给客户端的特殊信息,cookie是以文本的方式保存在客户端,每次请求时都带上它  (2)session机制:当服务器收到请求需要创建session对象时,首先会检查客户端请求中是否包含sessionid。如果有sessionid,服务器将根据该id返回对应session对象。如果客户端请求中没有sessionid,服务器会创建新的session对象,并把sessionid在本次响应中返回给客户端。通常使用cookie方式存储sessionid到客户端,在交互中浏览器按照规则将sessionid发送给服务器。如果用户禁用cookie,则要使用URL重写,可以通过response.encodeURL(url) 进行实现;API对encodeURL的结束为,当浏览器支持Cookie时,url不做任何处理;当浏览器不支持Cookie的时候,将会重写URL将SessionID拼接到访问地址后。  3、存储内容:  cookie只能保存字符串类型,以文本的方式;session通过类似与Hashtable的数据结构来保存,能支持任何类型的对象(session中可含有多个对象)  4、存储的大小:  cookie:单个cookie保存的数据不能超过4kb;  session大小没有限制。  5、安全性:  cookie:针对cookie所存在的攻击:Cookie欺骗,Cookie截获; session的安全性大于cookie。 ## 为什么session的安全性大于cookie?  1. sessionID存储在cookie中,若要攻破session首先要攻破cookie; 2. sessionID是要有人登录,或者启动session_start才会有,所以攻破cookie也不一定能得到sessionID; 3. 第二次启动session_start后,前一次的sessionID就是失效了,session过期后,sessionID也随之失效。 4. sessionID是加密的 5. 综上所述,攻击者必须在短时间内攻破加密的sessionID,这很难。  ## session与cookie的应用场景有哪些?  cookie: (1)判断用户是否登陆过网站,以便下次登录时能够实现自动登录(或者记住密码)。如果我们删除cookie,则每次登录必须从新填写登录的相关信息。 (2)保存上次登录的时间等信息。 (3)保存上次查看的页面。 (4)浏览计数。  session:  Session用于保存每个用户的专用信息,变量的值保存在服务器端,通过SessionID来区分不同的客户。  (1)网上商城中的购物车。 (2)保存用户登录信息。 (3)将某些数据放入session中,供同一用户的不同页面使用。 (4)防止用户非法登录。