老生常谈php中传统验证与thinkphp框架(必看篇)


Posted in PHP onJune 10, 2017

PHP(超文本预处理器)可用于小型网站的搭建,当用户需要注册登录是,需要与后台数据库进行匹配合格才能注册和登录,传统的方式步骤繁多,需要先连接数据库再用sql语句进行插入。

<?php
header("Content-type: text/html; charset=utf-8");
$conn =mysqli_connect("localhost","root","");
if (!$conn){
   echo "<script>alert('连接失败!');history.go(-1);</script>";
  } 
mysqli_select_db($conn,"liuyanban");
mysqli_query($conn,'SET NAMES utf8');
$password=$_POST['password'];
$username=$_POST['username'];
$face="yellow.png";
$result=mysqli_query($conn,"SELECT username from user1 where username = '$username'"); 
$a=mysqli_num_rows($result);
if($a)
{    
   echo "<script language=javascript>alert('用户名已存在!');location.href='reg.html'</script>";
}
else
{   
    $sql = mysqli_query($conn,"INSERT INTO user1(username,password,face)VALUES('1' ,'2','yellow.png')");
   if($sql)
   {
      echo "<script language=javascript>alert('注册成功!');location.href='login.html'</script>";
   }
   else
   {
      echo "<script>alert('注册失败!');location.href='reg.html'</script>";
   }
}
?>

以上是一个原生php注册实例,需要用mysqli_select_db()、mysqli_query()等函数先进行数据库连接,同时只有通过mysqli_query()函数才能执行sql语句,最后通过if语句进行类别判断和其他一系列限制操作。在原生php阶段实用性比较高,便于理解,过程很清晰,但是在一个项目工程中用这样的语句代码编写不便于相互交流,非常繁重复杂,所以需要运用thinkphp框架搭建项目才能使编码人员相互可以对接,也便于后期代码的修改和功能的添加。那么这里就不赘述框架详细了,所以在thinkphp框架下mvc模式中运用控制器(C)和模型(M)进行表单自动验证:

控制器中使用表单静态验证:

public function doreg(){
       $data=D('user');
       $d=array();
         $d['username']=$_POST['username'];
         $d['password']=$_POST['password'];
         $d['time']=date("Y-m-d H:i:s",time());
         $d['qq']=$_POST['qq'];
         $d['class']=$_POST['class'];
         $mess=$data->create();
         if (!$mess){    //表单自动验证
            $this->error($data->getError(),'Member/member',3);
         }else{
            $data->add();
            echo "<script language=javascript>alert('注册成功!');location.href='member.html'</script>";
           }
         }

模板中列出需要验证的字段:

<?php 
namespace Home\Model;
use Think\Model;
  class UserModel extends Model{
    protected $tableName ='user';   
    protected $_validate=array(                 //进行静态验证
     //array(验证字段1,验证规则,错误提示,[验证条件,附加规则,验证时间]),
      array('username','require','用户名必填!'),
      array('username','','帐号名称已经存在!',0,'unique',1),
      array('repassword','password','两次密码不一致!',0,'confirm'),
      array('qq','require','qq必填!'),
      array('qq','','帐号名称已经存在!',0,'unique',1),
      array('class','require','班级必填!'),
      array('j_verify','require','验证码必须!'),
    );
     
  }
?>

这里以注册为例,登录类似,若验证错误,则运用$this->error($data->getError(),'Member/member',3);表单静态验证使用很方便。

以上这篇老生常谈php中传统验证与thinkphp框架(必看篇)就是小编分享给大家的全部内容了,希望能给大家一个参考,也希望大家多多支持三水点靠木。

