老生常谈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 相关文章推荐
基于mysql的论坛(6)
Oct 09 PHP
信用卡效验程序
Oct 09 PHP
php获得当前的脚本网址
Dec 10 PHP
PHP下利用header()函数设置浏览器缓存的代码
Sep 01 PHP
php实现统计邮件大小的方法
Aug 06 PHP
php实现文件编码批量转换
Mar 10 PHP
ThinkPHP查询返回简单字段数组的方法
Aug 25 PHP
Laravel框架路由配置总结、设置技巧大全
Sep 03 PHP
PHP中构造函数和析构函数解析
Oct 10 PHP
实例讲解PHP验证邮箱是否合格
Jan 28 PHP
php 实现银联商务H5支付的示例代码
Oct 12 PHP
PhpStorm 如何优雅的调试Hyperf的方法步骤
Nov 24 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新手上路(三)
2006/10/09 PHP
Mac系统下使用brew搭建PHP(LNMP/LAMP)开发环境
2015/03/03 PHP
php上传文件并显示上传进度的方法
2015/03/24 PHP
php利用fsockopen GET/POST提交表单及上传文件
2017/05/22 PHP
PHP array_reverse() 函数原理及实例解析
2020/07/14 PHP
JS图片浏览组件PhotoLook的公开属性方法介绍和进阶实例代码
2010/11/09 Javascript
hover的用法及live的用法介绍(鼠标悬停效果)
2013/03/29 Javascript
js setTimeout()函数介绍及应用以倒计时为例
2013/12/12 Javascript
js获取当前日期时间及其它操作汇总
2015/04/17 Javascript
JavaScript下拉菜单功能实例代码
2017/03/01 Javascript
鼠标经过出现气泡框的简单实例
2017/03/17 Javascript
Vue 创建组件的两种方法小结(必看)
2018/02/23 Javascript
详解Vue+axios+Node+express实现文件上传(用户头像上传)
2018/08/10 Javascript
VUE 全局变量的几种实现方式
2018/08/22 Javascript
jQuery实现二级导航菜单的示例
2020/09/30 jQuery
vue项目如何监听localStorage或sessionStorage的变化
2021/01/04 Vue.js
[04:44]DOTA2西游记战队视频彩蛋流出 师徒开黑巧遇林书豪
2016/08/03 DOTA
Python闭包实现计数器的方法
2015/05/05 Python
从源码解析Python的Flask框架中request对象的用法
2016/06/02 Python
Python判断三段线能否构成三角形的代码
2020/04/12 Python
详解PyQt5中textBrowser显示print语句输出的简单方法
2020/08/07 Python
CSS3之边框多颜色Border-color属性使用示例
2013/10/11 HTML / CSS
美国领先的商务贺卡出版商:The Gallery Collection
2018/02/13 全球购物
国际政治个人自荐信范文
2013/11/26 职场文书
创意活动策划书
2014/01/15 职场文书
大学生期末自我鉴定
2014/02/01 职场文书
七年级政治教学反思
2014/02/03 职场文书
一年级学生评语
2014/04/23 职场文书
2015年出纳工作总结与计划
2015/05/18 职场文书
主持稿开场白
2015/06/01 职场文书
圣贤教育改变命运观后感
2015/06/16 职场文书
2016年教师寒假学习心得体会
2015/10/09 职场文书
2015团员个人年度总结
2015/11/24 职场文书
再读《皇帝的新衣》的读后感悟!
2019/08/07 职场文书
多属性、多分类MySQL模式设计
2021/04/05 MySQL
vue3语法糖内的defineProps及defineEmits
2022/04/14 Vue.js