其中post方法相对于get方法较为安全,如果使用get方法的话你的提交的表单包括账号密码等信息将会显示在访问路径当中,而post方法会将其数据隐藏。
改写add方法,判断是否是post请求,如果是,则处理表单的提交,如果不是则展示模版。
扩展:如果判断请求是否是post?
答:我们可以使用if($_post)来判断,但是在thinkphp中系统为我们封装了几个比较使用的常量,可以直接用常量来判断,常量常见的如下:
is_post 如果请求是post,则is_post的值是true,否则是false
is_get
is_ajax 如果请求是ajax,则is_ajax的值是true,否则是false
is_cgi
is_put
…
关于数据接收的说明:
在之前我们使用的时候$_post来接收数据,在thinkphp中,我们可以使用i方法(快速方法)来接收数据,i方法可以接收任何类型的输入(post、get、request、put等等),并且系统默认自带防sql注入的方法(使用php内置的函数htmlspecialchars)。
变量类型就是类似get、post等等。
变量名就是指$_get或者$_post中具体元素下标。
默认值:是当使用过滤方法之后原先的内容如果变成了空字符串,则会使用默认值来代替。
过滤方法:是对thinkphp默认提供的htmlspecialchars的补充,函数名可以是php内置的,也可以是函数库中的。
额外的说明:如果想接收整个数组则怎么办?
如果想接收全部数据,则可以不写变量名,可以写成i(‘get.’);
<?php public function add(){ if(is_post){ //处理表单提交 $post = i('post.'); //添加数据 //实例化模型 $model = m('dept'); $result = $model -> add($post); //判断返回值 if($result){ //添加成功 $this -> success('添加成功',u('showlist'),5); }else{ $this -> error('添加失败'); } }else{ //实例化模型 $model = m('dept'); //查询操作 $data = $model -> where('pid = 0') -> select(); //变量分配 $this -> assign('data',$data); //展示模板 $this -> display(); }}
推荐教程:thinkphp教程
以上就是thinkphp中常用的提交表单的方法的详细内容。