PHP 相关文章推荐
PHP4实际应用经验篇(6)
Oct 09 PHP
Smarty安装配置方法
Apr 10 PHP
PHP+MYSQL会员系统的登陆即权限判断实现代码
Sep 23 PHP
php开发文档 会员收费1期
Aug 14 PHP
用php实现百度网盘图片直链的代码分享
Nov 01 PHP
PHP中判断变量为空的几种方法分享
Aug 26 PHP
php实现执行某一操作时弹出确认、取消对话框
Dec 30 PHP
CentOS下PHP7的编译安装及MySQL的支持和一些常见问题的解决办法
Dec 17 PHP
PHP实现图片上传并压缩
Dec 22 PHP
Yii2.0预定义的别名功能小结
Jul 04 PHP
PHP基于rabbitmq操作类的生产者和消费者功能示例
Jun 16 PHP
PHP根据key删除数组中指定的元素
Feb 28 PHP
全面解析PHP面向对象的三大特征
Jun 10 #PHP
PHP查询分页的实现代码
Jun 09 #PHP
PHP简单留言本功能实现代码
Jun 09 #PHP
PHP如何获取当前主机、域名、网址、路径、端口等参数
Jun 09 #PHP
PHP中的日期时间处理利器实例(Carbon)
Jun 09 #PHP
PHPExcel中文帮助手册|PHPExcel使用方法(分享)
Jun 09 #PHP
使用PHPExcel实现数据批量导出为excel表格的方法(必看)
Jun 09 #PHP
You might like
PHP define函数的使用说明
2008/08/27 PHP
解决FastCGI 进程超过了配置的活动超时时限的问题
2013/07/03 PHP
PHP Curl多线程原理实例详解
2013/11/06 PHP
PHP使用SOAP扩展实现WebService的方法
2016/04/01 PHP
PHP SFTP实现上传下载功能
2017/07/26 PHP
PHP自定义错误处理的方法分析
2018/12/19 PHP
laravel框架使用FormRequest进行表单验证,验证异常返回JSON操作示例
2020/02/18 PHP
JavaScript的事件绑定(方便不支持js的时候)
2013/10/01 Javascript
JS实现表单中checkbox对勾选中增加边框显示效果
2015/08/21 Javascript
Javascript的表单验证-提交表单
2016/03/18 Javascript
详解jQuery简单的表格应用
2016/12/16 Javascript
js实现淡入淡出轮播切换功能
2017/01/13 Javascript
webpack实用小功能介绍
2018/01/02 Javascript
基于JavaScript实现抽奖系统
2018/01/16 Javascript
Postman模拟发送带token的请求方法
2018/03/31 Javascript
vue.js实现的全选与全不选功能示例【基于elementui】
2018/12/03 Javascript
JS获取当前时间戳方法解析
2020/08/29 Javascript
Vue实现图书管理小案例
2020/12/03 Vue.js
python获取局域网占带宽最大3个ip的方法
2015/07/09 Python
Python处理JSON时的值报错及编码报错的两则解决实录
2016/06/26 Python
python 读写txt文件 json文件的实现方法
2016/10/22 Python
pyqt5 使用label控件实时显示时间的实例
2019/06/14 Python
解决Mac下使用python的坑
2019/08/13 Python
Python调用.NET库的方法步骤
2019/12/27 Python
美国一家主营日韩美妆护肤品的在线商店:iMomoko
2016/09/11 全球购物
意大利简约的休闲品牌:Aspesi
2018/02/08 全球购物
空字符串(“”)和null的区别
2012/11/13 面试题
《我的信念》教学反思
2014/02/15 职场文书
工厂门卫岗位职责范本
2014/04/04 职场文书
垃圾分类的活动方案
2014/08/15 职场文书
亲属关系公证书样本
2015/01/23 职场文书
学校德育工作总结2015
2015/05/11 职场文书
高中数学课堂教学反思
2016/02/18 职场文书
golang gopm get -g -v 无法获取第三方库的解决方案
2021/05/05 Golang
SQL注入详解及防范方法
2021/12/06 MySQL
德劲DE1107指针试高灵敏度全波段收音机机评
2022/04/05 无线电