老生常谈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 相关文章推荐
PHP 已经成熟
Dec 04 PHP
将二维数组转为一维数组的2种方法
May 26 PHP
PHP中Closure类的使用方法及详解
Oct 09 PHP
php判断用户是否关注微信公众号
Jul 22 PHP
PHP自定义错误用法示例
Sep 28 PHP
浅谈php中fopen不能创建中文文件名文件的问题
Feb 06 PHP
CodeIgniter框架基本增删改查操作示例
Mar 23 PHP
PHP实现的简单操作SQLite数据库类与用法示例
Jun 19 PHP
PHP单例模式与工厂模式详解
Aug 29 PHP
php 数据结构之链表队列
Oct 17 PHP
PHP封装cURL工具类与应用示例
Jul 01 PHP
laravel Validator ajax返回错误信息的方法
Sep 29 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
重置版战役片段
2020/04/09 魔兽争霸
php下实现伪 url 的超简单方法[转]
2007/09/24 PHP
php代码把全角数字转为半角数字
2007/12/10 PHP
PHP动态编译出现Cannot find autoconf的解决方法
2014/11/05 PHP
php+MySql实现登录系统与输出浏览者信息功能
2016/07/01 PHP
CL vs ForZe BO5 第三场 2.13
2021/03/10 DOTA
jQuery 研究心得 取得属性的值
2007/11/30 Javascript
JQuery textlimit 显示用户输入的字符数 限制用户输入的字符数
2009/05/14 Javascript
ExtJS4如何给同一个formpanel不同的url
2014/05/02 Javascript
js创建对象的区别示例介绍
2014/07/24 Javascript
JavaScript中split与join函数的进阶使用技巧
2016/05/03 Javascript
Node.js的Web模板引擎ejs的入门使用教程
2016/06/06 Javascript
nodejs入门教程三:调用内部和外部方法示例
2017/04/24 NodeJs
jQuery常见面试题之DOM操作详析
2017/07/05 jQuery
详谈表单重复提交的三种情况及解决方法
2017/08/16 Javascript
详解用函数式编程对JavaScript进行断舍离
2017/09/18 Javascript
微信小程序实现图片上传、删除和预览功能的方法
2017/12/18 Javascript
vue同步父子组件和异步父子组件的生命周期顺序问题
2018/10/07 Javascript
layer弹出子iframe层父子页面传值的实现方法
2018/11/22 Javascript
node实现简单的增删改查接口实例代码
2019/08/22 Javascript
JavaScript实现公告栏上下滚动效果
2020/03/13 Javascript
javascript实现页面的实时时钟显示示例
2020/08/06 Javascript
[59:26]DOTA2上海特级锦标赛D组资格赛#1 EG VS VP第二局
2016/02/28 DOTA
H5页面适配iPhoneX(就是那么简单)
2019/12/02 HTML / CSS
香港太阳眼镜网上商店:SmartBuyGlasses香港
2016/07/22 全球购物
瑞典Happy Socks美国官网:购买色彩斑斓的快乐袜子
2016/10/19 全球购物
英国最好的包装供应商:Priory Direct
2019/12/17 全球购物
暑期实习鉴定
2013/12/16 职场文书
大学生军训自我鉴定
2014/02/12 职场文书
党支部三严三实对照检查材料思想汇报
2014/09/29 职场文书
大学生翘课检讨书范文
2014/10/06 职场文书
2014年综合治理工作总结
2014/11/20 职场文书
2016党员学习心得体会范文
2016/01/23 职场文书
php 获取音视频时长,PHP 利用getid3 获取音频文件时长等数据
2021/04/01 PHP
golang 实现时间戳和时间的转化
2021/05/07 Golang
MySQL系列之十五 MySQL常用配置和性能压力测试
2021/07/02 MySQL