老生常谈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编写PDF文档生成器
Oct 09 PHP
《PHP编程最快明白》第八讲:php启发和小结
Nov 01 PHP
phpcms模块开发之swfupload的使用介绍
Apr 28 PHP
PHP批量检测并去除文件BOM头代码实例
May 08 PHP
PHP启动windows应用程序、执行bat批处理、执行cmd命令的方法(exec、system函数详解)
Oct 20 PHP
php实现通用的信用卡验证类
Mar 24 PHP
PHP基于文件存储实现缓存的方法
Jul 20 PHP
Zend Framework动作助手Redirector用法实例详解
Mar 05 PHP
php微信公众平台交互与接口详解
Nov 28 PHP
PHP正则表达式匹配替换与分割功能实例浅析
Feb 04 PHP
解决Yii2邮件发送结果返回成功,但接收不到邮件的问题
May 23 PHP
PHP连接sftp并下载文件的方法教程
Aug 26 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获取当前URL路径的处理方法(适用于多条件筛选列表)
2017/02/10 PHP
php魔法函数与魔法常量使用介绍
2017/07/23 PHP
浅谈关于JavaScript的语言特性分析
2013/04/11 Javascript
jquery+json实现数据列表分页示例代码
2013/11/15 Javascript
Jquery利用mouseenter和mouseleave实现鼠标经过弹出层且可以点击
2014/02/12 Javascript
jsPDF导出pdf示例
2014/05/02 Javascript
javaScript使用EL表达式的几种方式
2014/05/27 Javascript
JavaScript利用正则表达式去除日期中的“-”
2014/07/01 Javascript
javascript的变量、传值、传址、参数之间关系
2015/07/26 Javascript
Clipboard.js 无需Flash的JavaScript复制粘贴库
2015/10/02 Javascript
JavaScript 不支持 indexof 该如何解决
2016/03/30 Javascript
javascript之Boolean类型对象
2016/06/07 Javascript
RequireJS多页面应用实例分析
2016/06/29 Javascript
基于angularjs实现图片放大镜效果
2016/08/31 Javascript
bootstrap-datetimepicker实现只显示到日期的方法
2016/11/25 Javascript
Vue.js实现简单动态数据处理
2017/02/13 Javascript
jQuery插件HighCharts实现气泡图效果示例【附demo源码】
2017/03/13 Javascript
详解Vue 事件驱动和依赖追踪
2017/04/22 Javascript
微信小程序wx.request实现后台数据交互功能分析
2017/11/25 Javascript
Vue手把手教你撸一个 beforeEnter 钩子函数
2018/04/24 Javascript
JavaScript中Array方法你该知道的正确打开方法
2018/09/11 Javascript
vue中解决chrome浏览器自动播放音频和MP3语音打包到线上的实现方法
2020/10/09 Javascript
Python Flask基础教程示例代码
2018/02/07 Python
Python使用pickle模块储存对象操作示例
2018/08/15 Python
python实现日志按天分割
2019/07/22 Python
Django Xadmin多对多字段过滤实例
2020/04/07 Python
用Python 爬取猫眼电影数据分析《无名之辈》
2020/07/24 Python
利用python实现后端写网页(flask框架)
2021/02/28 Python
利用canvas实现图片压缩的示例代码
2018/07/17 HTML / CSS
一套C++笔试题面试题
2012/06/06 面试题
八项规定整改方案
2014/02/21 职场文书
工程索赔意向书
2014/08/30 职场文书
高中军训的心得体会
2014/09/01 职场文书
2015上半年个人工作总结
2015/07/27 职场文书
详解MySQL 用户权限管理
2021/04/20 MySQL
JVM入门之类加载与字节码技术(类加载与类的加载器)
2021/06/15 Java/Android