老生常谈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 chr() ord()中文截取乱码问题解决方法
Sep 08 PHP
PHP 用数组降低程序的时间复杂度
Dec 04 PHP
php实现的返回数据格式化类实例
Sep 22 PHP
PHP性能分析工具XHProf安装使用教程
May 13 PHP
php 在线导入mysql大数据程序
Jun 11 PHP
PHP开发的微信现金红包功能示例
Jun 29 PHP
PHP读取word文档的方法分析【基于COM组件】
Aug 01 PHP
PHP聚合式迭代器接口IteratorAggregate用法分析
Dec 28 PHP
详解php中curl返回false的解决办法
Mar 18 PHP
thinkPHP框架乐观锁和悲观锁实例分析
Oct 30 PHP
PHP使用PDO实现mysql防注入功能详解
Dec 20 PHP
详解Laravel制作API接口
May 31 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
PHPlet在Windows下的安装
2006/10/09 PHP
PHP区块查询实现方法分析
2018/05/12 PHP
lib.utf.js
2007/08/21 Javascript
javascript 字符 Escape,encodeURI,encodeURIComponent
2009/07/09 Javascript
jquery 分页控件实现代码
2009/11/30 Javascript
Js组件的一些写法
2010/09/10 Javascript
Javascript中对象继承的实现小例
2014/05/12 Javascript
JavaScript字符串对象slice方法入门实例(用于字符串截取)
2014/10/16 Javascript
jQuery中:enabled选择器用法实例
2015/01/04 Javascript
简述AngularJS的控制器的使用
2015/06/16 Javascript
JavaScript中数组去除重复的三种方法
2016/04/22 Javascript
JavaScript比较当前时间是否在指定时间段内的方法
2016/08/02 Javascript
Kendo Grid editing 自定义验证报错提示的解决方法
2016/11/18 Javascript
Java与JavaScript中判断两字符串是否相等的区别
2017/03/13 Javascript
Angular.JS利用ng-disabled属性和ng-model实现禁用button效果
2017/04/05 Javascript
JavaScript转换数据库DateTime字段类型方法
2017/06/27 Javascript
vue实现样式之间的切换及vue动态样式的实现方法
2017/12/19 Javascript
JS动画实现回调地狱promise的实例代码详解
2018/11/08 Javascript
通过js示例讲解时间复杂度与空间复杂度
2019/08/06 Javascript
[20:46]Ti4循环赛第三日VG vs DK
2014/07/12 DOTA
Python yield使用方法示例
2013/12/04 Python
python写xml文件的操作实例
2014/10/05 Python
零基础写python爬虫之抓取糗事百科代码分享
2014/11/06 Python
Python序列操作之进阶篇
2016/12/08 Python
定制FileField中的上传文件名称实例
2017/08/23 Python
django的分页器Paginator 从django中导入类
2019/07/25 Python
感知器基础原理及python实现过程详解
2019/09/30 Python
Python 使用元类type创建类对象常见应用详解
2019/10/17 Python
推荐技术人员一款Python开源库(造数据神器)
2020/07/08 Python
HTML5本地存储之IndexedDB
2017/06/16 HTML / CSS
佳能英国官方网站:Canon UK
2017/08/08 全球购物
解释一下Windows的消息机制
2014/01/30 面试题
学生检讨书怎么写
2014/10/09 职场文书
运动会宣传稿50字
2015/07/23 职场文书
MySQL中dd::columns表结构转table过程及应用详解
2022/09/23 MySQL
java获取一个文本文件的编码(格式)信息
2022/09/23 Java/Android