老生常谈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中strtotime函数使用方法详解
Nov 27 PHP
PHP实现绘制3D扇形统计图及图片缩放实例
Oct 01 PHP
php 模拟 asp.net webFrom 按钮提交事件实例
Oct 13 PHP
php如何控制用户对图片的访问 PHP禁止图片盗链
Mar 25 PHP
ThinkPHP3.2.3实现分页的方法详解
Jun 03 PHP
PHP中的密码加密的解决方案总结
Oct 26 PHP
PHP实现基于栈的后缀表达式求值功能
Nov 10 PHP
CI框架实现创建自定义类库的方法
Dec 25 PHP
启用OPCache提高PHP程序性能的方法
Mar 21 PHP
php+jQuery ajax实现的实时刷新显示数据功能示例
Sep 12 PHP
如何在Laravel5.8中正确地应用Repository设计模式
Nov 26 PHP
php 获取音视频时长,PHP 利用getid3 获取音频文件时长等数据
Apr 01 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获取参数的几种方法总结
2014/02/18 PHP
PHP代码判断设备是手机还是平板电脑(两种方法)
2015/10/19 PHP
Zend Framework动作助手FlashMessenger用法详解
2016/03/05 PHP
JAVASCRIPT下判断IE与FF的比较简单的方式
2008/10/17 Javascript
写给小白的JavaScript引擎指南
2015/12/04 Javascript
jQuery上传多张图片带进度条样式(DEMO)
2017/03/02 Javascript
react实现菜单权限控制的方法
2017/12/11 Javascript
Vue导出页面为PDF格式的实现思路
2018/07/31 Javascript
webpack4+Vue搭建自己的Vue-cli项目过程分享
2018/08/29 Javascript
实例分析vue循环列表动态数据的处理方法
2018/09/28 Javascript
vue计算属性computed的使用方法示例
2019/03/13 Javascript
JS关闭子窗口并且刷新上一个窗口的实现示例
2020/03/10 Javascript
Python中分数的相关使用教程
2015/03/30 Python
python实现的用于搜索文件并进行内容替换的类实例
2015/06/28 Python
Python在图片中添加文字的两种方法
2017/04/29 Python
python3实现随机数
2018/06/25 Python
selenium+python自动化测试之多窗口切换
2019/01/23 Python
Python从函数参数类型引出元组实例分析
2019/05/28 Python
django drf框架自带的路由及最简化的视图
2019/09/10 Python
TensorFlow自定义损失函数来预测商品销售量
2020/02/05 Python
HTML5 canvas画图并保存成图片的jcanvas插件
2014/01/17 HTML / CSS
在html页面中取得session中的值的方法
2020/08/11 HTML / CSS
MADE荷兰:提供原创设计师家具
2018/04/03 全球购物
为有想象力的人提供的生活方式商店:Firebox
2018/06/04 全球购物
教师节促销方案
2014/03/22 职场文书
公司请假条格式
2014/04/11 职场文书
护士2014年终工作总结
2014/11/11 职场文书
小学教师师德师风自我评价
2015/03/04 职场文书
借钱欠条怎么写
2015/07/03 职场文书
导游词之香港-太平山顶
2019/10/18 职场文书
Python控制台输出俄罗斯方块的方法实例
2021/04/17 Python
小程序实现文字循环滚动动画
2021/06/14 Javascript
React如何创建组件
2021/06/27 Javascript
Mongo服务重启异常问题的处理方法
2021/07/01 MongoDB
浅谈如何保证Mysql主从一致
2022/03/13 MySQL
Golang 切片(Slice)实现增删改查
2022/04/22 Golang