老生常谈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设置图片文件上传大小的具体实现方法
Oct 11 PHP
php绘图中显示不出图片的原因及解决
Mar 05 PHP
PHP动态生成javascript文件的2个例子
Apr 11 PHP
Fatal error: session_start(): Failed to initialize storage module: files问题解决方法
May 04 PHP
PHP命名空间(Namespace)简明教程
Jun 11 PHP
PHP实现克鲁斯卡尔算法实例解析
Aug 22 PHP
PHP return语句另类用法不止是在函数中
Sep 17 PHP
PHP登录验证码的实现与使用方法
Jul 07 PHP
ThinkPHP3.2.1图片验证码实现方法
Aug 19 PHP
php正则去除网页中所有的html,js,css,注释的实现方法
Nov 03 PHP
PHP中有关长整数的一些操作教程
Sep 11 PHP
Laravel 类和接口注入相关的代码
Oct 15 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+.htaccess实现全站静态HTML文件GZIP压缩传输(一)
2007/02/15 PHP
初级的用php写的采集程序
2007/03/16 PHP
php函数的常用方法及注意之处小结
2011/07/10 PHP
11个PHPer必须要了解的编程规范
2014/09/22 PHP
PHP+Mysql+jQuery中国地图区域数据统计实例讲解
2015/10/10 PHP
搜索附近的人PHP实现代码
2018/02/11 PHP
jQuery效果 slideToggle() 方法(在隐藏和显示之间切换)
2011/06/28 Javascript
jQuery事件 delegate()使用方法介绍
2012/10/30 Javascript
javascript日期格式化示例分享
2014/03/05 Javascript
IE及IE6浏览器中判断JS文件加载成功失败的方法
2015/02/18 Javascript
JavaScript中的this关键字使用详解
2015/08/14 Javascript
js实现省市级联效果分享
2017/08/10 Javascript
基于three.js编写的一个项目类示例代码
2018/01/05 Javascript
JS常用的几种数组遍历方式以及性能分析对比实例详解
2018/04/11 Javascript
详解vscode中vue代码颜色插件
2018/10/11 Javascript
JavaScript数据结构与算法之基本排序算法定义与效率比较【冒泡、选择、插入排序】
2019/02/21 Javascript
swiper实现导航滚动效果
2020/12/13 Javascript
[01:04:30]Fnatic vs Mineski 2018国际邀请赛小组赛BO2 第二场 8.17
2018/08/18 DOTA
Python数据类型学习笔记
2016/01/13 Python
pandas数值计算与排序方法
2018/04/12 Python
用pandas中的DataFrame时选取行或列的方法
2018/07/11 Python
Python之时间和日期使用小结
2019/02/14 Python
Python3实现的简单工资管理系统示例
2019/03/12 Python
超简单使用Python换脸实例
2019/03/27 Python
python+tkinter实现学生管理系统
2019/08/20 Python
pandas和spark dataframe互相转换实例详解
2020/02/18 Python
python 实现压缩和解压缩的示例
2020/09/22 Python
通过实例解析python and和or使用方法
2020/11/14 Python
开发人员所需要知道的HTML5性能分析面面观
2012/07/05 HTML / CSS
实习评语
2013/12/16 职场文书
教师党员公开承诺事项
2014/05/28 职场文书
社区爱国卫生月活动总结
2014/06/30 职场文书
村干部群众路线整改措施思想汇报
2014/10/12 职场文书
租赁协议书
2015/01/27 职场文书
2016庆祝国庆67周年宣传语
2015/11/25 职场文书
了解Redis常见应用场景
2021/06/23 Redis