thinkphp3.2实现在线留言提交验证码功能

时间:2022-11-20 14:49:30

如何实现验证码成功验证功能?提交验证码?这篇文章为大家解答。

把今天掌握的东西整理一下,要不然,我就忘干净了:

今天在做一个企业网站的时候,有一个在线留言的功能,最后提交的时候需要输入验证码。如图下:

thinkphp3.2实现在线留言提交验证码功能

当然,特连接的并不是我的后台

好了,开始了,首先我需要把验证码显示出来,前端页面:

?
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
<div class="message-con clearfix">
 <div class="mcon-left pic pull-left"><img src="/public/admin/xx/images/message.png" class="vcenter" alt="" /></div>
 <div class="mcon-right pull-right">
 <form method="post" action="{:u('validate')}" name='valiate'>
 <label><span>姓名</span><input type="text" name="xingming" class="mname" value=""/><em>*</em></label>
 <label><span>联系电话</span><input type="text" name="tel" class="mtel" /><em>*</em></label>
 <label><span>联系地址</span><input type="text" name="dizhi" class="madd" /></label>
 <label><span>邮箱地址</span><input type="text" name="youxiang" class="memail" /></label>
 <label><span>留言内容</span><textarea name="content" class="mcontent"></textarea><em>*</em></label>
 <label class="mcodela"><input type="text" name="code" class="mcode" />
  <img src="{:u('verify')}" onclick="this.src=this.src+'?'+math.random();" alt="" />
  <a href="#" rel="external nofollow" >看不清楚?换一张</a><em>*</em></label>
 <label><input type="submit" class="msub" name="tj" value="在线提交" /></label>
 </form>
 </div>
 </div>
 </div>

好 点击事件,name,提交按钮都改好了,走起,去控制器啦;

来到控制器这里,先做一件事,引入model吧:

?
1
use otcms\model;

啥?没有model类  自己去写吧:

?
1
2
3
4
5
6
7
8
9
10
11
12
13
<?php
namespace otcms\model;
use think\model;
class usermodel extends model{
 protected $_validate = array(
 
  array('xingming','require','姓名不可空!'),
  array('tel','require ','手机号不可空!'),
  array('dizhi','require','地址不可空!'),
  array('youxiang',' require','邮箱不可空!'),
  array('content','require','内容不可空!'),
 );
}

设置验证码:

显示:

?
1
2
3
4
5
6
7
8
9
10
11
public function verify(){
 
 $config = array(
  'fontsize' => 30, // 验证码字体大小
  'length'  => 4,  // 验证码位数
 );
 
 $verify = new\think\verify($config);
 $verify->entry();
 
}

下面来写条件:

?
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
public function validate(){
 $date['xingming'] = i('post.xingming');
 $date['tel'] = i('post.tel');
 $date['dizhi'] = i('post.izhi');
 $date['youxiang'] = i('post.youxiang');
 $date['content'] = i('post.content');
 $yzm = i('post.code');
 
 $fkyz = d("liuyan");
 
 if (!$fkyz->create()){
  // 如果创建失败 表示验证没有通过 输出错误提示信息
  exit($fkyz->geterror());
 
 }else{
 
  // 验证通过 可以进行其他数据操作
  $verify = new \think\verify();
  $yzmyz = $verify->check($yzm);
 
  if(!$yzmyz){
 
   $this->error('验证码错误');
 
  }
  else{
   $validate = m("liuyan");
   $validate->add($date);
   $this->success('添加成功');
 
  }
 }
}

图:

thinkphp3.2实现在线留言提交验证码功能

thinkphp3.2实现在线留言提交验证码功能

以上就是本文的全部内容,希望对大家的学习有所帮助,也希望大家多多支持服务器之家。